[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: problem in using MSR in the hypervisor
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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |