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

Re: [Xen-devel] How to get a few MSR values from userspace?



On 21/12/12 12:45, Razvan Cojocaru wrote:
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

I'm not sure I understand what you are trying to achieve (nor am I convinced I know how to help you, but if I don't understand the question suffiiciently, I certainly can't advice you on what you can/should do or can't/shouldn't do), but what MSR's are we talking about - the guest MSR's or the host MSR's?

In general, Xen is responsible for "real" Machine Check interrupts (correctible ones), and will then forward this information to the guest if it has enabled MCE in it's code (via the MCE_SOFTIRQ).

Normally, reading MSR's in usermode is not allowed on bare-metal, so not sure why you expect this to work in the guest (or Dom0) on top of Xen. But maybe you don't actually mean userspace as opposed to "kernel mode"?

--
Mats

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


 


Rackspace

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