Revision history [back]

click to hide/show revision 1
initial version

I managed to answer my own question. As it usually is, the solution was simple but not obvious. The biggest clue was libvirt complaining about issues accessing /dev/vfio/vfio. The thing is, it turns out it wasn't talking about permissions, but rather something else entirely.

I made the following changes to my /etc/libvirt/qemu.conf:

cgroup_device_acl = [
   "/dev/null", "/dev/full", "/dev/zero",
   "/dev/random", "/dev/urandom",
   "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
   "/dev/rtc", "/dev/hpet", "/dev/net/tun",
   "/dev/vfio/vfio", "/dev/vfio/43", "/dev/vfio/53"
]

And I was able to pass my cards into my VM's. On some of my hosts it was necessary to add all of the corresponding vfio groups to this list and on others not. The one thing was was absolutely necessary to pass any PCI card into a VM was the /dev/vfio/vfio addition.

Hopefully this saves somebody a few days of head-bangining!

I managed to answer my own question. As it usually is, the solution was simple but not obvious. The biggest clue was libvirt complaining about issues accessing /dev/vfio/vfio. The thing is, it turns out it wasn't talking about permissions, but rather something else entirely.

I made the following changes to my /etc/libvirt/qemu.conf:

cgroup_device_acl = [
   "/dev/null", "/dev/full", "/dev/zero",
   "/dev/random", "/dev/urandom",
   "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
   "/dev/rtc", "/dev/hpet", "/dev/net/tun",
   "/dev/vfio/vfio", "/dev/vfio/43", "/dev/vfio/53"
]

And I was able to pass my cards into my VM's. On some of my hosts it was necessary to add all of the corresponding vfio groups to this list and on others not. The one thing was was absolutely necessary to pass any PCI card into a VM was the /dev/vfio/vfio addition.

Hopefully this saves somebody a few days of head-bangining!

Edit: I don't have enough points to accept my own answer. If someone more noble than I could do that for me I would appreciate it.

I managed to answer my own question. As it usually is, the solution was simple but not obvious. The biggest clue was libvirt complaining about issues accessing /dev/vfio/vfio. The thing is, it turns out it wasn't talking about permissions, but rather something else entirely.

I made the following changes to my /etc/libvirt/qemu.conf:

cgroup_device_acl = [
   "/dev/null", "/dev/full", "/dev/zero",
   "/dev/random", "/dev/urandom",
   "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
   "/dev/rtc", "/dev/hpet", "/dev/net/tun",
   "/dev/vfio/vfio", "/dev/vfio/43", "/dev/vfio/53"
]

And I was able to pass my cards into my VM's. On some of my hosts it was necessary to add all of the corresponding vfio groups to this list and on others not. The one thing was was absolutely necessary to pass any PCI card into a VM was the /dev/vfio/vfio addition.

Hopefully this saves somebody a few days of head-bangining!

Edit: I decided to tear the whole setup down and start over because of the mess I've made of configuration files all over my hosts and I've found that I don't have enough points to accept my own answer. If someone more noble than I could do need to add any of the vfio groups to that for me I would appreciate it.

list, just the /dev/vfio/vfio. Simpler is better!