]> asedeno.scripts.mit.edu Git - linux.git/blob - Documentation/virt/kvm/devices/vfio.rst
Merge tag 'char-misc-5.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
[linux.git] / Documentation / virt / kvm / devices / vfio.rst
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ===================
4 VFIO virtual device
5 ===================
6
7 Device types supported:
8
9   - KVM_DEV_TYPE_VFIO
10
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.
17
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.
28   KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: attaches a guest visible TCE table
29         allocated by sPAPR KVM.
30         kvm_device_attr.addr points to a struct::
31
32                 struct kvm_vfio_spapr_tce {
33                         __s32   groupfd;
34                         __s32   tablefd;
35                 };
36
37         where:
38
39         - @groupfd is a file descriptor for a VFIO group;
40         - @tablefd is a file descriptor for a TCE table allocated via
41           KVM_CREATE_SPAPR_TCE.