[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] current not very current (vs curr_vcpu)
On 20/02/2010 03:50, "Mukesh Rathor" <mukesh.rathor@xxxxxxxxxx> wrote: > ah, I see what's going on. context_switch() is scheduling idle vcpu, and > calls continue_idle_domain() to reset_stack_and_jump(idle_loop). > well, reset_stack_and_jump() is setting rsp to guest_cpu_user_regs(), > and interrupt is coming right at that instant. so: > > diff = (char *)guest_cpu_user_regs() - (char *)(r) is 0 > > and as a result, guest_mode(regs) == true. Well, I don't see how this scenario works. If rsp==g_c_u_r() at the instant the interrupt comes in, then the stack frame for the interrupt will be *above* g_c_u_r(). Thus 'diff' in guest_mode() will evaluate non-zero and positive, and regs->{rip,rsp} should point at hypervisor code/stack. Also: in your original email you said regs.rsp pointed at dom0 stack. That doesn't tally with you saying that rsp==g_c_u_r() (an address in hypervisor space) immediately before the interrupt, in this email. Regs->rsp in the scenario you describe here should be exactly equal to g_c_u_r(). -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |