
On 01/12/2017 07:50 AM, Martin Kletzander wrote:
On Thu, Jan 12, 2017 at 07:31:29AM -0700, Jim Fehlig wrote:
On 01/12/2017 02:06 AM, Martin Kletzander wrote:
On Wed, Jan 11, 2017 at 05:45:27PM -0700, Jim Fehlig wrote:
For HVM domains, pae is only set in libxl_domain_build_info when explicitly specified in the hypervisor <features> config. This is fine for i686 machines, but is incorrect behavior for x86_64 machines where pae must always be enabled. See the following discussion for additional details
https://www.redhat.com/archives/libvir-list/2017-January/msg00254.html Signed-off-by: Jim Fehlig <jfehlig@suse.com> --- src/libxl/libxl_domain.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index fbe7ee5..a5314b0 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -410,6 +410,12 @@ libxlDomainDefPostParse(virDomainDefPtr def, if (xenDomainDefAddImplicitInputDevice(def) < 0) return -1;
+ /* For x86_64 HVM, always enable pae */ + if (def->os.type == VIR_DOMAIN_OSTYPE_HVM && + def->os.arch == VIR_ARCH_X86_64) { + def->features[VIR_DOMAIN_FEATURE_PAE] = VIR_TRISTATE_SWITCH_ON; + } +
This will even rewrite explicit <pae enabled='no/>
According to docs/schemas/domaincommon.rng, pae is not a tristate :-). One of the options for solving this problem is to make it one
https://www.redhat.com/archives/libvir-list/2017-January/msg00254.html
I saw that, but I somehow thought it changed since, I haven't realized it's less than a week ago.
I would check that it's not VIR_TRISTATE_SWITCH_OFF, then enable it and during startup just fail if it is VIR_TRISTATE_SWITCH_ON.
I suppose you mean fail if it is *not* VIR_TRISTATE_SWITCH_ON?
No, we add features by default normally, I just thought it's a tristate. Since it doesn't, this patch makes sense as it is.
ACK, safe for freeze if you want to.
Thanks. Since I think the bug fix is noteworthy, I squashed in the below news entry and pushed the patch. Regards, Jim --- a/docs/news.xml +++ b/docs/news.xml @@ -214,6 +214,17 @@ default to the general working scenario. </description> </change> + <change> + <summary> + libxl: always enable pae for x86_64 HVM + </summary> + <description> + By default pae is disabled in libxl. Without an explicit <pae/> + setting in the domain <features> configuration, an x86_64 HVM + domain would be get an i686 environment. pae should always be enabled + for x86_64 HVM domains. + </description> + </change>