Re: [question kvm-unit-tests] FAIL about apic testcase

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

 



Get it! Thanks paolo and Yang Zhang.

On 2016/4/13 9:35, Yang Zhang wrote:

> On 2016/4/13 5:16, Paolo Bonzini wrote:
>>
>>
>> On 12/04/2016 15:34, Zhu Yijun wrote:
>>>     I run kvm-unit-tests on rhel_7.0, and the apic unittest failed.
>>
>> kvm-unit-tests always corresponds to the latest kernel version
>> (sometimes even the _next_ kernel version). If you want to use it in
>> RHEL, you have to look at the failures one by one, find the patch that
>> fixed it and confirm that it is not present in RHEL (it might be present
>> in RHEL 7.1 for example). You will then get a set of known failures, and
>> you can patch kvm-unit-tests to remove those tests.
> 
> Yes, Paolo is right. Even for RHEL7u2, I also saw some failures when running km-unit-tests. All the failures are due to lack of corresponding patch  which already in upstream KVM. You need to figure out it one by one and backport the patch manually.
> 
>>
>>> qemu-kvm -enable-kvm -device pc-testdev -device isa-debug-exit,iobase=0xf4,iosize=0x4 -vnc none -serial stdio -device pci-testdev -kernel x86/apic.flat -smp 2 -cpu qemu64,+x2apic,+tsc-deadline
>>> enabling apic
>>> enabling apic
>>> paging enabled
>>> cr0 = 80010011
>>> cr3 = 7fff000
>>> cr4 = 20
>>> apic version: 1050014
>>> PASS: apic existence
>>> x2apic enabled
>>> FAIL: x2apic enabled to invalid state
>>> FAIL: x2apic enabled to apic enabled
>>> FAIL: disabled to invalid state
>>> FAIL: disabled to x2apic enabled
>>> FAIL: apic enabled to invalid state
>>> PASS: apicbase: relocate apic
>>> FAIL: apicbase: reserved physaddr bits
>>> FAIL: apicbase: reserved low bits
>>> PASS: self ipi
>>> PASS: nmi-after-sti
>>> PASS: multiple nmi
>>> tsc deadline timer not detected
>>>
>>> SUMMARY: 12 tests, 7 unexpected failures
>>>
>>>     I found that all the tests with "test_for_exception()" failed. After looking at this function, I cannot understand the macro:
>>>
>>>     "#define set_exception_jmpbuf(jmpbuf) \
>>>     (setjmp(jmpbuf) ? : (__set_exception_jmpbuf(&(jmpbuf)), 0))"
>>>
>>>     So it it always return 0?
>>
>> If setjmp(jmpbuf) returns non-zero, it returns the non-zero value that
>> setjmp returned.
>>
>> If it returns zero, it calls __set_exception_jmpbuf(&jmpbuf) and then
>> returns zero.  The source for the function is in lib/x86/desc.c, and it
>> is simply this:
>>
>>      static jmp_buf *exception_jmpbuf;
>>
>>      void __set_exception_jmpbuf(jmp_buf *addr)
>>      {
>>          exception_jmpbuf = addr;
>>      }
>>
>> Thanks,
>>
>> Paolo
>> -- 
>> To unsubscribe from this list: send the line "unsubscribe kvm" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
> 
> 



--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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