All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: syzbot <syzbot+da2a2f350196c7a0a389@syzkaller.appspotmail.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	pbonzini@redhat.com,  syzkaller-bugs@googlegroups.com
Subject: Re: [syzbot] [kvm?] WARNING in kvm_vcpu_ioctl
Date: Thu, 29 Oct 2026 10:26:14 -0700	[thread overview]
Message-ID: <auOBtkWSVJO1Ty3k@google.com> (raw)
In-Reply-To: <6ae372ba.f57e0135.1770dd.0070.GAE@google.com>

On Thu, Oct 29, 2026, syzbot wrote:
> Hello,
> 
> syzbot found the following issue on:
> 
> HEAD commit:    c339f4010dea Merge tag 'platform-drivers-x86-v7.4-1' of gi..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=15f440b1580000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=119e5f4d0a8d39cf
> dashboard link: https://syzkaller.appspot.com/bug?extid=da2a2f350196c7a0a389
> compiler:       gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=12952929580000
> 
> Downloadable assets:
> disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-c339f401.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/ff23ecfc810c/vmlinux-c339f401.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/6554a89077aa/bzImage-c339f401.xz
> 
> AI-generated root cause summary:
> When a VM is terminated or marked dead (e.g., via kvm_vm_dead() due to an error
> in enter_smm() or migration), the KVM_REQ_VM_DEAD request is raised on its
> vCPUs. If userspace subsequently issues the KVM_PRE_FAULT_MEMORY ioctl,
> kvm_tdp_page_prefault() bails out upon observing KVM_REQ_VM_DEAD and returns
> -EIO. However, kvm_vcpu_pre_fault_memory() in virt/kvm/kvm_main.c considers -EIO
> an unexpected internal condition and triggers WARN_ON_ONCE(r == 0 || r == -EIO).
> In a production kernel without panic_on_warn, execution breaks out of the loop
> and cleanly returns -EIO to userspace without crashing or corrupting memory.
> 
> full analysis:  https://syzkaller.appspot.com/x/ai_root_cause?x=da2a2f350196c7a0a389
> 
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+da2a2f350196c7a0a389@syzkaller.appspotmail.com
> 
> ------------[ cut here ]------------
> r == 0 || r == -EIO
> WARNING: arch/x86/kvm/../../../virt/kvm/kvm_main.c:4465 at kvm_vcpu_pre_fault_memory virt/kvm/kvm_main.c:4465 [inline], CPU#1: syz.0.17/6063
> WARNING: arch/x86/kvm/../../../virt/kvm/kvm_main.c:4465 at kvm_vcpu_ioctl+0x156a/0x17b0 virt/kvm/kvm_main.c:4744, CPU#1: syz.0.17/6063
> Modules linked in:
> CPU: 1 UID: 0 PID: 6063 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) 
> Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
> RIP: 0010:kvm_vcpu_pre_fault_memory virt/kvm/kvm_main.c:4465 [inline]
> RIP: 0010:kvm_vcpu_ioctl+0x156a/0x17b0 virt/kvm/kvm_main.c:4744
> Code: 9c 35 8b 00 be 01 00 00 00 4c 89 f7 e8 4f b1 b5 03 e9 c3 f8 ff ff e8 85 35 8b 00 90 0f 0b 90 e9 2c f2 ff ff e8 77 35 8b 00 90 <0f> 0b 90 e9 38 fd ff ff e8 69 35 8b 00 65 48 8b 3d 99 02 36 14 31
> RSP: 0018:ffffc90003957c98 EFLAGS: 00010293
> RAX: 0000000000000000 RBX: 1ffff9200072af98 RCX: 0000000000000000
> RDX: ffff8880355fcb00 RSI: ffffffff81831d69 RDI: 0000000000000007
> RBP: ffff8880459f8048 R08: fffffffffffffffb R09: fffffffffffffffb
> R10: ffff8880459f803f R11: 0000000000000001 R12: fffffffffffffffb
> R13: ffffed1006abf960 R14: ffff8880459f8000 R15: ffffc90003957d70
> FS:  00007f7bf8c946c0(0000) GS:ffff8880d458e000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007f0b9aa1ee9c CR3: 0000000037636000 CR4: 0000000000352ef0
> Call Trace:
>  <TASK>
>  vfs_ioctl fs/ioctl.c:51 [inline]
>  __do_sys_ioctl fs/ioctl.c:597 [inline]
>  __se_sys_ioctl fs/ioctl.c:583 [inline]
>  __x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583
>  do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
>  do_syscall_64+0x123/0x790 arch/x86/entry/syscall_64.c:84
>  entry_SYSCALL_64_after_hwframe+0x77/0x7f
> RIP: 0033:0x7f7bf7d9f559
> Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48
> RSP: 002b:00007f7bf8c94028 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> RAX: ffffffffffffffda RBX: 00007f7bf8026090 RCX: 00007f7bf7d9f559
> RDX: 0000200000000800 RSI: 00000000c040aed5 RDI: 0000000000000005
> RBP: 00007f7bf7e36b20 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007f7bf8026128 R14: 00007f7bf8026090 R15: 00007ffcdd24ea18
>  </TASK>

#syz dup: [syzbot] [kvm?] WARNING in kvm_vcpu_pre_fault_memory

      reply	other threads:[~2026-10-29 17:26 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-29 16:22 [syzbot] [kvm?] WARNING in kvm_vcpu_ioctl syzbot
2026-10-29 17:26 ` Sean Christopherson [this message]

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=auOBtkWSVJO1Ty3k@google.com \
    --to=seanjc@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=syzbot+da2a2f350196c7a0a389@syzkaller.appspotmail.com \
    --cc=syzkaller-bugs@googlegroups.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.