From: Paolo Bonzini <pbonzini@redhat.com>
To: Zhu Yijun <zhuyijun@huawei.com>, kvm@vger.kernel.org
Cc: oscar.zhangbo@huawei.com, Hangaohuai <hangaohuai@huawei.com>
Subject: Re: [question kvm-unit-tests] FAIL about apic testcase
Date: Tue, 12 Apr 2016 23:16:49 +0200 [thread overview]
Message-ID: <570D65C1.3090902@redhat.com> (raw)
In-Reply-To: <570CF97D.6040809@huawei.com>
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.
> 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
next prev parent reply other threads:[~2016-04-12 21:16 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-12 13:34 [question kvm-unit-tests] FAIL about apic testcase Zhu Yijun
2016-04-12 21:16 ` Paolo Bonzini [this message]
2016-04-13 1:35 ` Yang Zhang
2016-04-13 1:50 ` Zhu Yijun
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=570D65C1.3090902@redhat.com \
--to=pbonzini@redhat.com \
--cc=hangaohuai@huawei.com \
--cc=kvm@vger.kernel.org \
--cc=oscar.zhangbo@huawei.com \
--cc=zhuyijun@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.