[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] [PATCH 2 of 3] apic: remove 'enabled_via_apicbase' variable

> From: Andrew Cooper
> Sent: Thursday, May 19, 2011 4:36 AM
> >
> >> which has been changed to correctly tare down the local APIC without
> >> a
> > teardown?
> >> protection fault (which leads to a general protection fault).
> > So if you don't have x2apic, then it is wrong to disable the LAPIC mode?
> > What about older hardware?
> I guess I wasn't very clear in my description.  In older hardware without
> x2apic, it is correct to simply twiddle the ENABLE bit in the APICBASE MSR.
> However, with x2apic mode enabled, setting the ENABLE bit from 1 to 0 while
> leaving the EXTD bit set will result in a protection fault which will 
> propagate to
> a general protection fault the same codepath will be called in the fault 
> handler.
> As a result, the current code in disable_local_APIC will result in a GPF if 
> the
> BIOS boots with LAPICs disabled (fine as per the spec for compatibility) and 
> xen
> decided to take advantage of x2apic mode.

Though above is true a bug, I'm curious whether it's a hard requirement to reset
APIC state to the BIOS state, or whether there's other way around to handle it
in kexec path. Could you check how upstream Linux handles this? In a glimpse
upstream Linux only tries to recover APIC to BIOS state for 32bit, and also 
of special treatment on x2apic. Then how would 64bit linux work with kexec?


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.