[libvirt] Question about hypervisor <features> that are not tristate
Daniel P. Berrange
berrange at redhat.com
Wed Jan 11 17:55:36 UTC 2017
On Wed, Jan 11, 2017 at 10:49:48AM -0700, Jim Fehlig wrote:
> On 01/06/2017 05:31 PM, Jim Fehlig wrote:
>
> Adding xen-devel for a question below...
>
> > Happy new year!
> >
> > Nearly a year ago I reported an issue with the <hap> hypervisor feature on Xen
> > [1] and am now seeing a similar issue with the <pae> feature. Setting the
> > default value of pae changed between xend and libxl. When not specified, xend
> > would enable pae for HVM domains. Clients such as xm and the old libvirt driver
> > did not have to explicitly enable it. In libxl, the pae field within
> > libxl_domain_build_info is initialized to 0. Clients must enable pae, and indeed
> > xl will do so if pae=1 is not specified in the xl.cfg.
> >
> > The xend behavior prevents libvirt from disabling pae, whereas the libxl behvior
> > causes a guest ABI change (config that worked with libvirt+xend doesn't with
> > libvirt+libxl). The libxl behavior also forces management software (e.g.
> > OpenStack nova) to add <pae> where it wasn't needed before.
> >
> > To solve this problem for <hap>, it was changed it to a tristate [2], allowing
> > it to be turned off with explicit <hap state='off'/>, and on if not specified or
> > <hap/> or <hap state='on'/>. Should <pae> (and the remaining hypervisor features
> > that are not tristate) be converted to tristate similar to <hap>? Alternatively,
> > I could simply set pae=1 for all HVM domains in the libxl driver. Like the old
> > libvirt+xend behavior it couldn't be turned off, but I don't think there is a
> > practical use-case to do so. At least no one has complained over all the years
> > of libvirt+xend use.
>
> Xen folks, what is your opinion of always enabling pae for HVM domains in
> the libvirt libxl driver? Is there a need these days to disable it?
>
> Jan had mentioned that some old, buggy guest OS's (Win 9x) might need it
> disabled, and perhaps some cases where it may be desirable to suppress a
> guest OS entering 64-bit mode. But in practice do you think it is necessary
> to expose this knob to users?
If the guest arch is declared as x86_64, then you should unconditionally
force 'pae' to be present, otherwise you'd be giving the guest an i686
environment. The app should request arch == i686 explicitly if they
want an i686 environment. Allowing pae to be toggled for i686 guests
is ok, since that indicates whethre the i686 CPU can address > 2GB
of RAM.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|
More information about the libvir-list
mailing list