David Lively
2007-Oct-10 21:14 UTC
[Xen-devel] [PATCH] [HVM] fix 64-bit hvm guest migration
Hi - We (well, Robert) just (earlier today) noticed we couldn''t migrate 64-bit guests with the 3.1.1 and unstable hypervisors. The culprit was a too-strict test on guest EFER bits, trivially fixed by the following patch, which applies to both unstable and 3.1.1. Sorry we didn''t catch this before today ... Dave The sanity check for ctxt.msr_efer used to fail when EFER_LMA was set. This prevent migration of 64-bit guests. Signed-off-by: David Lively <dlively@virtualiron.com> Signed-off-by: Robert Phillips <rphillips@virtualiron.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2007-Oct-11 07:15 UTC
Re: [Xen-devel] [PATCH] [HVM] fix 64-bit hvm guest migration
Yep, that''s a very obvious bug. I''ll slip the 3.1.1 release tag for it and get it pushed to the main public tree. Thanks, Keir On 10/10/07 22:14, "David Lively" <dlively@virtualiron.com> wrote:> Hi - > We (well, Robert) just (earlier today) noticed we couldn''t migrate > 64-bit guests with the 3.1.1 and unstable hypervisors. The culprit was > a too-strict test on guest EFER bits, trivially fixed by the following > patch, which applies to both unstable and 3.1.1. Sorry we didn''t catch > this before today ... > > Dave > > The sanity check for ctxt.msr_efer used to fail when EFER_LMA was set. > This prevent migration of 64-bit guests. > > Signed-off-by: David Lively <dlively@virtualiron.com> > Signed-off-by: Robert Phillips <rphillips@virtualiron.com> > > diff -r e56402b6e155 xen/arch/x86/hvm/hvm.c > --- a/xen/arch/x86/hvm/hvm.c Wed Oct 10 11:37:02 2007 -0400 > +++ b/xen/arch/x86/hvm/hvm.c Wed Oct 10 11:37:02 2007 -0400 > @@ -389,8 +389,7 @@ static int hvm_load_cpu_ctxt(struct doma > ctxt.msr_efer); > return -EINVAL; > } > - > - if ( (ctxt.msr_efer & ~(EFER_LME | EFER_NX | EFER_SCE)) || > + if ( (ctxt.msr_efer & ~(EFER_LME | EFER_LMA | EFER_NX | EFER_SCE)) || > ((sizeof(long) != 8) && (ctxt.msr_efer & EFER_LME)) || > (!cpu_has_nx && (ctxt.msr_efer & EFER_NX)) || > (!cpu_has_syscall && (ctxt.msr_efer & EFER_SCE)) || > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel