Re: [kvm-unit-tests PATCH] x86: vmx: Add test for SIPI signal processing

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

 



> On Oct 11, 2020, at 6:19 PM, Qi, Yadong <yadong.qi@xxxxxxxxx> wrote:
> 
>> On my bare-metal machine, I get a #GP on the WRMSR that writes the EOI inside
>> ipi() :
>> 
>> Test suite: vmx_sipi_signal_test
>> Unhandled exception 13 #GP at ip 0000000000417eba
>> error_code=0000      rflags=00010002      cs=00000008
>> rax=0000000000000000 rcx=000000000000080b rdx=0000000000000000
>> rbx=0000000000000000
>> rbp=000000000053a238 rsi=0000000000000000 rdi=000000000000000b
>> r8=000000000000000a  r9=00000000000003f8 r10=000000000000000d
>> r11=0000000000000000
>> r12=000000000040c7a5 r13=0000000000000000 r14=0000000000000000
>> r15=0000000000000000
>> cr0=0000000080000011 cr2=0000000000000000 cr3=000000000041f000
>> cr4=0000000000000020
>> cr8=0000000000000000
>> 	STACK: @417eba 417f36 417481 417383
>> 
>> I did not dig much deeper. Could it be that there is some confusion between
>> xapic/x2apic ?
> 
> Thanks, Nadav.
> I cannot reproduce the #GP issue on my bare metal machine.
> And I am a little bit confused, there is no EOI MSR write in this test suite,
> how the #GP comes out...
> Could you provide more info for me to reproduce the issue?

We might have different definitions for “bare-metal” :)

I meant that I ran it directly on the machine without KVM. See [1]. You
do need some access serial console through the iDRAC/ilo/etc..

Anyhow, I figured out that you forgot to setup CR3 on the AP.

Doing something like:

+       on_cpu(1, update_cr3, (void *)read_cr3());
 
        /* start AP */
        on_cpu_async(1, sipi_test_ap_thread, NULL);


Solves the problem. You may want to do it in a slightly cleaner way, or
extract update_cr3() to one of the libs to avoid further code duplication.

Regards,
Nadav


[1] https://patchwork.kernel.org/patch/11053903/





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux