Check include/asm/current.h, and then you can find get_current and
set_current definition.
Normally there should be no explicit invocation to set current pointer
(r13 in IA-64), except domain 0 creation and low level context switch
stub. You may print out the dom0->exec_domain[0]'s stack pointer at the
start, and check whether the stack base still matches the former when
printing debug information. If it's still in domain 0's stack context,
then people may doubt the link between domain and exec_domain corrupted.
Thanks,
Kevin
-----Original Message-----
From: xen-...@lists.xensource.com
[mailto:xen-...@lists.xensource.com] On Behalf Of
Haavard
Bjerke
Sent: Saturday, May 28, 2005 10:13 PM
To: Dan Magenheimer
Cc: xen-...@lists.xensource.com
Subject: [Xen-ia64-devel] "current->domain" points to wrong domain
afterdomU launch
After launching domU, current->domain->domain_id is 1, even right after
executing a hypercall from dom0. To get this result, I placed the
following line
in a hypercall in hypercall.c:
printk("hypercall.c: current domain is %d\n",
current->domain->domain_id);
It printed "(XEN) hypercall.c: current domain is 1", though dom0
executed the
hypercall.
This is not the way it behaves in the x86 version, where
current->domain will
point to dom0.
There's no "set_current()" in Xen/ia64; how is "current" maintained?
Haavard