Skip to the content.

观测 e1000 驱动在 qemu 如何被模拟的

e1000 作为 pci 设备是如何挂载的,调试一下内核吧!

#0  e1000_probe (pdev=0xffff8881002dc000, ent=0xffffffff820c8b20 <e1000_pci_tbl+224>) at drivers/net/ethernet/intel/e1000/e1000_main.c:922
#1  0xffffffff814390bd in local_pci_probe (_ddi=_ddi@entry=0xffffc90000013d68) at drivers/pci/pci-driver.c:309
#2  0xffffffff8143a430 in pci_call_probe (id=<optimized out>, dev=0xffff8881002dc000, drv=0xffffffff825dcb20 <e1000_driver>) at drivers/pci/pci-driver.c:366
#3  __pci_device_probe (pci_dev=0xffff8881002dc000, drv=0xffffffff825dcb20 <e1000_driver>) at drivers/pci/pci-driver.c:391
#4  pci_device_probe (dev=0xffff8881002dc0c0) at drivers/pci/pci-driver.c:434
#5  0xffffffff8167ff86 in really_probe (dev=dev@entry=0xffff8881002dc0c0, drv=drv@entry=0xffffffff825dcb90 <e1000_driver+112>) at drivers/base/dd.c:576
#6  0xffffffff816801c1 in driver_probe_device (drv=drv@entry=0xffffffff825dcb90 <e1000_driver+112>, dev=dev@entry=0xffff8881002dc0c0) at drivers/base/dd.c:763
#7  0xffffffff8168048e in device_driver_attach (drv=drv@entry=0xffffffff825dcb90 <e1000_driver+112>, dev=dev@entry=0xffff8881002dc0c0) at drivers/base/dd.c:1039
#8  0xffffffff816804f0 in __driver_attach (dev=0xffff8881002dc0c0, data=0xffffffff825dcb90 <e1000_driver+112>) at drivers/base/dd.c:1117
#9  0xffffffff8167e193 in bus_for_each_dev (bus=<optimized out>, start=start@entry=0x0 <fixed_percpu_data>, data=data@entry=0xffffffff825dcb90 <e1000_driver+112>, fn=fn
@entry=0xffffffff816804a0 <__driver_attach>) at drivers/base/bus.c:305
#10 0xffffffff8167f975 in driver_attach (drv=drv@entry=0xffffffff825dcb90 <e1000_driver+112>) at drivers/base/dd.c:1133
#11 0xffffffff8167f342 in bus_add_driver (drv=drv@entry=0xffffffff825dcb90 <e1000_driver+112>) at drivers/base/bus.c:622
#12 0xffffffff81680d87 in driver_register (drv=drv@entry=0xffffffff825dcb90 <e1000_driver+112>) at drivers/base/driver.c:171
#13 0xffffffff81438a81 in __pci_register_driver (drv=drv@entry=0xffffffff825dcb20 <e1000_driver>, owner=owner@entry=0x0 <fixed_percpu_data>, mod_name=mod_name@entry=0xf
fffffff822b05e4 "e1000") at drivers/pci/pci-driver.c:1393
#14 0xffffffff82b743ef in e1000_init_module () at drivers/net/ethernet/intel/e1000/e1000_main.c:227
#15 0xffffffff81000def in do_one_initcall (fn=0xffffffff82b743b2 <e1000_init_module>) at init/main.c:1249
#16 0xffffffff82b3726b in do_initcall_level (command_line=0xffff888100122400 "root", level=6) at ./include/linux/compiler.h:234
#17 do_initcalls () at init/main.c:1338
#18 do_basic_setup () at init/main.c:1358
#19 kernel_init_freeable () at init/main.c:1560
#20 0xffffffff81b6f3b9 in kernel_init (unused=<optimized out>) at init/main.c:1447
#21 0xffffffff810019b2 in ret_from_fork () at arch/x86/entry/entry_64.S:294
#22 0x0000000000000000 in ?? ()

/home/maritns3/core/ubuntu-linux/

[0] from 0xffffffff8167c890 in device_add+0 at drivers/base/core.c:3199
[1] from 0xffffffff8167d182 in device_register+18 at drivers/base/core.c:3401
[2] from 0xffffffff82b72ac3 in platform_bus_init+19 at drivers/base/platform.c:1552
[3] from 0xffffffff82b72b81 in driver_init+30 at drivers/base/init.c:34
[4] from 0xffffffff82b3719f in do_basic_setup+10 at init/main.c:1354
[5] from 0xffffffff82b3719f in kernel_init_freeable+210 at init/main.c:1560
[6] from 0xffffffff81b6f3b9 in kernel_init+5 at init/main.c:1447
[7] from 0xffffffff810019b2 in ret_from_fork at arch/x86/entry/entry_64.S:294
[8] from 0x0000000000000000

kernel_init 是从 rest_init 初始化的最开始两个线程中间一个,这个之后会切换为用户态进程的:

模拟网络 stack 的方法

是不是 PCI device 使用的空间是

好的,模拟的 stack 已经是搞清楚

#0  net_slirp_receive (nc=0x5555568cea80, buf=0x555557a15f70 "33", size=90) at ../net/slirp.c:133
#1  0x0000555555925d8d in nc_sendv_compat (flags=<optimized out>, iovcnt=1, iov=0x7ffdd3dfae00, nc=0x5555568cea80) at ../net/net.c:740
#2  qemu_deliver_packet_iov (sender=<optimized out>, opaque=0x5555568cea80, iovcnt=1, iov=0x7ffdd3dfae00, flags=<optimized out>) at ../net/net.c:768
#3  qemu_deliver_packet_iov (sender=<optimized out>, flags=<optimized out>, iov=0x7ffdd3dfae00, iovcnt=1, opaque=0x5555568cea80) at ../net/net.c:747
#4  0x000055555590060c in qemu_net_queue_deliver_iov (iovcnt=1, iov=0x7ffdd3dfae00, flags=0, sender=0x555556948200, queue=0x5555569483b0) at ../net/queue.c:179
#5  qemu_net_queue_send_iov (queue=0x5555569483b0, sender=0x555556948200, flags=0, iov=0x7ffdd3dfae00, iovcnt=1, sent_cb=0x0) at ../net/queue.c:246
#6  0x00005555559b054b in net_hub_receive_iov (hub=<optimized out>, iovcnt=1, iov=0x7ffdd3dfae00, source_port=0x55555698f0b0) at ../net/hub.c:74
#7  net_hub_port_receive_iov (nc=0x55555698f0b0, iov=0x7ffdd3dfae00, iovcnt=1) at ../net/hub.c:125
#8  0x0000555555925cc0 in qemu_deliver_packet_iov (sender=<optimized out>, opaque=0x55555698f0b0, iovcnt=1, iov=0x7ffdd3dfae00, flags=0) at ../net/net.c:766
#9  qemu_deliver_packet_iov (sender=<optimized out>, flags=0, iov=0x7ffdd3dfae00, iovcnt=1, opaque=0x55555698f0b0) at ../net/net.c:747
#10 0x000055555590054b in qemu_net_queue_deliver (size=90, data=0x555557a15f70 "33", flags=0, sender=0x555556b8b050, queue=0x55555698f2a0) at ../net/queue.c:164
#11 qemu_net_queue_send (queue=0x55555698f2a0, sender=sender@entry=0x555556b8b050, flags=flags@entry=0, data=data@entry=0x555557a15f70 "33", size=size@entry=90, sent_cb
=sent_cb@entry=0x0) at ../net/queue.c:221
#12 0x0000555555925efc in qemu_send_packet_async_with_flags (sender=0x555556b8b050, flags=0, buf=0x555557a15f70 "33", size=<optimized out>, sent_cb=0x0) at ../net/net.c
:675
#13 0x0000555555909ea5 in e1000_send_packet (s=s@entry=0x5555579f32a0, buf=buf@entry=0x555557a15f70 "33", size=90) at ../hw/net/e1000.c:551
#14 0x000055555590a0a3 in xmit_seg (s=s@entry=0x5555579f32a0) at ../hw/net/e1000.c:614
#15 0x000055555590b021 in process_tx_desc (dp=0x7ffdd3dfaf50, s=0x5555579f32a0) at ../hw/net/e1000.c:705
#16 start_xmit (s=0x5555579f32a0) at ../hw/net/e1000.c:760
#17 set_tctl (s=0x5555579f32a0, index=<optimized out>, val=<optimized out>) at ../hw/net/e1000.c:1131
#18 0x0000555555b8d7e0 in memory_region_write_accessor (mr=mr@entry=0x5555579f5bc0, addr=14360, value=value@entry=0x7ffdd3dfb0a8, size=size@entry=4, shift=<optimized ou
t>, mask=mask@entry=4294967295, attrs=...) at ../softmmu/memory.c:491
#19 0x0000555555b8c10e in access_with_adjusted_size (addr=addr@entry=14360, value=value@entry=0x7ffdd3dfb0a8, size=size@entry=4, access_size_min=<optimized out>, access
_size_max=<optimized out>, access_fn=access_fn@entry=0x555555b8d750 <memory_region_write_accessor>, mr=0x5555579f5bc0, attrs=...) at ../softmmu/memory.c:552
#20 0x0000555555b8fc67 in memory_region_dispatch_write (mr=mr@entry=0x5555579f5bc0, addr=14360, data=<optimized out>, op=<optimized out>, attrs=attrs@entry=...) at ../s
oftmmu/memory.c:1502
#21 0x0000555555bd70b0 in flatview_write_continue (fv=fv@entry=0x7ffdb4052da0, addr=addr@entry=4273747992, attrs=..., ptr=ptr@entry=0x7fffeb117028, len=len@entry=4, add
r1=<optimized out>, l=<optimized out>, mr=0x5555579f5bc0) at /home/maritns3/core/kvmqemu/include/qemu/host-utils.h:164
#22 0x0000555555bd72c6 in flatview_write (fv=0x7ffdb4052da0, addr=addr@entry=4273747992, attrs=attrs@entry=..., buf=buf@entry=0x7fffeb117028, len=len@entry=4) at ../sof
tmmu/physmem.c:2786
#23 0x0000555555bd9f86 in address_space_write (as=0x5555564e0b40 <address_space_memory>, addr=4273747992, attrs=..., buf=buf@entry=0x7fffeb117028, len=4) at ../softmmu/
physmem.c:2878
#24 0x0000555555bda01e in address_space_rw (as=<optimized out>, addr=<optimized out>, attrs=..., attrs@entry=..., buf=buf@entry=0x7fffeb117028, len=<optimized out>, is_
write=<optimized out>) at ../softmmu/physmem.c:2888
#25 0x0000555555bb87d6 in kvm_cpu_exec (cpu=cpu@entry=0x555556a96c00) at ../accel/kvm/kvm-all.c:2517
#26 0x0000555555b771a5 in kvm_vcpu_thread_fn (arg=arg@entry=0x555556a96c00) at ../accel/kvm/kvm-accel-ops.c:49
#27 0x0000555555d248a3 in qemu_thread_start (args=<optimized out>) at ../util/qemu-thread-posix.c:521
#28 0x00007ffff6235609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#29 0x00007ffff615a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95


// 在 port 的初始化的时候,都是不用处理 peer 的
// 在 slirp 和 e1000 初始化的指定其 peer 为

// port 0
>>> bt
#0  qemu_net_client_setup (nc=0x5555569678f0, info=0x5555563f31a0 <net_hub_port_info>, peer=0x0, model=0x555555ddde15 "hub", name=0x7fffffffd4c0 "hub0 port0", destructo
r=0x555555925af0 <qemu_net_client_destructor>) at ../net/net.c:244
#1  0x00005555559262d8 in qemu_new_net_client (info=info@entry=0x5555563f31a0 <net_hub_port_info>, peer=peer@entry=0x0, model=model@entry=0x555555ddde15 "hub", name=0x7
fffffffd4c0 "hub0 port0") at ../net/net.c:277
#2  0x00005555559b0637 in net_hub_port_new (hubpeer=0x0, name=<optimized out>, hub=0x555556964090) at ../net/hub.c:170
#3  net_hub_add_port (hub_id=<optimized out>, name=<optimized out>, hubpeer=0x0) at ../net/hub.c:204
#4  0x0000555555926cff in net_client_init1 (netdev=0x555556957110, is_netdev=<optimized out>, errp=0x5555564e2e30 <error_fatal>) at ../net/net.c:1043
#5  0x0000555555926f80 in net_client_init (opts=<optimized out>, is_netdev=<optimized out>, errp=0x5555564e2e30 <error_fatal>) at ../net/net.c:1151
#6  0x0000555555d21012 in qemu_opts_foreach (list=<optimized out>, func=0x555555927030 <net_init_client>, opaque=0x0, errp=0x5555564e2e30 <error_fatal>) at ../util/qemu
-option.c:1167
#7  0x000055555592870f in net_init_clients (errp=errp@entry=0x5555564e2e30 <error_fatal>) at ../net/net.c:1612
#8  0x0000555555bb13f3 in qemu_create_late_backends () at ../softmmu/vl.c:1915
#9  qemu_init (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../softmmu/vl.c:3591
#10 0x000055555582b4bd in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../softmmu/main.c:49


// port 1
#0  qemu_net_client_setup (nc=0x555556967bf0, info=0x5555563f31a0 <net_hub_port_info>, peer=0x0, model=0x555555ddde15 "hub", name=0x7fffffffd4c0 "hub0 port1", destructo
r=0x555555925af0 <qemu_net_client_destructor>) at ../net/net.c:244
#1  0x00005555559262d8 in qemu_new_net_client (info=info@entry=0x5555563f31a0 <net_hub_port_info>, peer=peer@entry=0x0, model=model@entry=0x555555ddde15 "hub", name=0x7
fffffffd4c0 "hub0 port1") at ../net/net.c:277
#2  0x00005555559b0637 in net_hub_port_new (hubpeer=0x0, name=<optimized out>, hub=0x555556964090) at ../net/hub.c:170
#3  net_hub_add_port (hub_id=<optimized out>, name=<optimized out>, hubpeer=0x0) at ../net/hub.c:204
#4  0x0000555555926cff in net_client_init1 (netdev=0x555556999060, is_netdev=<optimized out>, errp=0x5555564e2e30 <error_fatal>) at ../net/net.c:1043
#5  0x0000555555926f80 in net_client_init (opts=<optimized out>, is_netdev=<optimized out>, errp=0x5555564e2e30 <error_fatal>) at ../net/net.c:1151
#6  0x0000555555d21012 in qemu_opts_foreach (list=<optimized out>, func=0x555555927030 <net_init_client>, opaque=0x0, errp=0x5555564e2e30 <error_fatal>) at ../util/qemu
-option.c:1167
#7  0x000055555592870f in net_init_clients (errp=errp@entry=0x5555564e2e30 <error_fatal>) at ../net/net.c:1612
#8  0x0000555555bb13f3 in qemu_create_late_backends () at ../softmmu/vl.c:1915
#9  qemu_init (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../softmmu/vl.c:3591
#10 0x000055555582b4bd in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../softmmu/main.c:49


// net168 : slirp
#0  qemu_net_client_setup (nc=0x5555568a1660, info=0x5555563e81e0 <net_slirp_info>, peer=0x555556967bf0, model=0x555555eaf7c4 "user", name=0x5555569612b0 "#net168", des tructor=0x555555925af0 <qemu_net_client_destructor>) at ../net/net.c:244
#1  0x00005555559262d8 in qemu_new_net_client (info=info@entry=0x5555563e81e0 <net_slirp_info>, peer=peer@entry=0x555556967bf0, model=model@entry=0x555555eaf7c4 "user", name=name@entry=0x5555569612b0 "#net168") at ../net/net.c:277
#2  0x0000555555975f91 in net_slirp_init (model=0x555555eaf7c4 "user", errp=0x5555564e2e30 <error_fatal>, tftp_server_name=0x0, vdomainname=0x0, dnssearch=0x0, vsmbserv er=0x0, smb_export=0x0, vnameserver6=<optimized out>, vnameserver=<optimized out>, vdhcp_start=0x0, bootfile=0x0, tftp_export=0x0, vhostname=0x0, vhost6=<optimized out> , vprefix6_len=64, vprefix6=0x555555dee885 "fec0::", ipv6=true, vhost=<optimized out>, vnetwork=<optimized out>, ipv4=true, restricted=0, name=0x5555569612b0 "#net168", peer=0x555556967bf0) at ../net/slirp.c:613
#3  net_init_slirp (netdev=<optimized out>, name=0x5555569612b0 "#net168", peer=0x555556967bf0, errp=0x5555564e2e30 <error_fatal>) at ../net/slirp.c:1270
#4  0x0000555555926c8c in net_client_init1 (netdev=0x555556999060, is_netdev=<optimized out>, errp=0x5555564e2e30 <error_fatal>) at ../net/net.c:1053
#5  0x0000555555926f80 in net_client_init (opts=<optimized out>, is_netdev=<optimized out>, errp=0x5555564e2e30 <error_fatal>) at ../net/net.c:1151
#6  0x0000555555d21012 in qemu_opts_foreach (list=<optimized out>, func=0x555555927030 <net_init_client>, opaque=0x0, errp=0x5555564e2e30 <error_fatal>) at ../util/qemu -option.c:1167
#7  0x000055555592870f in net_init_clients (errp=errp@entry=0x5555564e2e30 <error_fatal>) at ../net/net.c:1612
#8  0x0000555555bb13f3 in qemu_create_late_backends () at ../softmmu/vl.c:1915
#9  qemu_init (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../softmmu/vl.c:3591
#10 0x000055555582b4bd in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../softmmu/main.c:49


// e1000
#0  qemu_net_client_setup (nc=0x555556d87b00, info=0x5555563d9380 <net_e1000_info>, peer=0x5555569678f0, model=0x5555565839f0 "e1000", name=0x0, destructor=0x0) at ../n
et/net.c:244
#1  0x00005555559263ed in qemu_new_nic (info=info@entry=0x5555563d9380 <net_e1000_info>, conf=conf@entry=0x5555579f8ff8, model=0x5555565839f0 "e1000", name=name@entry=0
x0, opaque=opaque@entry=0x5555579f86f0) at ../net/net.c:303
#2  0x000055555590a7bd in pci_e1000_realize (pci_dev=0x5555579f86f0, errp=<optimized out>) at ../hw/net/e1000.c:1722
#3  0x000055555596ec01 in pci_qdev_realize (qdev=0x5555579f86f0, errp=<optimized out>) at ../hw/pci/pci.c:2117
#4  0x0000555555cade87 in device_set_realized (obj=<optimized out>, value=true, errp=0x7fffffffd300) at ../hw/core/qdev.c:761
#5  0x0000555555c9b1da in property_set_bool (obj=0x5555579f86f0, v=<optimized out>, name=<optimized out>, opaque=0x5555565d1db0, errp=0x7fffffffd300) at ../qom/object.c
:2257
#6  0x0000555555c9d6ec in object_property_set (obj=obj@entry=0x5555579f86f0, name=name@entry=0x555555ed7ff6 "realized", v=v@entry=0x555556d8d0b0, errp=errp@entry=0x5555
564e2e30 <error_fatal>) at ../qom/object.c:1402
#7  0x0000555555c9fa24 in object_property_set_qobject (obj=obj@entry=0x5555579f86f0, name=name@entry=0x555555ed7ff6 "realized", value=value@entry=0x555556d617c0, errp=e
rrp@entry=0x5555564e2e30 <error_fatal>) at ../qom/qom-qobject.c:28
#8  0x0000555555c9d939 in object_property_set_bool (obj=0x5555579f86f0, name=0x555555ed7ff6 "realized", value=<optimized out>, errp=0x5555564e2e30 <error_fatal>) at ../
qom/object.c:1472
#9  0x0000555555cacd53 in qdev_realize_and_unref (dev=dev@entry=0x5555579f86f0, bus=bus@entry=0x555556a82670, errp=<optimized out>) at ../hw/core/qdev.c:396
#10 0x000055555596d279 in pci_realize_and_unref (dev=dev@entry=0x5555579f86f0, bus=bus@entry=0x555556a82670, errp=<optimized out>) at ../hw/pci/pci.c:2182
#11 0x000055555596d4a7 in pci_nic_init_nofail (nd=nd@entry=0x5555564c4300 <nd_table>, rootbus=rootbus@entry=0x555556a82670, default_model=default_model@entry=0x555555d7
227c "e1000", default_devaddr=default_devaddr@entry=0x0) at ../hw/pci/pci.c:1957
#12 0x0000555555a62b80 in pc_nic_init (pcmc=pcmc@entry=0x5555567978b0, isa_bus=0x55555699db00, pci_bus=pci_bus@entry=0x555556a82670) at ../hw/i386/pc.c:1189
#13 0x0000555555a65c4d in pc_init1 (machine=0x5555566c0000, pci_type=0x555555dbe5ad "i440FX", host_type=0x555555d80e54 "i440FX-pcihost") at ../hw/i386/pc_piix.c:244
#14 0x00005555558ff1ae in machine_run_board_init (machine=machine@entry=0x5555566c0000) at ../hw/core/machine.c:1232
#15 0x0000555555bae21e in qemu_init_board () at ../softmmu/vl.c:2514
#16 qmp_x_exit_preconfig (errp=<optimized out>) at ../softmmu/vl.c:2588
#17 0x0000555555bb1e62 in qemu_init (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../softmmu/vl.c:3611
#18 0x000055555582b4bd in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../softmmu/main.c:49

来分析一下接受函数吧:

>>> bt
#0  net_slirp_send_packet (pkt=0x7ffdd1de6810, pkt_len=54, opaque=0x5555568e78a0) at ../net/slirp.c:117
#1  0x0000555555d5c661 in slirp_send_packet_all (slirp=<optimized out>, buf=<optimized out>, len=54) at ../slirp/src/slirp.c:1181
#2  0x0000555555d5cbe5 in if_encap (slirp=slirp@entry=0x555556900400, ifm=ifm@entry=0x7ffdc0005de0) at ../slirp/src/slirp.c:985
#3  0x0000555555d67b8f in if_start (slirp=0x555556900400) at ../slirp/src/if.c:183
#4  0x0000555555d67d70 in if_output (so=so@entry=0x7ffdb8007340, ifm=ifm@entry=0x7ffdc0005de0) at ../slirp/src/if.c:128
#5  0x0000555555d6a9f8 in ip_output (so=so@entry=0x7ffdb8007340, m0=m0@entry=0x7ffdc0005de0) at ../slirp/src/ip_output.c:81
#6  0x0000555555d61b6d in tcp_output (tp=0x7ffdb8003660) at ../slirp/src/tcp_output.c:462
#7  0x0000555555d60587 in tcp_input (m=0x7ffdc0005de0, iphlen=<optimized out>, inso=<optimized out>, af=<optimized out>) at ../slirp/src/tcp_input.c:1348
#8  0x0000555555d5c970 in slirp_input (slirp=<optimized out>, pkt=0x555557a1c780 "RU\n", pkt_len=60) at ../slirp/src/slirp.c:845
#9  0x00005555559744af in net_slirp_receive (nc=0x5555568e78a0, buf=0x555557a1c780 "RU\n", size=60) at ../net/slirp.c:139
#10 0x0000555555925dcd in nc_sendv_compat (flags=<optimized out>, iovcnt=1, iov=0x7ffdd1df6e00, nc=0x5555568e78a0) at ../net/net.c:745
#11 qemu_deliver_packet_iov (sender=<optimized out>, opaque=0x5555568e78a0, iovcnt=1, iov=0x7ffdd1df6e00, flags=<optimized out>) at ../net/net.c:773
#12 qemu_deliver_packet_iov (sender=<optimized out>, flags=<optimized out>, iov=0x7ffdd1df6e00, iovcnt=1, opaque=0x5555568e78a0) at ../net/net.c:752
#13 0x000055555590060c in qemu_net_queue_deliver_iov (iovcnt=1, iov=0x7ffdd1df6e00, flags=0, sender=0x5555569466b0, queue=0x5555568ef900) at ../net/queue.c:179
#14 qemu_net_queue_send_iov (queue=0x5555568ef900, sender=0x5555569466b0, flags=0, iov=0x7ffdd1df6e00, iovcnt=1, sent_cb=0x0) at ../net/queue.c:246
#15 0x00005555559b05bb in net_hub_receive_iov (hub=<optimized out>, iovcnt=1, iov=0x7ffdd1df6e00, source_port=0x5555569478b0) at ../net/hub.c:75
#16 net_hub_port_receive_iov (nc=0x5555569478b0, iov=0x7ffdd1df6e00, iovcnt=1) at ../net/hub.c:126
#17 0x0000555555925d00 in qemu_deliver_packet_iov (sender=<optimized out>, opaque=0x5555569478b0, iovcnt=1, iov=0x7ffdd1df6e00, flags=0) at ../net/net.c:771
#18 qemu_deliver_packet_iov (sender=<optimized out>, flags=0, iov=0x7ffdd1df6e00, iovcnt=1, opaque=0x5555569478b0) at ../net/net.c:752
#19 0x000055555590054b in qemu_net_queue_deliver (size=60, data=0x555557a1c780 "RU\n", flags=0, sender=0x555556de5820, queue=0x555556947cc0) at ../net/queue.c:164
#20 qemu_net_queue_send (queue=0x555556947cc0, sender=sender@entry=0x555556de5820, flags=flags@entry=0, data=data@entry=0x555557a1c780 "RU\n", size=size@entry=60, sent_
cb=sent_cb@entry=0x0) at ../net/queue.c:221
#21 0x0000555555925f3c in qemu_send_packet_async_with_flags (sender=0x555556de5820, flags=0, buf=0x555557a1c780 "RU\n", size=<optimized out>, sent_cb=0x0) at ../net/net
.c:680
#22 0x0000555555909ea5 in e1000_send_packet (s=s@entry=0x5555579f9ab0, buf=buf@entry=0x555557a1c780 "RU\n", size=60) at ../hw/net/e1000.c:552
#23 0x000055555590a0a3 in xmit_seg (s=s@entry=0x5555579f9ab0) at ../hw/net/e1000.c:615
#24 0x000055555590b041 in process_tx_desc (dp=0x7ffdd1df6f50, s=0x5555579f9ab0) at ../hw/net/e1000.c:707
#25 start_xmit (s=0x5555579f9ab0) at ../hw/net/e1000.c:762
#26 set_tctl (s=0x5555579f9ab0, index=<optimized out>, val=<optimized out>) at ../hw/net/e1000.c:1133
#27 0x0000555555b8d840 in memory_region_write_accessor (mr=mr@entry=0x5555579fc3d0, addr=14360, value=value@entry=0x7ffdd1df70a8, size=size@entry=4, shift=<optimized ou
t>, mask=mask@entry=4294967295, attrs=...) at ../softmmu/memory.c:491
#28 0x0000555555b8c16e in access_with_adjusted_size (addr=addr@entry=14360, value=value@entry=0x7ffdd1df70a8, size=size@entry=4, access_size_min=<optimized out>, access
_size_max=<optimized out>, access_fn=access_fn@entry=0x555555b8d7b0 <memory_region_write_accessor>, mr=0x5555579fc3d0, attrs=...) at ../softmmu/memory.c:552
#29 0x0000555555b8fcc7 in memory_region_dispatch_write (mr=mr@entry=0x5555579fc3d0, addr=14360, data=<optimized out>, op=<optimized out>, attrs=attrs@entry=...) at ../s
oftmmu/memory.c:1502
#30 0x0000555555bd7110 in flatview_write_continue (fv=fv@entry=0x7ffdb4052da0, addr=addr@entry=4273747992, attrs=..., ptr=ptr@entry=0x7fffeb10b028, len=len@entry=4, add
r1=<optimized out>, l=<optimized out>, mr=0x5555579fc3d0) at /home/maritns3/core/kvmqemu/include/qemu/host-utils.h:164
#31 0x0000555555bd7326 in flatview_write (fv=0x7ffdb4052da0, addr=addr@entry=4273747992, attrs=attrs@entry=..., buf=buf@entry=0x7fffeb10b028, len=len@entry=4) at ../sof
tmmu/physmem.c:2786
#32 0x0000555555bd9fe6 in address_space_write (as=0x5555564e0b40 <address_space_memory>, addr=4273747992, attrs=..., buf=buf@entry=0x7fffeb10b028, len=4) at ../softmmu/
physmem.c:2878
#33 0x0000555555bda07e in address_space_rw (as=<optimized out>, addr=<optimized out>, attrs=..., attrs@entry=..., buf=buf@entry=0x7fffeb10b028, len=<optimized out>, is_
write=<optimized out>) at ../softmmu/physmem.c:2888
#34 0x0000555555bb8836 in kvm_cpu_exec (cpu=cpu@entry=0x555556f85750) at ../accel/kvm/kvm-all.c:2518
#35 0x0000555555b77205 in kvm_vcpu_thread_fn (arg=arg@entry=0x555556f85750) at ../accel/kvm/kvm-accel-ops.c:49
#36 0x0000555555d24903 in qemu_thread_start (args=<optimized out>) at ../util/qemu-thread-posix.c:521
#37 0x00007ffff6235609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#38 0x00007ffff615a293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
>>>

info mtree

关注 address-space: I/O 的两个位置:

plain 0000000000000cf8-0000000000000cfb (prio 0, i/o): pci-conf-idx 0000000000000cfc-0000000000000cff (prio 0, i/o): pci-conf-data

(qemu) info mtree
address-space: memory
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-00000000bfffffff (prio 0, ram): alias ram-below-4g @pc.ram 0000000000000000-00000000bfffffff
    0000000000000000-ffffffffffffffff (prio -1, i/o): pci
      00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
      00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
      00000000000e0000-00000000000fffff (prio 1, rom): alias isa-bios @pc.bios 0000000000020000-000000000003ffff
      00000000fe000000-00000000fe7fffff (prio 1, ram): vga.vram
      00000000fe800000-00000000fe803fff (prio 1, i/o): virtio-pci
        00000000fe800400-00000000fe80041f (prio 0, i/o): vga ioports remapped
        00000000fe800500-00000000fe800515 (prio 0, i/o): bochs dispi interface
        00000000fe800600-00000000fe800607 (prio 0, i/o): qemu extended regs
        00000000fe801000-00000000fe8017ff (prio 0, i/o): virtio-pci-common-virtio-gpu
        00000000fe801800-00000000fe801fff (prio 0, i/o): virtio-pci-isr-virtio-gpu
        00000000fe802000-00000000fe802fff (prio 0, i/o): virtio-pci-device-virtio-gpu
        00000000fe803000-00000000fe803fff (prio 0, i/o): virtio-pci-notify-virtio-gpu
      00000000febc0000-00000000febdffff (prio 1, i/o): e1000-mmio
      00000000febf0000-00000000febf0fff (prio 1, i/o): virtio-vga-msix
        00000000febf0000-00000000febf002f (prio 0, i/o): msix-table
        00000000febf0800-00000000febf0807 (prio 0, i/o): msix-pba
      00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios      // 我曹,这个的确是 256k 的大小了
    00000000000a0000-00000000000bffff (prio 1, i/o): alias smram-region @pci 00000000000a0000-00000000000bffff
    00000000000c0000-00000000000c3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c0000-00000000000c3fff
    00000000000c4000-00000000000c7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c4000-00000000000c7fff
    00000000000c8000-00000000000cbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000c8000-00000000000cbfff
    00000000000cb000-00000000000cdfff (prio 1000, ram): alias kvmvapic-rom @pc.ram 00000000000cb000-00000000000cdfff
    00000000000cc000-00000000000cffff (prio 1, ram): alias pam-rom @pc.ram 00000000000cc000-00000000000cffff
    00000000000d0000-00000000000d3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d0000-00000000000d3fff
    00000000000d4000-00000000000d7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d4000-00000000000d7fff
    00000000000d8000-00000000000dbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000d8000-00000000000dbfff
    00000000000dc000-00000000000dffff (prio 1, ram): alias pam-rom @pc.ram 00000000000dc000-00000000000dffff
    00000000000e0000-00000000000e3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e0000-00000000000e3fff
    00000000000e4000-00000000000e7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e4000-00000000000e7fff
    00000000000e8000-00000000000ebfff (prio 1, ram): alias pam-ram @pc.ram 00000000000e8000-00000000000ebfff
    00000000000ec000-00000000000effff (prio 1, ram): alias pam-ram @pc.ram 00000000000ec000-00000000000effff
    00000000000f0000-00000000000fffff (prio 1, ram): alias pam-rom @pc.ram 00000000000f0000-00000000000fffff
    00000000fec00000-00000000fec00fff (prio 0, i/o): kvm-ioapic
    00000000fed00000-00000000fed003ff (prio 0, i/o): hpet
    00000000fee00000-00000000feefffff (prio 4096, i/o): kvm-apic-msi
    0000000100000000-000000023fffffff (prio 0, ram): alias ram-above-4g @pc.ram 00000000c0000000-00000001ffffffff

