|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] xenoprof passive profiling and "mode" setting
On 5 Jul 2006, at 19:27, Ray Bryant wrote:
So, how is that possibly true for the kernel in an HVM guest?
(Wouldn't guest_kernel_mode(regs) be false in that case since it is not
running ring_3()?)
guest_kernel_mode() does not work for HVM guests. It may need to be
fixed -- it had previously only been used in paravirtual-only contexts.
It might make sense to invert[*] the predicate and rename to
user_mode(). Then definition is simply ring_3(regs) for x86/32 and
(ring_3(regs) && !((v)->arch.flags & TF_kernel_mode)) for x86/64.
Also, wouldn't ring_0(regs) be true if we are running in kernel mode
in an HVM
guest? This code appears to assign such a sample to being part of
xen,
right?
ring_0(regs) should be replaced by !guest_mode(regs).
So maybe:
int mode = 2;
if (guest_mode(regs))
mode = user_mode(current, regs) ? 0 : 1;
-- Keir
[*] Not really inversion, as neither guest_kernel_mode() nor
user_mode() are true for hypervisor mode.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|