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

[Xen-devel] xenoprof passive profiling and "mode" setting



Xiaowei,

I'm puzzled by the following bit of code in p4_check_ctrs():

       if (guest_kernel_mode(current, regs))
                mode = 1;
        else if (ring_0(regs))
                mode = 2;

If I look at the definition for guest_kernel_mode() it is:

include/asm-x86/x86_64/regs.h:

#define guest_kernel_mode(v, r)   \
    (ring_3(r) && ((v)->arch.flags & TF_kernel_mode))

(Note well:  I am running a 64 bit guest and a 64 bit host.)

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()?)

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?

So I'm unsure as to whether the above snippet of code sets the mode correctly.

-- 
Ray Bryant
AMD Performance Labs                   Austin, Tx
512-602-0038 (o)                 512-507-7807 (c)



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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