
On 01/04/11 - 10:41:07AM, Jim Fehlig wrote:
I'm looking into a bug where a libvirt-created xen HVM guest boots *very* slowly on an EPT-enabled machine, particularly when the guest has a dedicated PCI device.
xen-unstable c/s 16931 [1] introduced a per-guest HAP (hardware assisted paging) setting. Unfortunately, the sane default of hap=1 is done by xm client tool instead of xend, so an HVM guest created with xm tool (hap=1) boots as expected but takes much longer when created through libvirt (hap=0).
Should libvirt expose this feature in domain XML? Should it be possible to enable/disable hardware assisted paging on a per-guest level with libvirt? If so, where does such a setting belong? It seems analogous to enabling/disabling PAE and as such belongs under hypervisor features. On IRC, Eric suggested it might fall under memoryBacking like huge page support in KVM.
If folks feel this setting should not be exposed, it could be unconditionally set in the xen driver for HVM guests, similar to the way usb setting is currently handled (see attached patch). Note that the xen domain builder will ignore this setting on hardware without the feature.
My personal feeling is that this is something we should expose. It is useful for testing sometimes, so I think that we could expose it under the hypervisor features with apic, acpi, etc like you suggest. However, I would caution you to beware adding the hap flag unconditionally. Especially on older Xen distributions (I'm thinking something like RHEL-5), sending a hap value that xend does not understand may cause domain creation to fail. -- Chris Lalancette