So far we've succeeded at making KVM and VFIO mostly unaware of each other, but areas are cropping up where a connection beyond eventfds and irqfds needs to be made. This patch introduces a KVM-VFIO device that is meant to be a gateway for such interaction. The user creates the device and can add and remove VFIO groups to it via file descriptors. When a group is added, KVM verifies the group is valid and gets a reference to it via the VFIO external user interface.
Showing the changes to include/uapi/linux (1 of 8 files). Show all
Unified · Split
| @@ -845,6 +845,10 @@ struct kvm_device_attr { · 844 unmodified lines | |||
| 845 | #define KVM_DEV_TYPE_FSL_MPIC_20 1 | 845 | #define KVM_DEV_TYPE_FSL_MPIC_20 1 |
| 846 | #define KVM_DEV_TYPE_FSL_MPIC_42 2 | 846 | #define KVM_DEV_TYPE_FSL_MPIC_42 2 |
| 847 | #define KVM_DEV_TYPE_XICS 3 | 847 | #define KVM_DEV_TYPE_XICS 3 |
| 848 | #define KVM_DEV_TYPE_VFIO 4 | ||
| 849 | #define KVM_DEV_VFIO_GROUP 1 | ||
| 850 | #define KVM_DEV_VFIO_GROUP_ADD 1 | ||
| 851 | #define KVM_DEV_VFIO_GROUP_DEL 2 | ||
| 848 | 852 | ||
| 849 | /* | 853 | /* |
| 850 | * ioctls for VM fds | 854 | * ioctls for VM fds |