qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/12] Prerequisite change for IOMMUFD support
@ 2023-09-26 11:32 Zhenzhong Duan
  2023-09-26 11:32 ` [PATCH v2 01/12] scripts/update-linux-headers: Add iommufd.h Zhenzhong Duan
                   ` (11 more replies)
  0 siblings, 12 replies; 43+ messages in thread
From: Zhenzhong Duan @ 2023-09-26 11:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: alex.williamson, clg, jgg, nicolinc, joao.m.martins, eric.auger,
	peterx, jasowang, kevin.tian, yi.l.liu, yi.y.sun, chao.p.peng,
	Zhenzhong Duan

Hi All,

Per Cédric's suggestion, the IOMMUFD patchset v1[1] will be splited
to two series, prerequisite patchset and pure IOMMUFD support patchset
to facilitate review. This is the prerequisite one.

The main purpose of this series is to make common.c group agnostic,
all group related code are moved into container.c. Then we are prepared
for next series, abstract base container, adding new backend, etc.

In case someone want to have a preview of the v2 of full IOMMUFD support,
please check github link [2]. For this series, just check
957791f547..609b7836ac in [2].

Test done:
- PCI device were tested
- device hotplug test
- with or without vIOMMU
- VFIO migration with a E800 net card(no dirty sync support) passthrough
- platform, ccw and ap were only compile-tested due to environment limit



[1] https://lore.kernel.org/all/20230830103754.36461-1-zhenzhong.duan@intel.com/t/#u
[2] https://github.com/yiliu1765/qemu/commits/iommufd_cdev_v1_rebased_devlist_split

Changelog:
v2:
- Refine patch description per Eric
- return errno and errp in vfio_kvm_device_[add/del]_fd per Eric
- make memory listener register/deregister in seperate patch per Eric
- Include the .h file first per Cédric
- Add trace event in vfio_attach_device per Cédric
- drop the change to vfio_viommu_preset by refactor per Cédric
- Introduce global VFIO device list and per container list per Alex

Note changelog below are from full IOMMUFD series:

v1:
- Alloc hwpt instead of using auto hwpt
- elaborate iommufd code per Nicolin
- consolidate two patches and drop as.c
- typo error fix and function rename

rfcv4:
- rebase on top of v8.0.3
- Add one patch from Yi which is about vfio device add in kvm
- Remove IOAS_COPY optimization and focus on functions in this patchset
- Fix wrong name issue reported and fix suggested by Matthew
- Fix compilation issue reported and fix sugggsted by Nicolin
- Use query_dirty_bitmap callback to replace get_dirty_bitmap for better 
granularity
- Add dev_iter_next() callback to avoid adding so many callback
  at container scope, add VFIODevice.hwpt to support that
- Restore all functions back to common from container whenever possible,
  mainly migration and reset related functions
- Add --enable/disable-iommufd config option, enabled by default in linux
- Remove VFIODevice.hwpt_next as it's redundant with VFIODevice.next
- Adapt new VFIO_DEVICE_PCI_HOT_RESET uAPI for IOMMUFD backed device
- vfio_kvm_device_add/del_group call vfio_kvm_device_add/del_fd to remove 
redundant code
- Add FD passing support for vfio device backed by IOMMUFD
- Fix hot unplug resource leak issue in vfio_legacy_detach_device()
- Fix FD leak in vfio_get_devicefd()

rfcv3:
- rebase on top of v7.2.0
- Fix the compilation with CONFIG_IOMMUFD unset by using true classes for
  VFIO backends
- Fix use after free in error path, reported by Alister
- Split common.c in several steps to ease the review

rfcv2:
- remove the first three patches of rfcv1
- add open cdev helper suggested by Jason
- remove the QOMification of the VFIOContainer and simply use standard ops 
(David)
- add "-object iommufd" suggested by Alex

Thanks
Zhenzhong

Eric Auger (6):
  scripts/update-linux-headers: Add iommufd.h
  vfio/common: Introduce vfio_container_add|del_section_window()
  vfio/pci: Introduce vfio_[attach/detach]_device
  vfio/platform: Use vfio_[attach/detach]_device
  vfio/ap: Use vfio_[attach/detach]_device
  vfio/ccw: Use vfio_[attach/detach]_device

Yi Liu (2):
  vfio/common: Move IOMMU agnostic helpers to a separate file
  vfio/common: Move legacy VFIO backend code into separate container.c

