From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yang Zhang Subject: Re: [question kvm-unit-tests] FAIL about apic testcase Date: Wed, 13 Apr 2016 09:35:59 +0800 Message-ID: <570DA27F.5000203@gmail.com> References: <570CF97D.6040809@huawei.com> <570D65C1.3090902@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: oscar.zhangbo@huawei.com, Hangaohuai To: Paolo Bonzini , Zhu Yijun , kvm@vger.kernel.org Return-path: Received: from mail-pa0-f66.google.com ([209.85.220.66]:34223 "EHLO mail-pa0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756482AbcDMBgN (ORCPT ); Tue, 12 Apr 2016 21:36:13 -0400 Received: by mail-pa0-f66.google.com with SMTP id hb4so2561272pac.1 for ; Tue, 12 Apr 2016 18:36:13 -0700 (PDT) In-Reply-To: <570D65C1.3090902@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: 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@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- best regards yang