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

[Xen-devel] [PATCH 0 of 5] Patches for PCI passthrough with modified E820.



Hello,

This set of RFC patches allows a PV domain to see the machine's
E820 and figure out where the "PCI I/O" gap is and match it with the reality.

The short end is that with these patches a PV domain can:

 - Use the correct PCI I/O gap. Before these patches, Linux guest would
   boot up and would tell:
   [    0.000000] Allocating PCI resources starting at 40000000 (gap: 
40000000:c0000000)
   while in actuality the PCI I/O gap should have been:
   [    0.000000] Allocating PCI resources starting at b0000000 (gap: 
b0000000:4c000000)

 - The PV domain with PCI devices was limited to 3GB. It now can be booted
   with 4GB, 8GB, or whatever number you want. The PCI devices will now _not_ 
conflict
   with System RAM. Meaning the drivers can load.

 - With 2.6.39 kernels (which has the 1-1 mapping code), the VM_IO flag will be
   now automatically applied to regions that are considerd PCI I/O regions. You 
can
   find out which those are by looking for '1-1' in the kernel bootup.

To use this patchset, the guest config file has to have the parameter 
'pci_hole=1'
enabled (hmm, any ideas for a better name?)

This has been tested with 2.6.36, 2.6.37, 2.6.38, and 2.6.39 kernels, and even
thought the earlier ones don't have the 1-1 mapping code they still parse the 
E820
nicely, and the "Allocating PCI resource.." is now correct.

Tested this with the PCI devices (NIC, MSI), and with 2GB, 4GB, and 6GB guests
with success.

*There is a bug in the Linux kernel so that if you want to save/restore a PV 
guest
that has 1-1 mapping it won't restore. Will post the patches shortly for that.




_______________________________________________
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®.