|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] Re: problem in using MSR in the hypervisor
Are the MSRs invalid in the system? Invalid here means reserved or
unimplemented MSR.
Thanks
--jyh
>-----Original Message-----
>From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>[mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Long Wang
>Sent: Sunday, October 10, 2010 3:26 AM
>To: xen-devel@xxxxxxxxxxxxxxxxxxx
>Subject: [Xen-devel] Re: problem in using MSR in the hypervisor
>
>I added code in the hypervisor to manipulate MSR. Here is my code in
>emulate_privileged_op() in the Xen hypervisor:
>
>....
> // for WRMSR
> case MSR_P4_IQ_PERFCTR0:
> case MSR_P4_IQ_CCCR0:
> case MSR_P4_CRU_ESCR0:
> case MSR_P4_IQ_PERFCTR2:
> case MSR_P4_IQ_CCCR2:
> case MSR_P4_CRU_ESCR1:
> wrmsr_safe(regs->ecx, eax, edx);
> break;
>......
> // for RDMSR
> case MSR_P4_IQ_PERFCTR0:
> case MSR_P4_IQ_CCCR0:
> case MSR_P4_CRU_ESCR0:
> case MSR_P4_IQ_PERFCTR2:
> case MSR_P4_IQ_CCCR2:
> case MSR_P4_CRU_ESCR1:
> printk("the_cs = 0x%x\n", the_cs);
> __asm__ volatile(
> "mov %%cs, %0\n"
> :"=r"(the_cs)
> :
> );
> printk("the_cs = 0x%x\n", the_cs);
> rdmsr_safe(regs->ecx, regs->eax, regs->edx);
> break;
>
>
>The wrmsr_safe() and rdmsr_safe() trigger a general protection fault,
>and the value read from the msr is 0. But I printed out the cs
>descriptor, and found the CPL is 0. Why there is a general protection
>fault here? How can I fix this?
>
>
>thanks,
>long
>
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@xxxxxxxxxxxxxxxxxxx
>http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|