address-space: I/O
  0000000000000000-000000000000ffff (prio 0, i/o): io
    0000000000000000-0000000000000007 (prio 0, i/o): dma-chan
    0000000000000008-000000000000000f (prio 0, i/o): dma-cont
    0000000000000020-0000000000000021 (prio 0, i/o): kvm-pic
    0000000000000040-0000000000000043 (prio 0, i/o): kvm-pit
    0000000000000060-0000000000000060 (prio 0, i/o): i8042-data
    0000000000000061-0000000000000061 (prio 0, i/o): pcspk
    0000000000000064-0000000000000064 (prio 0, i/o): i8042-cmd
    0000000000000070-0000000000000071 (prio 0, i/o): rtc
      0000000000000070-0000000000000070 (prio 0, i/o): rtc-index
    000000000000007e-000000000000007f (prio 0, i/o): kvmvapic
    0000000000000080-0000000000000080 (prio 0, i/o): ioport80
    0000000000000081-0000000000000083 (prio 0, i/o): dma-page
    0000000000000087-0000000000000087 (prio 0, i/o): dma-page
    0000000000000089-000000000000008b (prio 0, i/o): dma-page
    000000000000008f-000000000000008f (prio 0, i/o): dma-page
    0000000000000092-0000000000000092 (prio 0, i/o): port92
    00000000000000a0-00000000000000a1 (prio 0, i/o): kvm-pic
    00000000000000b2-00000000000000b3 (prio 0, i/o): apm-io
    00000000000000c0-00000000000000cf (prio 0, i/o): dma-chan
    00000000000000d0-00000000000000df (prio 0, i/o): dma-cont
    00000000000000f0-00000000000000f0 (prio 0, i/o): ioportF0
    0000000000000170-0000000000000177 (prio 0, i/o): ide
    00000000000001ce-00000000000001d1 (prio 0, i/o): vbe
    00000000000001f0-00000000000001f7 (prio 0, i/o): ide
    0000000000000376-0000000000000376 (prio 0, i/o): ide
    0000000000000378-000000000000037f (prio 0, i/o): parallel
    00000000000003b4-00000000000003b5 (prio 0, i/o): vga
    00000000000003ba-00000000000003ba (prio 0, i/o): vga
    00000000000003c0-00000000000003cf (prio 0, i/o): vga
    00000000000003d4-00000000000003d5 (prio 0, i/o): vga
    00000000000003da-00000000000003da (prio 0, i/o): vga
    00000000000003f1-00000000000003f5 (prio 0, i/o): fdc
    00000000000003f6-00000000000003f6 (prio 0, i/o): ide
    00000000000003f7-00000000000003f7 (prio 0, i/o): fdc
    00000000000003f8-00000000000003ff (prio 0, i/o): serial
    00000000000004d0-00000000000004d0 (prio 0, i/o): kvm-elcr
    00000000000004d1-00000000000004d1 (prio 0, i/o): kvm-elcr
    0000000000000510-0000000000000511 (prio 0, i/o): fwcfg
    0000000000000514-000000000000051b (prio 0, i/o): fwcfg.dma
    0000000000000600-000000000000063f (prio 0, i/o): piix4-pm
      0000000000000600-0000000000000603 (prio 0, i/o): acpi-evt
      0000000000000604-0000000000000605 (prio 0, i/o): acpi-cnt
      0000000000000608-000000000000060b (prio 0, i/o): acpi-tmr
    0000000000000700-000000000000073f (prio 0, i/o): pm-smbus
    0000000000000cf8-0000000000000cfb (prio 0, i/o): pci-conf-idx
    0000000000000cf9-0000000000000cf9 (prio 1, i/o): piix3-reset-control
    0000000000000cfc-0000000000000cff (prio 0, i/o): pci-conf-data
    0000000000005658-0000000000005658 (prio 0, i/o): vmport
    000000000000ae00-000000000000ae17 (prio 0, i/o): acpi-pci-hotplug
    000000000000af00-000000000000af0b (prio 0, i/o): acpi-cpu-hotplug
    000000000000afe0-000000000000afe3 (prio 0, i/o): acpi-gpe0
    000000000000c000-000000000000c03f (prio 1, i/o): e1000-io
    000000000000c040-000000000000c04f (prio 1, i/o): piix-bmdma-container
      000000000000c040-000000000000c043 (prio 0, i/o): piix-bmdma
      000000000000c044-000000000000c047 (prio 0, i/o): bmdma
      000000000000c048-000000000000c04b (prio 0, i/o): piix-bmdma
      000000000000c04c-000000000000c04f (prio 0, i/o): bmdma

address-space: cpu-memory-0
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-00000000bfffffff (prio 0, ram): alias ram-below-4g @pc.ram 0000000000000000-00000000bfffffff
    0000000000000000-ffffffffffffffff (prio -1, i/o): pci
      00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
      00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
      00000000000e0000-00000000000fffff (prio 1, rom): alias isa-bios @pc.bios 0000000000020000-000000000003ffff
      00000000fe000000-00000000fe7fffff (prio 1, ram): vga.vram
      00000000fe800000-00000000fe803fff (prio 1, i/o): virtio-pci
        00000000fe800400-00000000fe80041f (prio 0, i/o): vga ioports remapped
        00000000fe800500-00000000fe800515 (prio 0, i/o): bochs dispi interface
        00000000fe800600-00000000fe800607 (prio 0, i/o): qemu extended regs
        00000000fe801000-00000000fe8017ff (prio 0, i/o): virtio-pci-common-virtio-gpu
        00000000fe801800-00000000fe801fff (prio 0, i/o): virtio-pci-isr-virtio-gpu
        00000000fe802000-00000000fe802fff (prio 0, i/o): virtio-pci-device-virtio-gpu
        00000000fe803000-00000000fe803fff (prio 0, i/o): virtio-pci-notify-virtio-gpu
      00000000febc0000-00000000febdffff (prio 1, i/o): e1000-mmio
      00000000febf0000-00000000febf0fff (prio 1, i/o): virtio-vga-msix
        00000000febf0000-00000000febf002f (prio 0, i/o): msix-table
        00000000febf0800-00000000febf0807 (prio 0, i/o): msix-pba
      00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios
    00000000000a0000-00000000000bffff (prio 1, i/o): alias smram-region @pci 00000000000a0000-00000000000bffff
    00000000000c0000-00000000000c3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c0000-00000000000c3fff
    00000000000c4000-00000000000c7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c4000-00000000000c7fff
    00000000000c8000-00000000000cbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000c8000-00000000000cbfff
    00000000000cb000-00000000000cdfff (prio 1000, ram): alias kvmvapic-rom @pc.ram 00000000000cb000-00000000000cdfff
    00000000000cc000-00000000000cffff (prio 1, ram): alias pam-rom @pc.ram 00000000000cc000-00000000000cffff
    00000000000d0000-00000000000d3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d0000-00000000000d3fff
    00000000000d4000-00000000000d7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d4000-00000000000d7fff
    00000000000d8000-00000000000dbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000d8000-00000000000dbfff
    00000000000dc000-00000000000dffff (prio 1, ram): alias pam-rom @pc.ram 00000000000dc000-00000000000dffff
    00000000000e0000-00000000000e3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e0000-00000000000e3fff
    00000000000e4000-00000000000e7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e4000-00000000000e7fff
    00000000000e8000-00000000000ebfff (prio 1, ram): alias pam-ram @pc.ram 00000000000e8000-00000000000ebfff
    00000000000ec000-00000000000effff (prio 1, ram): alias pam-ram @pc.ram 00000000000ec000-00000000000effff
    00000000000f0000-00000000000fffff (prio 1, ram): alias pam-rom @pc.ram 00000000000f0000-00000000000fffff
    00000000fec00000-00000000fec00fff (prio 0, i/o): kvm-ioapic
    00000000fed00000-00000000fed003ff (prio 0, i/o): hpet
    00000000fee00000-00000000feefffff (prio 4096, i/o): kvm-apic-msi
    0000000100000000-000000023fffffff (prio 0, ram): alias ram-above-4g @pc.ram 00000000c0000000-00000001ffffffff

address-space: cpu-memory-1
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-00000000bfffffff (prio 0, ram): alias ram-below-4g @pc.ram 0000000000000000-00000000bfffffff
    0000000000000000-ffffffffffffffff (prio -1, i/o): pci
      00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
      00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
      00000000000e0000-00000000000fffff (prio 1, rom): alias isa-bios @pc.bios 0000000000020000-000000000003ffff
      00000000fe000000-00000000fe7fffff (prio 1, ram): vga.vram
      00000000fe800000-00000000fe803fff (prio 1, i/o): virtio-pci
        00000000fe800400-00000000fe80041f (prio 0, i/o): vga ioports remapped
        00000000fe800500-00000000fe800515 (prio 0, i/o): bochs dispi interface
        00000000fe800600-00000000fe800607 (prio 0, i/o): qemu extended regs
        00000000fe801000-00000000fe8017ff (prio 0, i/o): virtio-pci-common-virtio-gpu
        00000000fe801800-00000000fe801fff (prio 0, i/o): virtio-pci-isr-virtio-gpu
        00000000fe802000-00000000fe802fff (prio 0, i/o): virtio-pci-device-virtio-gpu
        00000000fe803000-00000000fe803fff (prio 0, i/o): virtio-pci-notify-virtio-gpu
      00000000febc0000-00000000febdffff (prio 1, i/o): e1000-mmio
      00000000febf0000-00000000febf0fff (prio 1, i/o): virtio-vga-msix
        00000000febf0000-00000000febf002f (prio 0, i/o): msix-table
        00000000febf0800-00000000febf0807 (prio 0, i/o): msix-pba
      00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios
    00000000000a0000-00000000000bffff (prio 1, i/o): alias smram-region @pci 00000000000a0000-00000000000bffff
    00000000000c0000-00000000000c3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c0000-00000000000c3fff
    00000000000c4000-00000000000c7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c4000-00000000000c7fff
    00000000000c8000-00000000000cbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000c8000-00000000000cbfff
    00000000000cb000-00000000000cdfff (prio 1000, ram): alias kvmvapic-rom @pc.ram 00000000000cb000-00000000000cdfff
    00000000000cc000-00000000000cffff (prio 1, ram): alias pam-rom @pc.ram 00000000000cc000-00000000000cffff
    00000000000d0000-00000000000d3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d0000-00000000000d3fff
    00000000000d4000-00000000000d7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d4000-00000000000d7fff
    00000000000d8000-00000000000dbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000d8000-00000000000dbfff
    00000000000dc000-00000000000dffff (prio 1, ram): alias pam-rom @pc.ram 00000000000dc000-00000000000dffff
    00000000000e0000-00000000000e3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e0000-00000000000e3fff
    00000000000e4000-00000000000e7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e4000-00000000000e7fff
    00000000000e8000-00000000000ebfff (prio 1, ram): alias pam-ram @pc.ram 00000000000e8000-00000000000ebfff
    00000000000ec000-00000000000effff (prio 1, ram): alias pam-ram @pc.ram 00000000000ec000-00000000000effff
    00000000000f0000-00000000000fffff (prio 1, ram): alias pam-rom @pc.ram 00000000000f0000-00000000000fffff
    00000000fec00000-00000000fec00fff (prio 0, i/o): kvm-ioapic
    00000000fed00000-00000000fed003ff (prio 0, i/o): hpet
    00000000fee00000-00000000feefffff (prio 4096, i/o): kvm-apic-msi
    0000000100000000-000000023fffffff (prio 0, ram): alias ram-above-4g @pc.ram 00000000c0000000-00000001ffffffff

address-space: i440FX
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container

address-space: PIIX3
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container

address-space: virtio-vga
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container

address-space: e1000
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container
    0000000000000000-ffffffffffffffff (prio 0, i/o): alias bus master @system 0000000000000000-ffffffffffffffff

address-space: piix3-ide
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container
    0000000000000000-ffffffffffffffff (prio 0, i/o): alias bus master @system 0000000000000000-ffffffffffffffff

address-space: PIIX4_PM
  0000000000000000-ffffffffffffffff (prio 0, i/o): bus master container

address-space: KVM-SMRAM
  0000000000000000-ffffffffffffffff (prio 0, i/o): mem-container-smram
    0000000000000000-00000000ffffffff (prio 10, i/o): smram
      00000000000a0000-00000000000bffff (prio 0, ram): alias smram-low @pc.ram 00000000000a0000-00000000000bffff
    0000000000000000-ffffffffffffffff (prio 0, i/o): alias mem-smram @system 0000000000000000-ffffffffffffffff

memory-region: pc.ram
  0000000000000000-00000001ffffffff (prio 0, ram): pc.ram

memory-region: pc.bios
  00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios

memory-region: pci
  0000000000000000-ffffffffffffffff (prio -1, i/o): pci
    00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
    00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
    00000000000e0000-00000000000fffff (prio 1, rom): alias isa-bios @pc.bios 0000000000020000-000000000003ffff
    00000000fe000000-00000000fe7fffff (prio 1, ram): vga.vram
    00000000fe800000-00000000fe803fff (prio 1, i/o): virtio-pci
      00000000fe800400-00000000fe80041f (prio 0, i/o): vga ioports remapped
      00000000fe800500-00000000fe800515 (prio 0, i/o): bochs dispi interface
      00000000fe800600-00000000fe800607 (prio 0, i/o): qemu extended regs
      00000000fe801000-00000000fe8017ff (prio 0, i/o): virtio-pci-common-virtio-gpu
      00000000fe801800-00000000fe801fff (prio 0, i/o): virtio-pci-isr-virtio-gpu
      00000000fe802000-00000000fe802fff (prio 0, i/o): virtio-pci-device-virtio-gpu
      00000000fe803000-00000000fe803fff (prio 0, i/o): virtio-pci-notify-virtio-gpu
    00000000febc0000-00000000febdffff (prio 1, i/o): e1000-mmio
    00000000febf0000-00000000febf0fff (prio 1, i/o): virtio-vga-msix
      00000000febf0000-00000000febf002f (prio 0, i/o): msix-table
      00000000febf0800-00000000febf0807 (prio 0, i/o): msix-pba
    00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios

memory-region: system
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-00000000bfffffff (prio 0, ram): alias ram-below-4g @pc.ram 0000000000000000-00000000bfffffff
    0000000000000000-ffffffffffffffff (prio -1, i/o): pci
      00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
      00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
      00000000000e0000-00000000000fffff (prio 1, rom): alias isa-bios @pc.bios 0000000000020000-000000000003ffff
      00000000fe000000-00000000fe7fffff (prio 1, ram): vga.vram
      00000000fe800000-00000000fe803fff (prio 1, i/o): virtio-pci
        00000000fe800400-00000000fe80041f (prio 0, i/o): vga ioports remapped
        00000000fe800500-00000000fe800515 (prio 0, i/o): bochs dispi interface
        00000000fe800600-00000000fe800607 (prio 0, i/o): qemu extended regs
        00000000fe801000-00000000fe8017ff (prio 0, i/o): virtio-pci-common-virtio-gpu
        00000000fe801800-00000000fe801fff (prio 0, i/o): virtio-pci-isr-virtio-gpu
        00000000fe802000-00000000fe802fff (prio 0, i/o): virtio-pci-device-virtio-gpu
        00000000fe803000-00000000fe803fff (prio 0, i/o): virtio-pci-notify-virtio-gpu
      00000000febc0000-00000000febdffff (prio 1, i/o): e1000-mmio
      00000000febf0000-00000000febf0fff (prio 1, i/o): virtio-vga-msix
        00000000febf0000-00000000febf002f (prio 0, i/o): msix-table
        00000000febf0800-00000000febf0807 (prio 0, i/o): msix-pba
      00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios
    00000000000a0000-00000000000bffff (prio 1, i/o): alias smram-region @pci 00000000000a0000-00000000000bffff
    00000000000c0000-00000000000c3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c0000-00000000000c3fff
    00000000000c4000-00000000000c7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000c4000-00000000000c7fff
    00000000000c8000-00000000000cbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000c8000-00000000000cbfff
    00000000000cb000-00000000000cdfff (prio 1000, ram): alias kvmvapic-rom @pc.ram 00000000000cb000-00000000000cdfff
    00000000000cc000-00000000000cffff (prio 1, ram): alias pam-rom @pc.ram 00000000000cc000-00000000000cffff
    00000000000d0000-00000000000d3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d0000-00000000000d3fff
    00000000000d4000-00000000000d7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000d4000-00000000000d7fff
    00000000000d8000-00000000000dbfff (prio 1, ram): alias pam-rom @pc.ram 00000000000d8000-00000000000dbfff
    00000000000dc000-00000000000dffff (prio 1, ram): alias pam-rom @pc.ram 00000000000dc000-00000000000dffff
    00000000000e0000-00000000000e3fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e0000-00000000000e3fff
    00000000000e4000-00000000000e7fff (prio 1, ram): alias pam-rom @pc.ram 00000000000e4000-00000000000e7fff
    00000000000e8000-00000000000ebfff (prio 1, ram): alias pam-ram @pc.ram 00000000000e8000-00000000000ebfff
    00000000000ec000-00000000000effff (prio 1, ram): alias pam-ram @pc.ram 00000000000ec000-00000000000effff
    00000000000f0000-00000000000fffff (prio 1, ram): alias pam-rom @pc.ram 00000000000f0000-00000000000fffff
    00000000fec00000-00000000fec00fff (prio 0, i/o): kvm-ioapic
    00000000fed00000-00000000fed003ff (prio 0, i/o): hpet
    00000000fee00000-00000000feefffff (prio 4096, i/o): kvm-apic-msi
    0000000100000000-000000023fffffff (prio 0, ram): alias ram-above-4g @pc.ram 00000000c0000000-00000001ffffffff

info mtree -f

(qemu) info mtree -f
FlatView #0
 AS "memory", root: system
 AS "cpu-memory-0", root: system
 AS "cpu-memory-1", root: system
 AS "e1000", root: bus master container
 AS "piix3-ide", root: bus master container
 Root memory region: system
  0000000000000000-000000000009ffff (prio 0, ram): pc.ram KVM
  00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
  00000000000c0000-00000000000cafff (prio 0, rom): pc.ram @00000000000c0000 KVM
  00000000000cb000-00000000000cdfff (prio 0, ram): pc.ram @00000000000cb000 KVM
  00000000000ce000-00000000000e7fff (prio 0, rom): pc.ram @00000000000ce000 KVM
  00000000000e8000-00000000000effff (prio 0, ram): pc.ram @00000000000e8000 KVM
  00000000000f0000-00000000000fffff (prio 0, rom): pc.ram @00000000000f0000 KVM
  0000000000100000-00000000bfffffff (prio 0, ram): pc.ram @0000000000100000 KVM
  00000000fe000000-00000000fe7fffff (prio 1, ram): vga.vram KVM
  00000000fe800400-00000000fe80041f (prio 0, i/o): vga ioports remapped
  00000000fe800500-00000000fe800515 (prio 0, i/o): bochs dispi interface
  00000000fe800600-00000000fe800607 (prio 0, i/o): qemu extended regs
  00000000fe801000-00000000fe8017ff (prio 0, i/o): virtio-pci-common-virtio-gpu
  00000000fe801800-00000000fe801fff (prio 0, i/o): virtio-pci-isr-virtio-gpu
  00000000fe802000-00000000fe802fff (prio 0, i/o): virtio-pci-device-virtio-gpu
  00000000fe803000-00000000fe803fff (prio 0, i/o): virtio-pci-notify-virtio-gpu
  00000000febc0000-00000000febdffff (prio 1, i/o): e1000-mmio
  00000000febf0000-00000000febf002f (prio 0, i/o): msix-table
  00000000febf0800-00000000febf0807 (prio 0, i/o): msix-pba
  00000000fec00000-00000000fec00fff (prio 0, i/o): kvm-ioapic
  00000000fed00000-00000000fed003ff (prio 0, i/o): hpet
  00000000fee00000-00000000feefffff (prio 4096, i/o): kvm-apic-msi
  00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios KVM
  0000000100000000-000000023fffffff (prio 0, ram): pc.ram @00000000c0000000 KVM

