brintos

brintos / linux-shallow public Read only

0
0
Text · 2.0 KiB · c549143 Raw
62 lines · plain
1.. SPDX-License-Identifier: GPL-2.02 3===================4VFIO virtual device5===================6 7Device types supported:8 9  - KVM_DEV_TYPE_VFIO10 11Only one VFIO instance may be created per VM.  The created device12tracks VFIO files (group or device) in use by the VM and features13of those groups/devices important to the correctness and acceleration14of the VM.  As groups/devices are enabled and disabled for use by the15VM, KVM should be updated about their presence.  When registered with16KVM, a reference to the VFIO file is held by KVM.17 18Groups:19  KVM_DEV_VFIO_FILE20	alias: KVM_DEV_VFIO_GROUP21 22KVM_DEV_VFIO_FILE attributes:23  KVM_DEV_VFIO_FILE_ADD: Add a VFIO file (group/device) to VFIO-KVM device24	tracking25 26	kvm_device_attr.addr points to an int32_t file descriptor for the27	VFIO file.28 29  KVM_DEV_VFIO_FILE_DEL: Remove a VFIO file (group/device) from VFIO-KVM30	device tracking31 32	kvm_device_attr.addr points to an int32_t file descriptor for the33	VFIO file.34 35KVM_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 only37 38  KVM_DEV_VFIO_GROUP_DEL: same as KVM_DEV_VFIO_FILE_DEL for group fd only39 40  KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: attaches a guest visible TCE table41	allocated by sPAPR KVM.42	kvm_device_attr.addr points to a struct::43 44		struct kvm_vfio_spapr_tce {45			__s32	groupfd;46			__s32	tablefd;47		};48 49	where:50 51	- @groupfd is a file descriptor for a VFIO group;52	- @tablefd is a file descriptor for a TCE table allocated via53	  KVM_CREATE_SPAPR_TCE.54 55The FILE/GROUP_ADD operation above should be invoked prior to accessing the56device file descriptor via VFIO_GROUP_GET_DEVICE_FD in order to support57drivers which require a kvm pointer to be set in their .open_device()58callback.  It is the same for device file descriptor via character device59open which gets device access via VFIO_DEVICE_BIND_IOMMUFD.  For such file60descriptors, FILE_ADD should be invoked before VFIO_DEVICE_BIND_IOMMUFD61to support the drivers mentioned in prior sentence as well.62