kvm: WARNING in em_jmp_far

35 views
Skip to first unread message

Dmitry Vyukov

unread,
Nov 15, 2016, 12:06:35 AM11/15/16
to Paolo Bonzini, Radim Krčmář, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x...@kernel.org, KVM list, LKML, Steve Rutherford, syzkaller
Hello,

The following program triggers WARNING in em_jmp_far:
https://gist.githubusercontent.com/dvyukov/16bfd3d68fa7d5461101ef74e07796e4/raw/e6d663980681f2c5838ff6cd361cede7d3204838/gistfile1.txt


WARNING: CPU: 1 PID: 15748 at arch/x86/kvm/emulate.c:2128 em_jmp_far+0x4a7/0x530
Kernel panic - not syncing: panic_on_warn set ...

CPU: 1 PID: 15748 Comm: syz-executor Not tainted 4.9.0-rc5+ #28
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
ffff880033986ec8 ffffffff834c2959 ffffffff00000001 1ffff10006730d6c
ffffed0006730d64 0000000041b58ab3 ffffffff89575430 ffffffff834c266b
0000000041b58ab3 ffffffff894d1810 ffffffff8158f020 ffffffff811ac787
Call Trace:
[< inline >] __dump_stack lib/dump_stack.c:15
[<ffffffff834c2959>] dump_stack+0x2ee/0x3f5 lib/dump_stack.c:51
[<ffffffff81848908>] panic+0x200/0x425 kernel/panic.c:179
[<ffffffff813fc919>] __warn+0x1c9/0x1e0 kernel/panic.c:542
[<ffffffff813fcb81>] warn_slowpath_null+0x31/0x40 kernel/panic.c:585
[<ffffffff81157867>] em_jmp_far+0x4a7/0x530 arch/x86/kvm/emulate.c:2128
[<ffffffff811614ef>] x86_emulate_insn+0x43f/0x4090 arch/x86/kvm/emulate.c:5294
[<ffffffff810e121e>] x86_emulate_instruction+0x43e/0x2300
arch/x86/kvm/x86.c:5547
[< inline >] emulate_instruction arch/x86/include/asm/kvm_host.h:1116
[< inline >] complete_emulated_io arch/x86/kvm/x86.c:6872
[<ffffffff810e384e>] complete_emulated_mmio+0x76e/0xb70 arch/x86/kvm/x86.c:6936
[<ffffffff810f1c92>] kvm_arch_vcpu_ioctl_run+0x3562/0x4eb0
arch/x86/kvm/x86.c:6980
[<ffffffff8107b328>] kvm_vcpu_ioctl+0x678/0x11c0
arch/x86/kvm/../../../virt/kvm/kvm_main.c:2557
[< inline >] vfs_ioctl fs/ioctl.c:43
[<ffffffff81abcb44>] do_vfs_ioctl+0x1c4/0x1630 fs/ioctl.c:679
[< inline >] SYSC_ioctl fs/ioctl.c:694
[<ffffffff81abe044>] SyS_ioctl+0x94/0xc0 fs/ioctl.c:685
[<ffffffff88143885>] entry_SYSCALL_64_fastpath+0x23/0xc6
Dumping ftrace buffer:
(ftrace buffer empty)
Kernel Offset: disabled
reboot: cpu_has_vmx: ecx=80a02021 1

On commit a25f0944ba9b1d8a6813fd6f1a86f1bd59ac25a6 (Nov 13).

Nadav Amit

unread,
Nov 15, 2016, 12:24:46 AM11/15/16
to Dmitry Vyukov, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x...@kernel.org, KVM list, LKML, Steve Rutherford, syzkaller, Paolo Bonzini, Radim Krčmář

> On Nov 14, 2016, at 9:06 PM, Dmitry Vyukov <dvy...@google.com> wrote:
>
> Hello,
>
> The following program triggers WARNING in em_jmp_far:
> https://gist.githubusercontent.com/dvyukov/16bfd3d68fa7d5461101ef74e07796e4/raw/e6d663980681f2c5838ff6cd361cede7d3204838/gistfile1.txt
>
>
> WARNING: CPU: 1 PID: 15748 at arch/x86/kvm/emulate.c:2128 em_jmp_far+0x4a7/0x530

I don’t know how to “read” the test, but it seems that this warning
can be triggered if CS base/limit cause a #GP exception when EIP
is loaded.

I think it safe to remove this warning (which I introduced) as well as
the redundant “return rc” that follows it. The code should handle the
emulation correctly regardless of the warning.

Regards,
Nadav

Dmitry Vyukov

unread,
Nov 15, 2016, 12:31:14 AM11/15/16
to syzkaller, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x...@kernel.org, KVM list, LKML, Steve Rutherford, Paolo Bonzini, Radim Krčmář
There was also a similar WARNING in em_ret_far:
https://groups.google.com/forum/#!msg/syzkaller/o5ZftARBhrs/r1ivQ-HtBgAJ

Please mail a fix and add a test.

Thanks

Nadav Amit

unread,
Nov 15, 2016, 12:39:28 AM11/15/16
to Dmitry Vyukov, syzkaller, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x...@kernel.org, KVM list, LKML, Steve Rutherford, Paolo Bonzini, Radim Krčmář
I am sorry, but I don’t think my current employer allows me to contribute
to KVM in such a manner.

Regards,
Nadav

Paolo Bonzini

unread,
Nov 15, 2016, 5:45:28 AM11/15/16
to Nadav Amit, Dmitry Vyukov, syzkaller, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x...@kernel.org, KVM list, LKML, Steve Rutherford, Radim Krčmář
No problem, we can take care of it.

Paolo
Reply all
Reply to author
Forward
0 new messages