@@ -9,22 +9,34 @@ Device types supported:
9
9
- KVM_DEV_TYPE_VFIO
10
10
11
11
Only one VFIO instance may be created per VM. The created device
12
- tracks VFIO groups in use by the VM and features of those groups
13
- important to the correctness and acceleration of the VM. As groups
14
- are enabled and disabled for use by the VM, KVM should be updated
15
- about their presence. When registered with KVM, a reference to the
16
- VFIO-group is held by KVM.
12
+ tracks VFIO files (group or device) in use by the VM and features
13
+ of those groups/devices important to the correctness and acceleration
14
+ of the VM. As groups/devices are enabled and disabled for use by the
15
+ VM, KVM should be updated about their presence. When registered with
16
+ KVM, a reference to the VFIO file is held by KVM.
17
17
18
18
Groups:
19
- KVM_DEV_VFIO_GROUP
20
-
21
- KVM_DEV_VFIO_GROUP attributes:
22
- KVM_DEV_VFIO_GROUP_ADD: Add a VFIO group to VFIO-KVM device tracking
23
- kvm_device_attr.addr points to an int32_t file descriptor
24
- for the VFIO group.
25
- KVM_DEV_VFIO_GROUP_DEL: Remove a VFIO group from VFIO-KVM device tracking
26
- kvm_device_attr.addr points to an int32_t file descriptor
27
- for the VFIO group.
19
+ KVM_DEV_VFIO_FILE
20
+ alias: KVM_DEV_VFIO_GROUP
21
+
22
+ KVM_DEV_VFIO_FILE attributes:
23
+ KVM_DEV_VFIO_FILE_ADD: Add a VFIO file (group/device) to VFIO-KVM device
24
+ tracking
25
+
26
+ kvm_device_attr.addr points to an int32_t file descriptor for the
27
+ VFIO file.
28
+
29
+ KVM_DEV_VFIO_FILE_DEL: Remove a VFIO file (group/device) from VFIO-KVM
30
+ device tracking
31
+
32
+ kvm_device_attr.addr points to an int32_t file descriptor for the
33
+ VFIO file.
34
+
35
+ KVM_DEV_VFIO_GROUP (legacy kvm device group restricted to the handling of VFIO group fd):
36
+ KVM_DEV_VFIO_GROUP_ADD: same as KVM_DEV_VFIO_FILE_ADD for group fd only
37
+
38
+ KVM_DEV_VFIO_GROUP_DEL: same as KVM_DEV_VFIO_FILE_DEL for group fd only
39
+
28
40
KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: attaches a guest visible TCE table
29
41
allocated by sPAPR KVM.
30
42
kvm_device_attr.addr points to a struct::
@@ -40,7 +52,10 @@ KVM_DEV_VFIO_GROUP attributes:
40
52
- @tablefd is a file descriptor for a TCE table allocated via
41
53
KVM_CREATE_SPAPR_TCE.
42
54
43
- The GROUP_ADD operation above should be invoked prior to accessing the
55
+ The FILE/ GROUP_ADD operation above should be invoked prior to accessing the
44
56
device file descriptor via VFIO_GROUP_GET_DEVICE_FD in order to support
45
57
drivers which require a kvm pointer to be set in their .open_device()
46
- callback.
58
+ callback. It is the same for device file descriptor via character device
59
+ open which gets device access via VFIO_DEVICE_BIND_IOMMUFD. For such file
60
+ descriptors, FILE_ADD should be invoked before VFIO_DEVICE_BIND_IOMMUFD
61
+ to support the drivers mentioned in prior sentence as well.
0 commit comments