public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* pci_enable_msix() fails with ENOMEM/EINVAL
@ 2012-11-19 15:18 Alex Lyakas
  2012-11-21 14:19 ` Alex Lyakas
  0 siblings, 1 reply; 13+ messages in thread
From: Alex Lyakas @ 2012-11-19 15:18 UTC (permalink / raw)
  To: kvm

Greetings all,
I am running Ubuntu-Precise 3.2.0-29-generic #46, with stock KVM ("QEMU 
emulator version 1.0 (qemu-kvm-1.0)") on a Dell R510 server. I have one 
dual-port Intel's NIC 82599, of which I spawn 32 VFs from each port. I spawn 
virtual machines with KVM, each VM has 4 VFs attached (two from each PF).

Once in a while, in particular when I spawn multiple VMs in parallel, I hit 
an issue that one of the VFs does not have an IRQ assigned to it. I am 
checking this in /proc/interrupts, looking for entries like 
"kvm:0000:03:14.6". In some cases, an entry is missing for a particular VF. 
As a result, the VF within the VM is non-functional.

I debugged this issue further, by adding prints to kvm.ko code. I see that 
the failure happens in kvm_vm_ioctl_assigned_device/KVM_ASSIGN_DEV_IRQ path, 
which calls assigned_device_enable_host_msix() function, which calls 
pci_enable_msix(), which fails with EINVAL or with ENOMEM. This path is 
called twice for each VF.

For the ENOMEM failure, I see that first pci_enable_msix() returns -12, and 
when kvm_vm_ioctl_set_msix_nr() is called again, it sees that 
adev->entries_nr != 0 and fails the call with EINVAL.

I can repro it only when spawning like 8 or 10 VMs in parallel, but it 
doesn't happen every time. So it seems like this is not a resource shortage 
problem, but some race somewhere.

I tested this with several version of ixgbe drivers, including the in-tree 
version that comes with Precise. It reproduces with all the versions.

Can anybody advise on how to proceed debugging this issue?

Thanks,
Alex.



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-12-19 23:39 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-19 15:18 pci_enable_msix() fails with ENOMEM/EINVAL Alex Lyakas
2012-11-21 14:19 ` Alex Lyakas
2012-11-21 22:25   ` Alex Williamson
2012-11-22  8:52     ` Alex Lyakas
2012-11-26 20:04       ` Alex Williamson
2012-11-29  8:42         ` Alex Lyakas
2012-11-29 15:56           ` Alex Williamson
2012-12-08 12:14             ` Alex Lyakas
2012-12-10 20:45               ` Alex Williamson
2012-12-12 13:42                 ` Alex Lyakas
2012-12-12 20:10                   ` Alex Williamson
2012-12-18 14:46                     ` Alex Lyakas
2012-12-19 23:39                       ` Alex Williamson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox