[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20151211130258.GA4815@pd.tnic>
Date: Fri, 11 Dec 2015 14:02:58 +0100
From: Borislav Petkov <bp@...en8.de>
To: Paolo Bonzini <pbonzini@...hat.com>
Cc: linux-kernel@...r.kernel.org, kvm@...r.kernel.org,
Jörg Rödel <joro@...tes.org>
Subject: Re: [PATCH] kvm: x86: move tracepoints outside extended quiescent
state
On Fri, Dec 11, 2015 at 01:15:04PM +0100, Paolo Bonzini wrote:
> My wild guess is that RSP is getting corrupted, but I guess I'll have to try
> to reproduce to figure out what happens.
Yeah, something's scribbling over stuff where it shouldn't.
> The last thing I need from you (hopefully) is a Kconfig. If you have some
Attached.
> time, it would be great to check if you can reproduce it with an older kernel
> version---trying 4.4-rc1 and 4.3 would be great.
Just did 4.3 and got a much cleaner splat, see below. According to Code:, we're
trapping at:
2b:* ff 50 78 callq *0x78(%rax) <-- trapping instruction
in kvm_arch_vcpu_put() which is this:
movq kvm_x86_ops(%rip), %rax # kvm_x86_ops, kvm_x86_ops
...
call *120(%rax) # _2->vcpu_put
and RAX is 0. So ->vcpu_put() is 0?! I don't think so. So it must be
something corrupted kvm_x86_ops.
Hmmm.
...
[ 133.387161] kvm: zapping shadow pages for mmio generation wraparound
[ 135.998430] kvm [3717]: vcpu0 unhandled rdmsr: 0xc0011021
[ 136.359458] kvm [3717]: vcpu1 unhandled rdmsr: 0xc0011021
[ 136.466257] kvm [3717]: vcpu2 unhandled rdmsr: 0xc0011021
[ 136.563658] kvm [3717]: vcpu3 unhandled rdmsr: 0xc0011021
[ 136.663534] kvm [3717]: vcpu4 unhandled rdmsr: 0xc0011021
[ 136.763708] kvm [3717]: vcpu5 unhandled rdmsr: 0xc0011021
[ 136.869131] kvm [3717]: vcpu6 unhandled rdmsr: 0xc0011021
[ 136.967479] kvm [3717]: vcpu7 unhandled rdmsr: 0xc0011021
[ 245.585109] kvm: zapping shadow pages for mmio generation wraparound
[ 247.482552] kvm [3781]: vcpu0 unhandled rdmsr: 0xc0011021
[ 247.810769] kvm [3781]: vcpu1 unhandled rdmsr: 0xc0011021
[ 247.909217] kvm [3781]: vcpu2 unhandled rdmsr: 0xc0011021
[ 248.009079] kvm [3781]: vcpu3 unhandled rdmsr: 0xc0011021
[ 248.111232] kvm [3781]: vcpu4 unhandled rdmsr: 0xc0011021
[ 248.214389] kvm [3781]: vcpu5 unhandled rdmsr: 0xc0011021
[ 248.318640] kvm [3781]: vcpu6 unhandled rdmsr: 0xc0011021
[ 248.422611] kvm [3781]: vcpu7 unhandled rdmsr: 0xc0011021
[ 266.489947] qemu-system-x86[3783]: segfault at ffffffff816c90b5 ip ffffffff816c90b5 sp 00007f1f3b50ca48 error 15
[ 273.715102] kvm: zapping shadow pages for mmio generation wraparound
[ 275.742117] kvm [3831]: vcpu0 unhandled rdmsr: 0xc0011021
[ 276.119764] kvm [3831]: vcpu1 unhandled rdmsr: 0xc0011021
[ 276.220739] kvm [3831]: vcpu2 unhandled rdmsr: 0xc0011021
[ 276.325400] kvm [3831]: vcpu3 unhandled rdmsr: 0xc0011021
[ 276.426287] kvm [3831]: vcpu4 unhandled rdmsr: 0xc0011021
[ 276.529345] kvm [3831]: vcpu5 unhandled rdmsr: 0xc0011021
[ 276.634471] kvm [3831]: vcpu6 unhandled rdmsr: 0xc0011021
[ 276.733205] kvm [3831]: vcpu7 unhandled rdmsr: 0xc0011021
[ 667.184231] kvm: zapping shadow pages for mmio generation wraparound
[ 669.043526] kvm [3889]: vcpu0 unhandled rdmsr: 0xc0011021
[ 669.363923] kvm [3889]: vcpu1 unhandled rdmsr: 0xc0011021
[ 669.463309] kvm [3889]: vcpu2 unhandled rdmsr: 0xc0011021
[ 669.568626] kvm [3889]: vcpu3 unhandled rdmsr: 0xc0011021
[ 669.672595] kvm [3889]: vcpu4 unhandled rdmsr: 0xc0011021
[ 669.771024] kvm [3889]: vcpu5 unhandled rdmsr: 0xc0011021
[ 669.871012] kvm [3889]: vcpu6 unhandled rdmsr: 0xc0011021
[ 669.970899] kvm [3889]: vcpu7 unhandled rdmsr: 0xc0011021
[ 687.205933] BUG: unable to handle kernel NULL pointer dereference at 0000000000000078
[ 687.213883] IP: [<ffffffffa02b6b94>] kvm_arch_vcpu_put+0x14/0x40 [kvm]
[ 687.220484] PGD 0
[ 687.222529] Oops: 0000 [#1] PREEMPT SMP
[ 687.226526] Modules linked in: tun sha256_ssse3 sha256_generic drbg binfmt_misc ipv6 vfat fat fuse dm_crypt dm_mod kvm_amd kvm crc32_pclmul aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd amd64_edac_mod fam15h_power k10temp edac_mce_amd amdkfd amd_iommu_v2 radeon acpi_cpufreq
[ 687.226549] CPU: 6 PID: 3891 Comm: qemu-system-x86 Not tainted 4.3.0 #1
[ 687.226550] Hardware name: To be filled by O.E.M. To be filled by O.E.M./M5A97 EVO R2.0, BIOS 1503 01/16/2013
[ 687.226552] task: ffff88042986c740 ti: ffff880415164000 task.ti: ffff880415164000
[ 687.226553] RIP: 0010:[<ffffffffa02b6b94>]
[ 687.226570] [<ffffffffa02b6b94>] kvm_arch_vcpu_put+0x14/0x40 [kvm]
[ 687.226572] RSP: 0018:ffff880415167dd0 EFLAGS: 00010256
[ 687.226573] RAX: 0000000000000000 RBX: ffff8804157f8000 RCX: 00000000c0000102
[ 687.226574] RDX: 0000000000000000 RSI: ffffffffa029fa1b RDI: ffff8804157f8000
[ 687.226575] RBP: ffff880415167dd8 R08: 0000000000000001 R09: 0000000000000000
[ 687.226576] R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000000
[ 687.226577] R13: ffff8804157f8000 R14: 0000000000000000 R15: 0000000000000000
[ 687.226579] FS: 00007ffff6353700(0000) GS:ffff88042d200000(0000) knlGS:0000000000000000
[ 687.226580] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 687.226581] CR2: 0000000000000078 CR3: 00000003f75e9000 CR4: 00000000000406e0
[ 687.226582] Stack:
[ 687.226583] ffff8804157f8000
[ 687.226584] ffff880415167df0
[ 687.226584] ffffffffa02b6b97
[ 687.226585] ffff8804157f8000
[ 687.226586] ffff880415167e08
[ 687.226587] ffffffffa029f8bf
[ 687.226587] 0000000000000000
[ 687.226588] ffff880415167e98
[ 687.226589] ffffffffa029fa1b
[ 687.226589] ffff880427df1a00
[ 687.226590] 0000000000000070
[ 687.226591] 0000000000004000
[ 687.226592] Call Trace:
[ 687.226610] [<ffffffffa02b6b97>] kvm_arch_vcpu_put+0x17/0x40 [kvm]
[ 687.226623] [<ffffffffa029f8bf>] vcpu_put+0x1f/0x60 [kvm]
[ 687.226636] [<ffffffffa029fa1b>] kvm_vcpu_ioctl+0x11b/0x6f0 [kvm]
[ 687.226640] [<ffffffff811932c7>] do_vfs_ioctl+0x2d7/0x530
[ 687.226643] [<ffffffff8119f179>] ? __fget_light+0x29/0x90
[ 687.226646] [<ffffffff8119356c>] SyS_ioctl+0x4c/0x90
[ 687.226650] [<ffffffff816c905b>] entry_SYSCALL_64_fastpath+0x16/0x73
[ 687.226652] Code: 83 6b de e0 e9 2a ff ff ff 0f 1f 40 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 8b 05 63 75 04 00 48 89 e5 53 48 89 fb <ff> 50 78 48 89 df e8 a1 fd ff ff 0f 31 48 c1 e2 20 48 09 d0 48
[ 687.226691] RIP [<ffffffffa02b6b94>] kvm_arch_vcpu_put+0x14/0x40 [kvm]
[ 687.226708] RSP <ffff880415167dd0>
[ 687.226710] CR2: 0000000000000078
[ 687.242688] ---[ end trace 41cdf7a208af97a1 ]---
[ 687.242746] note: qemu-system-x86[3891] exited with preempt_count 1
[ 687.226652] Code: 83 6b de e0 e9 2a ff ff ff 0f 1f 40 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 8b 05 63 75 04 00 48 89 e5 53 48 89 fb <ff> 50 78 48 89 df e8 a1 fd ff ff 0f 31 48 c1 e2 20 48 09 d0 48
All code
========
0: 83 6b de e0 subl $0xffffffe0,-0x22(%rbx)
4: e9 2a ff ff ff jmpq 0xffffffffffffff33
9: 0f 1f 40 00 nopl 0x0(%rax)
d: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
14: 00 00 00
17: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
1c: 55 push %rbp
1d: 48 8b 05 63 75 04 00 mov 0x47563(%rip),%rax # 0x47587
24: 48 89 e5 mov %rsp,%rbp
27: 53 push %rbx
28: 48 89 fb mov %rdi,%rbx
2b:* ff 50 78 callq *0x78(%rax) <-- trapping instruction
2e: 48 89 df mov %rbx,%rdi
31: e8 a1 fd ff ff callq 0xfffffffffffffdd7
36: 0f 31 rdtsc
38: 48 c1 e2 20 shl $0x20,%rdx
3c: 48 09 d0 or %rdx,%rax
3f: 48 rex.W
Code starting with the faulting instruction
===========================================
0: ff 50 78 callq *0x78(%rax)
3: 48 89 df mov %rbx,%rdi
6: e8 a1 fd ff ff callq 0xfffffffffffffdac
b: 0f 31 rdtsc
d: 48 c1 e2 20 shl $0x20,%rdx
11: 48 09 d0 or %rdx,%rax
14: 48 rex.W
00000000000120a0 <kvm_arch_vcpu_put>:
120a0: e8 00 00 00 00 callq 120a5 <kvm_arch_vcpu_put+0x5>
120a5: 55 push %rbp
120a6: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 120ad <kvm_arch_vcpu_put+0xd>
120ad: 48 89 e5 mov %rsp,%rbp
120b0: 53 push %rbx
120b1: 48 89 fb mov %rdi,%rbx
120b4: ff 50 78 callq *0x78(%rax)
120b7: 48 89 df mov %rbx,%rdi
120ba: e8 00 00 00 00 callq 120bf <kvm_arch_vcpu_put+0x1f>
120bf: 0f 31 rdtsc
120c1: 48 c1 e2 20 shl $0x20,%rdx
120c5: 48 09 d0 or %rdx,%rax
120c8: 48 89 83 e8 32 00 00 mov %rax,0x32e8(%rbx)
120cf: 5b pop %rbx
120d0: 5d pop %rbp
120d1: c3 retq
120d2: 0f 1f 40 00 nopl 0x0(%rax)
120d6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
120dd: 00 00 00
.globl kvm_arch_vcpu_put
.type kvm_arch_vcpu_put, @function
kvm_arch_vcpu_put:
.LFB3643:
.loc 1 2742 0
.cfi_startproc
1: call __fentry__
pushq %rbp #
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
.loc 1 2743 0
movq kvm_x86_ops(%rip), %rax # kvm_x86_ops, kvm_x86_ops
.loc 1 2742 0
movq %rsp, %rbp #,
.cfi_def_cfa_register 6
pushq %rbx #
.cfi_offset 3, -24
movq %rdi, %rbx # vcpu, vcpu
.loc 1 2743 0
call *120(%rax) # _2->vcpu_put
.loc 1 2744 0
movq %rbx, %rdi # vcpu,
call kvm_put_guest_fpu #
--
Regards/Gruss,
Boris.
ECO tip #101: Trim your mails when you reply.
View attachment ".config" of type "text/plain" (95234 bytes)
Powered by blists - more mailing lists