Mailing List Archive

[PATCH] x86/xenoprof: Fix kernel/user mode detection for HVM
x86/xenoprof: Fix kernel/user mode detection for HVM

While trying oprofile under Xen, I noticed that HVM passive domain's kernel
addresses were showing up as user application. It turns out under HVM
get_cpu_user_regs()->cs contains 0x0000beef.

Signed-off-by: Jacob Shin <jacob.shin@amd.com>

diff -r e0e1350dfe9b xen/arch/x86/oprofile/xenoprof.c
--- a/xen/arch/x86/oprofile/xenoprof.c Thu Oct 11 15:57:00 2012 +0100
+++ b/xen/arch/x86/oprofile/xenoprof.c Fri Oct 12 10:48:37 2012 -0500
@@ -81,7 +81,11 @@ int xenoprofile_get_mode(const struct vc
return 2;

if ( is_hvm_vcpu(v) )
- return ((regs->cs & 3) != 3);
+ {
+ struct segment_register cs;
+ hvm_get_segment_register((struct vcpu *)v, x86_seg_cs, &cs);
+ return ((cs.sel & 3) != 3);
+ }

return guest_kernel_mode(v, regs);
}


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel