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

[Xen-devel] Re: problem in using MSR in the hypervisor


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Long Wang <longwang.longwang@xxxxxxxxx>
  • Date: Fri, 8 Oct 2010 16:44:45 -0500
  • Delivery-date: Fri, 08 Oct 2010 14:45:28 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=eyG5yHh5LRzk1i5RXJBE+pgwrfFlNL3VYW4P/Cm74UXl/5YEBUnDTs4W/foPPuboAB QDERA8nEuf5XjAt8woShClWKNPAadhSbHXti4Xn7x0qpxRjh8NGr6vfLWM46PhhgNIlw JcS9Y8s+5z0JhzhzsaQUYzV42jty1rM1Dvld8=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

I first used wrmsr_safe() to write a non-zero value into the msr
(MSR_P4_IQ_PERFCTR0), and then read the msr by rdmsr_safe(). But zero
is read.

long

On Fri, Oct 8, 2010 at 4:42 PM, Long Wang <longwang.longwang@xxxxxxxxx> wrote:
> 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


 


Rackspace

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