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

Re: [Xen-devel] 64-bit failsafe callback

On 27 Mar 2006, at 22:57, Jan Beulich wrote:

We're, while porting the kernel code back to SLES9, running into a case where the failsafe callback gets entered. Looking at that code we don't seem to be able to understand how it is actually expected to work. That code, out of load_segments, stores the selectors (including one or more that failed) into the (extended) frame for the kernel to pick them up. The kernel code, however, simply re-does the load of these selectors - how can that be expected to work any better than in the hypervisor? Further, the kernel blindly loads fs and gs, without caring to destroy their base addresses and, even more importantly, its own ability to access the PDA.

Xen allows the kernel to do something smarter if it wants, but the correct thing in Linux is to simply zero invalid selectors, so that's what the failsafe callback handler does. The reload into %gs is indeed bogus -- it should instead HYPERVISOR_set_segment_base(SEGBASE_GS_USER_SEL, gs).

 -- Keir

Xen-devel mailing list



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