All of lore.kernel.org
 help / color / mirror / Atom feed
* How to get a few MSR values from userspace?
@ 2012-12-21 12:45 Razvan Cojocaru
  2012-12-21 13:16 ` Mats Petersson
  2012-12-21 13:53 ` Jan Beulich
  0 siblings, 2 replies; 7+ messages in thread
From: Razvan Cojocaru @ 2012-12-21 12:45 UTC (permalink / raw)
  To: xen-devel@lists.xen.org

Hello,

I need access to some MSR values that are not currently being saved in 
struct hvm_hw_cpu. Among them are MSR_IA32_MC0_CTL, MSR_IA32_MISC_ENABLE 
and MSR_IA32_ENERGY_PERF_BIAS.

The way I'm approaching this that I'll patch xen/arch/x86/hvm/vmx/vmx.c 
and xen/arch/x86/hvm/svm/svm.c, and add this in vmx_save_cpu_state() and 
svm_save_cpu_state(), respectively:

hvm_msr_read_intercept(MSR_IA32_MC0_CTL, &data->msr_mc0_ctl);

and so on, for the other registers (after adding the msr_mc0_ctl member 
to struct hvm_hw_cpu, of course). I would also have to do the reverse 
operation (using hvm_msr_write_intercept()) in vmx_load_cpu_state().

My questions:

1. Does it seem architecturally sound to perform the described 
modifications? Can I use hvm_msr_xxx_intercept() for both the VMX and 
the SVM code?

2. It seems repetitive to have duplicated code in both 
vmx_save_cpu_state() and svm_save_cpu_state(), does it make more sense 
to have it like that anyway (in case, for example, the SVM way to 
retrieve that register could change in the future)?

3. Do I need to do additional things so that I won't break anything else?

4. Is there a better way to achieve what I'm after?

Thanks,
Razvan Cojocaru

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-12-21 16:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-21 12:45 How to get a few MSR values from userspace? Razvan Cojocaru
2012-12-21 13:16 ` Mats Petersson
2012-12-21 13:26   ` Razvan Cojocaru
2012-12-21 13:53 ` Jan Beulich
2012-12-21 14:08   ` Razvan Cojocaru
2012-12-21 14:39     ` Mats Petersson
2012-12-21 16:01     ` Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.