• Wanpeng Li's avatar
    KVM: eventfd: Fix false positive RCU usage warning · e332b55f
    Wanpeng Li authored
    The splat below can be seen when running kvm-unit-test:
    
         =============================
         WARNING: suspicious RCU usage
         5.18.0-rc7 #5 Tainted: G          IOE
         -----------------------------
         /home/kernel/linux/arch/x86/kvm/../../../virt/kvm/eventfd.c:80 RCU-list traversed in non-reader section!!
    
         other info that might help us debug this:
    
         rcu_scheduler_active = 2, debug_locks = 1
         4 locks held by qemu-system-x86/35124:
          #0: ffff9725391d80b8 (&vcpu->mutex){+.+.}-{4:4}, at: kvm_vcpu_ioctl+0x77/0x710 [kvm]
          #1: ffffbd25cfb2a0b8 (&kvm->srcu){....}-{0:0}, at: vcpu_enter_guest+0xdeb/0x1900 [kvm]
          #2: ffffbd25cfb2b920 (&kvm->irq_srcu){....}-{0:0}, at: kvm_hv_notify_acked_sint+0x79/0x1e0 [kvm]
          #3: ffffbd25cfb2b920 (&kvm->irq_srcu){....}-{0:0}, at: irqfd_resampler_ack+0x5/0x110 [kvm]
    
         stack backtrace:
         CPU: 2 PID: 35124 Comm: qemu-system-x86 Tainted: G          IOE     5.18.0-rc7 #5
         Call Trace:
          <TASK>
          dump_stack_lvl+0x6c/0x9b
          irqfd_resampler_ack+0xfd/0x110 [kvm]
          kvm_notify_acked_gsi+0x32/0x90 [kvm]
          kvm_hv_notify_acked_sint+0xc5/0x1e0 [kvm]
          kvm_hv_set_msr_common+0xec1/0x1160 [kvm]
          kvm_set_msr_common+0x7c3/0xf60 [kvm]
          vmx_set_msr+0x394/0x1240 [kvm_intel]
          kvm_set_msr_ignored_check+0x86/0x200 [kvm]
          kvm_emulate_wrmsr+0x4f/0x1f0 [kvm]
          vmx_handle_exit+0x6fb/0x7e0 [kvm_intel]
          vcpu_enter_guest+0xe5a/0x1900 [kvm]
          kvm_arch_vcpu_ioctl_run+0x16e/0xac0 [kvm]
          kvm_vcpu_ioctl+0x279/0x710 [kvm]
          __x64_sys_ioctl+0x83/0xb0
          do_syscall_64+0x3b/0x90
          entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    resampler-list is protected by irq_srcu (see kvm_irqfd_assign), so fix
    the false positive by using list_for_each_entry_srcu().
    Signed-off-by: default avatarWanpeng Li <wanpengli@tencent.com>
    Message-Id: <1652950153-12489-1-git-send-email-wanpengli@tencent.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    e332b55f
eventfd.c 22.9 KB