[libvirt] hypervisor feature - hardware assisted paging

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. Thanks for your comments. Jim [1] http://xenbits.xensource.com/xen-unstable.hg?rev/98c2665056ea

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

Chris Lalancette wrote:
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.
I sent a small patch set to the list which adds HAP to hypervisor features https://www.redhat.com/archives/libvir-list/2011-January/msg00157.html
However, I would caution you to beware adding the hap flag unconditionally.
Right. The patches just expose the setting - users must specify it. Could you review those? :) Thanks! Jim
participants (2)
-
Chris Lalancette
-
Jim Fehlig