[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] progress and a problem
> So, it seems Xen has descheduled my Plan 9 guest but only the CS/IP is on
> the stack. Is there any way at all this could happen? it's very puzzling.
> When Xen deschedules a domain does it force an interrupt or ...
Which stack are you talking about here? When Xen first deschedules
your while(1), the CPU should write CS,EIP,EFLAGS,SS,ESP onto Xen's
When you get a callback, Xen should see that it is 'interrupting' an
existing ring-1 activation, and read the appropriate SS,ESP from its
own (ring-0) stack. When it writes the activation frame for teh
callback, it will only write CS,EIP,EFLAGS. SS,ESP will not be written
to your ring-1 stack because the IRET at the end of your callback
handler will not be changing privilege levels.
The same goes for your page fault: Xen will use the SS,ESP saved on it
own stack, and will not write a SS,ESP pair onto your stack.
> Also, I should mention: I have not done an LIDT or LTR because I was
> hoping to just use the Xen default one for the domain (as I do for the
> GDT). How much trouble could this cause? It seems to have been working
> fine for a few weeks, so I assumed it was no harm done.
Task segments aren't virtualised, so there is no equivalent of
LTR. The quivalent of LIDT is set_trap_table() which you must have
called to be taking page faults.
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
Xen-devel mailing list