Public bug reported: Latest QEMU master fails to run with too many MMIO devices specified.
After patch 3ac7d43a6fb [1] QEMU just prints an error message and exits. > kvm_mem_ioeventfd_add: error adding ioeventfd: No space left on device This is reproducible e.g. with the following setup: qemu-3.1.50-dirty \ -machine pc-i440fx-2.7,accel=kvm \ -cpu host -m 4096 \ -smp 2,sockets=2,cores=1,threads=1 \ -drive file=freebsd_vm_1.qcow2,format=qcow2,if=none,id=bootdr \ -device ide-hd,drive=bootdr,bootindex=0 \ -device virtio-scsi-pci,id=vc0 \ -device virtio-scsi-pci,id=vc1 \ -device virtio-scsi-pci,id=vc2 \ -device virtio-scsi-pci,id=vc3 \ Running with just 3 Virtio-SCSI controllers seems to work fine, adding more than that causes the error above. Note that this is not Virtio-SCSI specific. I've also reproduced this without any Virtio devices whatsoever. strace shows the following ioctl chain over and over: 145787 ioctl(11, KVM_UNREGISTER_COALESCED_MMIO, 0x7f60a4985410) = 0 145787 ioctl(11, KVM_UNREGISTER_COALESCED_MMIO, 0x7f60a4985410) = 0 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = 0 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) Which suggests there's some kind of MMIO region leak. [1] commit 3ac7d43a6fbb5d4a3d01fc9a055c218030af3727 Author: Paolo Bonzini <pbonz...@redhat.com> AuthorDate: Wed Nov 28 17:28:45 2018 +0100 Commit: Paolo Bonzini <pbonz...@redhat.com> CommitDate: Fri Jan 11 13:57:24 2019 +0100 memory: update coalesced_range on transaction_commit ** Affects: qemu Importance: Undecided Status: New -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1813940 Title: kvm_mem_ioeventfd_add: error adding ioeventfd: No space left on device Status in QEMU: New Bug description: Latest QEMU master fails to run with too many MMIO devices specified. After patch 3ac7d43a6fb [1] QEMU just prints an error message and exits. > kvm_mem_ioeventfd_add: error adding ioeventfd: No space left on device This is reproducible e.g. with the following setup: qemu-3.1.50-dirty \ -machine pc-i440fx-2.7,accel=kvm \ -cpu host -m 4096 \ -smp 2,sockets=2,cores=1,threads=1 \ -drive file=freebsd_vm_1.qcow2,format=qcow2,if=none,id=bootdr \ -device ide-hd,drive=bootdr,bootindex=0 \ -device virtio-scsi-pci,id=vc0 \ -device virtio-scsi-pci,id=vc1 \ -device virtio-scsi-pci,id=vc2 \ -device virtio-scsi-pci,id=vc3 \ Running with just 3 Virtio-SCSI controllers seems to work fine, adding more than that causes the error above. Note that this is not Virtio- SCSI specific. I've also reproduced this without any Virtio devices whatsoever. strace shows the following ioctl chain over and over: 145787 ioctl(11, KVM_UNREGISTER_COALESCED_MMIO, 0x7f60a4985410) = 0 145787 ioctl(11, KVM_UNREGISTER_COALESCED_MMIO, 0x7f60a4985410) = 0 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = 0 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) 145787 ioctl(11, KVM_REGISTER_COALESCED_MMIO, 0x7f60a49853b0) = -1 ENOSPC (No space left on device) Which suggests there's some kind of MMIO region leak. [1] commit 3ac7d43a6fbb5d4a3d01fc9a055c218030af3727 Author: Paolo Bonzini <pbonz...@redhat.com> AuthorDate: Wed Nov 28 17:28:45 2018 +0100 Commit: Paolo Bonzini <pbonz...@redhat.com> CommitDate: Fri Jan 11 13:57:24 2019 +0100 memory: update coalesced_range on transaction_commit To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1813940/+subscriptions