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

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

Keir Fraser wrote:
> 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

Frankly I don't think the failsafe callback code is expected to work. I
did not see failsafe callback triggered in normal cases or did not have
test cases for that at the initial port. When I actually saw it, it was
caused by a porting bug in x86-64 XenLinux. If you have a valid case
where the failsafe callback should handle, we should fix it.  

Intel Open Source Technology Center

Xen-devel mailing list



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