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:
while in actuality the PCI I/O gap should have been:
[ 0.000000] Allocating PCI resources starting at b0000000 (gap:
- 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_
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
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
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
nicely, and the "Allocating PCI resource.." is now correct.
Tested this with the PCI devices (NIC, MSI), and with 2GB, 4GB, and 6GB guests
*There is a bug in the Linux kernel so that if you want to save/restore a PV
that has 1-1 mapping it won't restore. Will post the patches shortly for that.
Xen-devel mailing list