Zhenzhong Duan (4):
  linux-headers: Add iommufd.h
  vfio/common: Extract out vfio_kvm_device_[add/del]_fd
  vfio/common: Move VFIO reset handler registration to a group agnostic
    function
  vfio/common: Introduce two kinds of VFIO device lists

 include/hw/vfio/vfio-common.h   |   60 +-
 linux-headers/linux/iommufd.h   |  444 ++++++++
 hw/vfio/ap.c                    |   68 +-
 hw/vfio/ccw.c                   |  115 +-
 hw/vfio/common.c                | 1885 +++----------------------------
 hw/vfio/container.c             | 1155 +++++++++++++++++++
 hw/vfio/helpers.c               |  611 ++++++++++
 hw/vfio/pci.c                   |   50 +-
 hw/vfio/platform.c              |   43 +-
 hw/vfio/meson.build             |    2 +
 hw/vfio/trace-events            |    3 +-
 scripts/update-linux-headers.sh |    3 +-
 12 files changed, 2452 insertions(+), 1987 deletions(-)
 create mode 100644 linux-headers/linux/iommufd.h
 create mode 100644 hw/vfio/container.c
 create mode 100644 hw/vfio/helpers.c

-- 
2.34.1



^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2023-10-02 13:58 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-26 11:32 [PATCH v2 00/12] Prerequisite change for IOMMUFD support Zhenzhong Duan
2023-09-26 11:32 ` [PATCH v2 01/12] scripts/update-linux-headers: Add iommufd.h Zhenzhong Duan
2023-09-26 16:42   ` Cédric Le Goater
2023-09-26 11:32 ` [PATCH v2 02/12] linux-headers: " Zhenzhong Duan
2023-09-26 16:44   ` Cédric Le Goater
2023-09-26 11:32 ` [PATCH v2 03/12] vfio/common: Move IOMMU agnostic helpers to a separate file Zhenzhong Duan
2023-09-26 16:45   ` Cédric Le Goater
2023-09-26 11:32 ` [PATCH v2 04/12] vfio/common: Introduce vfio_container_add|del_section_window() Zhenzhong Duan
2023-09-27 10:12   ` Cédric Le Goater
2023-09-27 12:15     ` Eric Auger
2023-09-26 11:32 ` [PATCH v2 05/12] vfio/common: Extract out vfio_kvm_device_[add/del]_fd Zhenzhong Duan
2023-09-27  7:08   ` Eric Auger
2023-09-26 11:32 ` [PATCH v2 06/12] vfio/pci: Introduce vfio_[attach/detach]_device Zhenzhong Duan
2023-09-27  7:35   ` Eric Auger
2023-09-27  9:58     ` Duan, Zhenzhong
2023-09-27 10:02       ` Eric Auger
2023-09-27  9:01   ` Eric Auger
2023-09-27 10:07     ` Duan, Zhenzhong
2023-09-27 12:22       ` Eric Auger
2023-09-27 12:32         ` Duan, Zhenzhong
2023-09-27 12:38           ` Eric Auger
2023-10-02 13:57           ` Eric Auger
2023-09-27 10:16   ` Cédric Le Goater
2023-09-27 12:15     ` Duan, Zhenzhong
2023-09-26 11:32 ` [PATCH v2 07/12] vfio/platform: Use vfio_[attach/detach]_device Zhenzhong Duan
2023-09-27  9:10   ` Eric Auger
2023-09-27 10:11     ` Duan, Zhenzhong
2023-09-26 11:32 ` [PATCH v2 08/12] vfio/ap: " Zhenzhong Duan
2023-09-27  9:16   ` Eric Auger
2023-09-27 11:52     ` Duan, Zhenzhong
2023-09-27 12:24       ` Eric Auger
2023-09-27 12:30         ` Duan, Zhenzhong
2023-09-27 12:37           ` Eric Auger
2023-09-26 11:32 ` [PATCH v2 09/12] vfio/ccw: " Zhenzhong Duan
2023-09-27 10:00   ` Eric Auger
2023-09-27 12:09     ` Duan, Zhenzhong
2023-09-27 13:25       ` Matthew Rosato
2023-09-28  2:55         ` Duan, Zhenzhong
2023-09-26 11:32 ` [PATCH v2 10/12] vfio/common: Move VFIO reset handler registration to a group agnostic function Zhenzhong Duan
2023-09-26 11:32 ` [PATCH v2 11/12] vfio/common: Introduce two kinds of VFIO device lists Zhenzhong Duan
2023-09-27 13:13   ` Eric Auger
2023-09-28  2:38     ` Duan, Zhenzhong
2023-09-26 11:32 ` [PATCH v2 12/12] vfio/common: Move legacy VFIO backend code into separate container.c Zhenzhong Duan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).