Hi Keir! Attached patch fixes a boot hang we have seen with SLES 9.3 and FreeBSD HVM guests. Both are 32bit guests and run with a 64bit hypervisor. The patch does the following: 1) Cache current vcpu in svm_vmexit_do_hlt 2) Check for interrupt shadow in svm_vmexit_do_hlt and handle it like a pending interrupt The boot hang happens when the hlt is intercepted and the interrupt shadow field in vmcb is set, then the guest waits forever for the next timer interrupt. Change 1) is a cleanup, 2) is the fix Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> -- AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Good catch. Actually I think it is better to clear interrupt_shadow in update_guest_eip. I did this, plus a few other cleanups as c/s 16398 in the unstable staging tree. Please take a look and make sure I didn''t screw up. Thanks, Keir On 20/11/07 12:56, "Christoph Egger" <Christoph.Egger@amd.com> wrote:> > Hi Keir! > > Attached patch fixes a boot hang we have seen with SLES 9.3 and FreeBSD HVM > guests. Both are 32bit guests and run with a 64bit hypervisor. > > The patch does the following: > 1) Cache current vcpu in svm_vmexit_do_hlt > 2) Check for interrupt shadow in svm_vmexit_do_hlt and handle it like a > pending interrupt > > The boot hang happens when the hlt is intercepted and the interrupt shadow > field in vmcb is set, then the guest waits forever for the next timer > interrupt. > > Change 1) is a cleanup, 2) is the fix > > Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Changeset 16398 is fine with me. Thank you for committing the fix. Christoph On Tuesday 20 November 2007 16:08:32 Keir Fraser wrote:> Good catch. Actually I think it is better to clear interrupt_shadow in > update_guest_eip. I did this, plus a few other cleanups as c/s 16398 in the > unstable staging tree. Please take a look and make sure I didn''t screw up. > > Thanks, > Keir > > On 20/11/07 12:56, "Christoph Egger" <Christoph.Egger@amd.com> wrote: > > Hi Keir! > > > > Attached patch fixes a boot hang we have seen with SLES 9.3 and FreeBSD > > HVM guests. Both are 32bit guests and run with a 64bit hypervisor. > > > > The patch does the following: > > 1) Cache current vcpu in svm_vmexit_do_hlt > > 2) Check for interrupt shadow in svm_vmexit_do_hlt and handle it like a > > pending interrupt > > > > The boot hang happens when the hlt is intercepted and the interrupt > > shadow field in vmcb is set, then the guest waits forever for the next > > timer interrupt. > > > > Change 1) is a cleanup, 2) is the fix > > > > Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>-- AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Tuesday 20 November 2007 16:29:02 Christoph Egger wrote:> Changeset 16398 is fine with me. Thank you for committing the fix.At least SLES 9.3 does not hang at boot. We will do more intensive testing.> Christoph > > On Tuesday 20 November 2007 16:08:32 Keir Fraser wrote: > > Good catch. Actually I think it is better to clear interrupt_shadow in > > update_guest_eip. I did this, plus a few other cleanups as c/s 16398 in > > the unstable staging tree. Please take a look and make sure I didn''t > > screw up. > > > > Thanks, > > Keir > > > > On 20/11/07 12:56, "Christoph Egger" <Christoph.Egger@amd.com> wrote: > > > Hi Keir! > > > > > > Attached patch fixes a boot hang we have seen with SLES 9.3 and FreeBSD > > > HVM guests. Both are 32bit guests and run with a 64bit hypervisor. > > > > > > The patch does the following: > > > 1) Cache current vcpu in svm_vmexit_do_hlt > > > 2) Check for interrupt shadow in svm_vmexit_do_hlt and handle it like a > > > pending interrupt > > > > > > The boot hang happens when the hlt is intercepted and the interrupt > > > shadow field in vmcb is set, then the guest waits forever for the next > > > timer interrupt. > > > > > > Change 1) is a cleanup, 2) is the fix > > > > > > Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>-- AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel