Hello, I've tried to read msr in hypervisor code:

uint64_t reg;

rdmsr_safe(0x412e, ret);


But, I all failed to read it because the hypervisor is running in ring-1
CPL as I did googling.
When I accessed msr, the crash log is below:


(XEN) ----[ Xen-4.9.0  x86_64  debug=n   Not tainted ]----
>
> (XEN) CPU:    7
>
> (XEN) RIP:    e008:[<ffff82d08024139d>] mcsched.c#shscan_timer_fn+0xd/0x180
>
> (XEN) RFLAGS: 0000000000010206   CONTEXT: hypervisor
>
> (XEN) rax: ffff83084abfe028   rbx: ffff83084abfe300   rcx: 000000000000412e
>
> (XEN) rdx: ffff83084abb7fff   rsi: ffff82d080632f00   rdi: 0000000000000000
>
> (XEN) rbp: ffff82d080241390   rsp: ffff83084abb7e30   r8:  ffff830868d4bdc0
>
> (XEN) r9:  0000000000000005   r10: 0000012da75b50a5   r11: ffff8300782f3060
>
> (XEN) r12: 0000000000000000   r13: 0000012d9f9d6e07   r14: ffff83084abb7fff
>
> (XEN) r15: ffff82d08062ad80   cr0: 000000008005003b   cr4: 00000000003526e0
>
> (XEN) cr3: 00000003426f3000   cr2: 00007fc3c21d4000
>
> (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e010   cs: e008
>
> (XEN) Xen code around <ffff82d08024139d>
>> (mcsched.c#shscan_timer_fn+0xd/0x180):
>
> (XEN)  00 00 41 55 41 54 55 53 <0f> 32 4c 8d 05 0a 79 11 00 48 8d 0d 91 45
>> 14 00
>
> (XEN) Xen stack trace from rsp=ffff83084abb7e30:
>
> (XEN)    ffff83084abfe300 ffff82d080241390 0000000000000000
>> 0000012d9f9d6e07
>
> (XEN)    ffff83084abb7fff ffff82d08023841d ffff83084abfe300
>> ffff82d080632f00
>
> (XEN)    ffff830868d4bdb0 ffff82d0802385c6 ffff82d080641240
>> 00000000ffffffff
>
> (XEN)    0000000000000000 ffff82d08062aa00 ffffffffffffffff
>> ffff83084abb7fff
>
> (XEN)    ffff82d08062ad80 ffff82d080234e0a ffff83084abb7fff
>> 00000000ffffffff
>
> (XEN)    ffff83084abb7fff 00000000ffffffff ffff830868ce2000
>> ffff8306e5a36000
>
> (XEN)    ffff82d080641240 ffff82d08026b725 0000000000000000
>> ffff830077ff8000
>
> (XEN)    ffff8300782f3000 ffffffff81e00000 0000000000000000
>> 0000000000000000
>
> (XEN)    0000000000000000 ffffffff81e03e68 ffffffff81f3c9c0
>> 0000000000000246
>
> (XEN)    0000000000007ff0 0000000000000000 ffff88003f810580
>> 0000000000000000
>
> (XEN)    ffffffff810013aa ffffffff81e55450 0000000000000000
>> 0000000000000001
>
> (XEN)    0000010000000000 ffffffff810013aa 000000000000e033
>> 0000000000000246
>
> (XEN)    ffffffff81e03e38 000000000000e02b 0000000000000000
>> 0000000000000000
>
> (XEN)    0000000000000000 0000000000000000 0000000000000007
>> ffff830077ff8000
>
> (XEN)    00000037ca5a7300 00000000003526e0
>
> (XEN) Xen call trace:
>
> (XEN)    [<ffff82d08024139d>] mcsched.c#shscan_timer_fn+0xd/0x180
>
> (XEN)    [<ffff82d080241390>] mcsched.c#shscan_timer_fn+0/0x180
>
> (XEN)    [<ffff82d08023841d>] timer.c#execute_timer+0x3d/0x60
>
> (XEN)    [<ffff82d0802385c6>] timer.c#timer_softirq_action+0x66/0x250
>
> (XEN)    [<ffff82d080234e0a>] softirq.c#__do_softirq+0x7a/0xc0
>
> (XEN)    [<ffff82d08026b725>] domain.c#idle_loop+0x35/0x70
>
> (XEN)
>
> (XEN)
>
> (XEN) ****************************************
>
> (XEN) Panic on CPU 7:
>
> (XEN) GENERAL PROTECTION FAULT
>
> (XEN) [error_code=0000]
>
> (XEN) ****************************************
>
>
>
So... I need to find any way to access msr.
Please give me some clue to solve this problem.

Thanks!

Minjun Hong
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to