[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] How does vmm get all mmio areas of pci devices?



Hi, any one help? I have puzzled by the question of device's MMIO areas. I
know a MMIO operation of guest os  handled by VMM as follow steps:

1: Qemu-dm does its initialization and presents virtual devices for guest
os.
2: virtual bios executes PCI_setup, it will scan the pci bus and get
configure space of all devices,then virtual bios allocation system
resources(like port I/O range,MMIO range, interrupt) for device.
3: I think in this step vmm will get all  mmio range that in step 2, then
vmm will set ept entry which can cause ept  violation when guest os attemp
to access corresponding MMIO ares.
4: In ept violation exit, vmm will pass mmio operation to qemu-dm.
5: Qemu-dm do mmio operation with its callback functions, if qemu-dm could
not find (or register) callback function for some MMIO ares(for example, in
DMA write process ,the targe physical address is not stationary but
determined by guest os's driver,then when qemu-dm find no callback for DMA
target address, it will pass the  content of write  operation to vmm  by
default, vmm then pass the result into the space of guest os).

what I want to know is step2 and step5:
In step2, how does vmm get all mmio areas of devices? and how vmm set ept
entry with these mmio areas ?
In setp5, is it ture for DMA operatin I described? and when qemu-dm find no
callback function for some MMIO area, what it will do?

Thanks for your help.

--
View this message in context: 
http://xen.1045712.n5.nabble.com/How-does-vmm-get-all-mmio-areas-of-pci-devices-tp5037367p5037367.html
Sent from the Xen - Dev mailing list archive at Nabble.com.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.