vfio 驱动是一个新的用户态驱动框架,vfio本身作为一个内核模块,可以为用户态驱动提供 DMA 和 interrupt 等特性,一般用在虚拟化等场景,可以实现设备直通和设备隔离。
drivers/vfio/
├── Kconfig
├── Makefile
├── mdev
│ ├── Kconfig
│ ├── Makefile
│ ├── mdev_core.c
│ ├── mdev_driver.c
│ ├── mdev_private.h
│ ├── mdev_sysfs.c
│ └── vfio_mdev.c
├── pci
│ ├── Kconfig
│ ├── Makefile
│ ├── trace.h
│ ├── vfio_pci.c
│ ├── vfio_pci_config.c
│ ├── vfio_pci_igd.c
│ ├── vfio_pci_intrs.c
│ ├── vfio_pci_nvlink2.c
│ ├── vfio_pci_private.h
│ └── vfio_pci_rdwr.c
├── platform
│ ├── Kconfig
│ ├── Makefile
│ ├── reset
│ │ ├── Kconfig
│ │ ├── Makefile
│ │ ├── vfio_platform_amdxgbe.c
│ │ ├── vfio_platform_bcmflexrm.c
│ │ └── vfio_platform_calxedaxgmac.c
│ ├── vfio_amba.c
│ ├── vfio_platform.c
│ ├── vfio_platform_common.c
│ ├── vfio_platform_irq.c
│ └── vfio_platform_private.h
├── vfio.c
├── vfio_iommu_spapr_tce.c
├── vfio_iommu_type1.c
├── vfio_spapr_eeh.c
└── virqfd.c