|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Different esps
> On Tue, 2004-01-20 at 12:11, Jacob Gorm Hansen wrote:
>
> > execution_context_t ctxt;
> > memcpy(&ctxt, get_execution_context(),sizeof(execution_context_t));
> >
> > printk("esp1 %08lx %08lx\n",ctxt.esp, current->thread.esp1);
So current->thread.esp1 is the stack pointer for ring 1 for the
current domain (aka the 'kernel' stack pointer for xenolinux).
The equivalent 'stored' version of this is the 'ring1_esp' field in
a full_execution_context_t.
ctxt is an 'execution_context_t' which holds the user level (ring 3)
stack pointer (and other registers).
> I have tried setting the value of esp1 with the stack_switch hypercall,
> but apparently this is not the one causing the Xen page fault.
The stack_switch hypercall is typically used by GuestOS to tell tell
Xen what it's "kernel" (ring 1) stack (segment + sp) are. It's a bit
like a 'virtual TSS' for each domain (since the ss/sp for ring 1 are
updated from this through each domain schedule). For its use in XenoLinux
see ./xenolinux-2.4.24-sparse/arch/xeno/kernel/process.c:__switch_to()
The initial ring 1 ss/sp come from the full_execution_context_t in
the builddomain_t (see ./xen/common/domain.c:final_setup_guestos())
Anyway, can you post -
a) what it is you're trying to do in detail (I'm guessing it's
to do with migration but not sure what stage you're at) and
b) the console output leading up to your crash (xen and XL output
if possible/relevant).
You might also like to look at ./tools/xc/lib/xc_linux_{save,restore}.c
to see how it works/ed in our version.
cheers,
S.
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel
|
|
|
|
|