FlatView #1
 AS "I/O", root: io
 Root memory region: io
  0000000000000000-0000000000000007 (prio 0, i/o): dma-chan
  0000000000000008-000000000000000f (prio 0, i/o): dma-cont
  0000000000000010-000000000000001f (prio 0, i/o): io @0000000000000010
  0000000000000020-0000000000000021 (prio 0, i/o): kvm-pic
  0000000000000022-000000000000003f (prio 0, i/o): io @0000000000000022
  0000000000000040-0000000000000043 (prio 0, i/o): kvm-pit
  0000000000000044-000000000000005f (prio 0, i/o): io @0000000000000044
  0000000000000060-0000000000000060 (prio 0, i/o): i8042-data
  0000000000000061-0000000000000061 (prio 0, i/o): pcspk
  0000000000000062-0000000000000063 (prio 0, i/o): io @0000000000000062
  0000000000000064-0000000000000064 (prio 0, i/o): i8042-cmd
  0000000000000065-000000000000006f (prio 0, i/o): io @0000000000000065
  0000000000000070-0000000000000070 (prio 0, i/o): rtc-index
  0000000000000071-0000000000000071 (prio 0, i/o): rtc @0000000000000001
  0000000000000072-000000000000007d (prio 0, i/o): io @0000000000000072
  000000000000007e-000000000000007f (prio 0, i/o): kvmvapic
  0000000000000080-0000000000000080 (prio 0, i/o): ioport80
  0000000000000081-0000000000000083 (prio 0, i/o): dma-page
  0000000000000084-0000000000000086 (prio 0, i/o): io @0000000000000084
  0000000000000087-0000000000000087 (prio 0, i/o): dma-page
  0000000000000088-0000000000000088 (prio 0, i/o): io @0000000000000088
  0000000000000089-000000000000008b (prio 0, i/o): dma-page
  000000000000008c-000000000000008e (prio 0, i/o): io @000000000000008c
  000000000000008f-000000000000008f (prio 0, i/o): dma-page
  0000000000000090-0000000000000091 (prio 0, i/o): io @0000000000000090
  0000000000000092-0000000000000092 (prio 0, i/o): port92
  0000000000000093-000000000000009f (prio 0, i/o): io @0000000000000093
  00000000000000a0-00000000000000a1 (prio 0, i/o): kvm-pic
  00000000000000a2-00000000000000b1 (prio 0, i/o): io @00000000000000a2
  00000000000000b2-00000000000000b3 (prio 0, i/o): apm-io
  00000000000000b4-00000000000000bf (prio 0, i/o): io @00000000000000b4
  00000000000000c0-00000000000000cf (prio 0, i/o): dma-chan
  00000000000000d0-00000000000000df (prio 0, i/o): dma-cont
  00000000000000e0-00000000000000ef (prio 0, i/o): io @00000000000000e0
  00000000000000f0-00000000000000f0 (prio 0, i/o): ioportF0
  00000000000000f1-000000000000016f (prio 0, i/o): io @00000000000000f1
  0000000000000170-0000000000000177 (prio 0, i/o): ide
  0000000000000178-00000000000001cd (prio 0, i/o): io @0000000000000178
  00000000000001ce-00000000000001d1 (prio 0, i/o): vbe
  00000000000001d2-00000000000001ef (prio 0, i/o): io @00000000000001d2
  00000000000001f0-00000000000001f7 (prio 0, i/o): ide
  00000000000001f8-0000000000000375 (prio 0, i/o): io @00000000000001f8
  0000000000000376-0000000000000376 (prio 0, i/o): ide
  0000000000000377-0000000000000377 (prio 0, i/o): io @0000000000000377
  0000000000000378-000000000000037f (prio 0, i/o): parallel
  0000000000000380-00000000000003b3 (prio 0, i/o): io @0000000000000380
  00000000000003b4-00000000000003b5 (prio 0, i/o): vga
  00000000000003b6-00000000000003b9 (prio 0, i/o): io @00000000000003b6
  00000000000003ba-00000000000003ba (prio 0, i/o): vga
  00000000000003bb-00000000000003bf (prio 0, i/o): io @00000000000003bb
  00000000000003c0-00000000000003cf (prio 0, i/o): vga
  00000000000003d0-00000000000003d3 (prio 0, i/o): io @00000000000003d0
  00000000000003d4-00000000000003d5 (prio 0, i/o): vga
  00000000000003d6-00000000000003d9 (prio 0, i/o): io @00000000000003d6
  00000000000003da-00000000000003da (prio 0, i/o): vga
  00000000000003db-00000000000003f0 (prio 0, i/o): io @00000000000003db
  00000000000003f1-00000000000003f5 (prio 0, i/o): fdc
  00000000000003f6-00000000000003f6 (prio 0, i/o): ide
  00000000000003f7-00000000000003f7 (prio 0, i/o): fdc
  00000000000003f8-00000000000003ff (prio 0, i/o): serial
  0000000000000400-00000000000004cf (prio 0, i/o): io @0000000000000400
  00000000000004d0-00000000000004d0 (prio 0, i/o): kvm-elcr
  00000000000004d1-00000000000004d1 (prio 0, i/o): kvm-elcr
  00000000000004d2-000000000000050f (prio 0, i/o): io @00000000000004d2
  0000000000000510-0000000000000511 (prio 0, i/o): fwcfg
  0000000000000512-0000000000000513 (prio 0, i/o): io @0000000000000512
  0000000000000514-000000000000051b (prio 0, i/o): fwcfg.dma
  000000000000051c-00000000000005ff (prio 0, i/o): io @000000000000051c
  0000000000000600-0000000000000603 (prio 0, i/o): acpi-evt
  0000000000000604-0000000000000605 (prio 0, i/o): acpi-cnt
  0000000000000606-0000000000000607 (prio 0, i/o): io @0000000000000606
  0000000000000608-000000000000060b (prio 0, i/o): acpi-tmr
  000000000000060c-00000000000006ff (prio 0, i/o): io @000000000000060c
  0000000000000700-000000000000073f (prio 0, i/o): pm-smbus
  0000000000000740-0000000000000cf7 (prio 0, i/o): io @0000000000000740
  0000000000000cf8-0000000000000cf8 (prio 0, i/o): pci-conf-idx
  0000000000000cf9-0000000000000cf9 (prio 1, i/o): piix3-reset-control
  0000000000000cfa-0000000000000cfb (prio 0, i/o): pci-conf-idx @0000000000000002
  0000000000000cfc-0000000000000cff (prio 0, i/o): pci-conf-data
  0000000000000d00-0000000000005657 (prio 0, i/o): io @0000000000000d00
  0000000000005658-0000000000005658 (prio 0, i/o): vmport
  0000000000005659-000000000000adff (prio 0, i/o): io @0000000000005659
  000000000000ae00-000000000000ae17 (prio 0, i/o): acpi-pci-hotplug
  000000000000ae18-000000000000aeff (prio 0, i/o): io @000000000000ae18
  000000000000af00-000000000000af0b (prio 0, i/o): acpi-cpu-hotplug
  000000000000af0c-000000000000afdf (prio 0, i/o): io @000000000000af0c
  000000000000afe0-000000000000afe3 (prio 0, i/o): acpi-gpe0
  000000000000afe4-000000000000bfff (prio 0, i/o): io @000000000000afe4
  000000000000c000-000000000000c03f (prio 1, i/o): e1000-io
  000000000000c040-000000000000c043 (prio 0, i/o): piix-bmdma
  000000000000c044-000000000000c047 (prio 0, i/o): bmdma
  000000000000c048-000000000000c04b (prio 0, i/o): piix-bmdma
  000000000000c04c-000000000000c04f (prio 0, i/o): bmdma
  000000000000c050-000000000000ffff (prio 0, i/o): io @000000000000c050

FlatView #2
 AS "KVM-SMRAM", root: mem-container-smram
 Root memory region: mem-container-smram
  0000000000000000-00000000000bffff (prio 0, ram): pc.ram KVM
  00000000000c0000-00000000000cafff (prio 0, rom): pc.ram @00000000000c0000 KVM
  00000000000cb000-00000000000cdfff (prio 0, ram): pc.ram @00000000000cb000 KVM
  00000000000ce000-00000000000e7fff (prio 0, rom): pc.ram @00000000000ce000 KVM
  00000000000e8000-00000000000effff (prio 0, ram): pc.ram @00000000000e8000 KVM
  00000000000f0000-00000000000fffff (prio 0, rom): pc.ram @00000000000f0000 KVM
  0000000000100000-00000000bfffffff (prio 0, ram): pc.ram @0000000000100000 KVM
  00000000fe000000-00000000fe7fffff (prio 1, ram): vga.vram KVM
  00000000fe800400-00000000fe80041f (prio 0, i/o): vga ioports remapped
  00000000fe800500-00000000fe800515 (prio 0, i/o): bochs dispi interface
  00000000fe800600-00000000fe800607 (prio 0, i/o): qemu extended regs
  00000000fe801000-00000000fe8017ff (prio 0, i/o): virtio-pci-common-virtio-gpu
  00000000fe801800-00000000fe801fff (prio 0, i/o): virtio-pci-isr-virtio-gpu
  00000000fe802000-00000000fe802fff (prio 0, i/o): virtio-pci-device-virtio-gpu
  00000000fe803000-00000000fe803fff (prio 0, i/o): virtio-pci-notify-virtio-gpu
  00000000febc0000-00000000febdffff (prio 1, i/o): e1000-mmio
  00000000febf0000-00000000febf002f (prio 0, i/o): msix-table
  00000000febf0800-00000000febf0807 (prio 0, i/o): msix-pba
  00000000fec00000-00000000fec00fff (prio 0, i/o): kvm-ioapic
  00000000fed00000-00000000fed003ff (prio 0, i/o): hpet
  00000000fee00000-00000000feefffff (prio 4096, i/o): kvm-apic-msi
  00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios KVM
  0000000100000000-000000023fffffff (prio 0, ram): pc.ram @00000000c0000000 KVM

FlatView #3
 AS "i440FX", root: bus master container
 AS "PIIX3", root: bus master container
 AS "virtio-vga", root: bus master container
 AS "PIIX4_PM", root: bus master container
 Root memory region: (none)
  No rendered FlatView

info qtree

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。