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

[Xen-devel] 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:42:46 -0500
  • Delivery-date: Fri, 08 Oct 2010 14:43:28 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=u1GzkZvR27PZA7pqJKdF9khZHd/j88oh0yuhoquUutAwzGQg2huigMzhtJCs/huyws t/vDQFndvl9rWVHz69J6fL/8l4/WHIySEcFQjaV2rx0VDn8uCoZ3JnCC4+jSEkqG0ExX +hCIZ3LSCItrUD011nYwaCY4hgDj/6bf5i604=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

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®.