[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |