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

Re: [Xen-devel] progress and a problem

On Fri, 25 Jun 2004, ron minnich wrote:

> On Fri, 25 Jun 2004, Keir Fraser wrote:
> > If Xen interrupted a ring-1 activation then the hypervisor_callback
> > stack frame will be pushed onto the stack that was interrupted.

OK, I've confirmed that I have the following situation: 
- Plan 9 in ring 1 in kernel mode (i.e. I really mean ring 1)
- running while(1); at end of main() with mask set to 0
- Xen deschedules Plan 9
- Xen decides to execute a callback to my Ring 1 Plan 9
- Xen is picking up a junk SS/SP pair from the stack
        Reason is that there is not, on the Plan 9 Ring 1 stack, 
        an SS/SP pair! There is only the CS/IP as far as I can see
- Xen calls my Plan 9 callback in Ring 1, with the SS/SP wrong
- Plan 9 hypervisor_callback in Ring 1 does a PUSHAL and takes a 
        page fault
- Plan 9 page fault handler dumps the stack frame , and I see this:
        o trap frame from Xen with good CS/IP, bogus SS/SP, good 
        o hypervisor callback page fault frame good CS/IP, bogus SS/IP
        o frame from my while(1) with correct CS/IP but (important) 
                no valid SS/IP on the stack

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 ...

Note: I am handling page faults in both kernel and user mode (Ring 1 and 
3) just fine. I can do console I/O. I'm just totally hung up on this 
callback mess.

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.



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



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