mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 00/12] Rust VFIO PCI support and NVIDIA vGPU driver
@ 2026-10-23 15:39 Simon Song
  2026-10-23 15:39 ` [PATCH v2 01/12] rust: pci: add VFIO override device IDs Simon Song
                   ` (11 more replies)
  0 siblings, 12 replies; 14+ messages in thread
From: Simon Song @ 2026-10-23 15:39 UTC (permalink / raw)
  To: dakr, acourbot, kvm, rust-for-linux, nova-gpu, linux-pci
  Cc: alex, jgg, yishaih, skolothumtho, kevin.tian, airlied, simona,
	ojeda, alex.gaynor, boqun.feng, gary, bjorn3_gh, lossin,
	a.hindborg, aliceryhl, tmgross, jhubbard, ecourtney, cjia,
	smitra, kjaju, alkumar, ankita, aniketa, kwankhede, targupta,
	linux-kernel, zhiwang, zhiw, boqun, daniel.almeida, tamird, work,
	jgg, bhelgaas, kwilczynski, dri-devel, peter, xinmengs

This updates Zhi Wang's Rust VFIO PCI series [1]. The NVIDIA variant
uses nova-core's typed SR-IOV PF interface to create, reset and release
vGPU instances while VFIO provides userspace access to the PCI device.

The base includes Zhi's BAR1 self-test fix:

- commit 317e76cc60b7 ("gpu: nova-core: mm: keep BAR1 self-test page
  tables alive") [2]

It also includes both prerequisites cherry-picked from Alex Williamson's
VFIO tree:

- commit f1b563d3e3cb ("Merge tag 'topic/pci-vgaarb-rework-2026-10-01'
  of https://gitlab.freedesktop.org/drm/kernel into v7.4/vfio/next") [3]
- commit 6a5f427bee12 ("vfio/pci: Remove the core dependency on driver
  data") [4]

These allow Rust VFIO PCI drivers to use their own typed PCI driver data.

Patches 1-4 provide the PCI helpers and VFIO PCI abstractions. Patches
5-8 add reset, bind, AER and runtime-PM support to the shared PCI adapter.
Patch 9 migrates VFIO to that adapter. Patch 10 separates common VFIO
handling from PCI, patch 11 publishes the typed Nova PF interface, and
patch 12 adds the NVIDIA VFIO variant driver.

Changes since v1:
- Patch 2: restrict vf_id() to Device<device::Bound>, following Danilo's
  review, so VF index lookup requires a bound PCI device.
- Patch 4: adapt to the updated VFIO core driver-data APIs. Pass only the
  core device to vfio_pci_core_register_device() and
  vfio_pci_core_aer_err_detected(), use VFIO core's VGA callback, and
  guard runtime-PM helpers with CONFIG_PM.
- New patches 5-8: add bind, reset, AER and runtime-PM callbacks to
  pci::Driver so VFIO variants can reuse the PCI adapter. Run bind()
  after driver data is installed, and require Sync only for runtime-PM
  driver data.
- New patch 9: remove vfio::pci::Adapter and expose VFIO registration
  through the shared PCI adapter, with a build-time check that VFIO
  drivers install PM callbacks when CONFIG_PM is enabled.
- Patch 12 (v1 patch 7): register the NVIDIA driver through pci::Adapter
  and delegate bind, unbind, reset, AER and runtime PM to its VFIO
  registration.

Integration branch:
https://github.com/xinmengsong/nova-core/tree/nova-vgpu-wip-oct-18

[1]
https://lore.kernel.org/nova-gpu/cover.1790764573.git.zhiw@nvidia.com/
[2]
https://github.com/zhiwang-nvidia/nova-core/commit/317e76cc60b763a03664cbf8244f4de076e58aa7
[3]
https://github.com/awilliam/linux-vfio/commit/f1b563d3e3cb0f9a97ef77f538ffc0e75e79a628
[4]
https://github.com/awilliam/linux-vfio/commit/6a5f427bee12c82beaf13efbd133416da1541c39

Danilo Krummrich (5):
  rust: pci: add VFIO override device IDs
  rust: pci: expose the VF index within its PF
  rust: pci: allow drivers to manage DMA ownership
  rust: vfio: add PCI variant driver abstractions
  vfio/nvidia-vgpu: add the Rust VFIO variant driver

Simon Song (5):
  rust: pci: add reset callbacks
  rust: pci: add a bind callback after installing driver data
  rust: pci: add an error_detected callback
  rust: pci: add runtime PM callbacks
  rust: vfio: use the PCI adapter for variant drivers

Zhi Wang (2):
  rust: vfio: separate common device handling from PCI
  gpu: nova-core: publish typed SR-IOV PF APIs

 drivers/gpu/Makefile                        |  15 +-
 drivers/gpu/nova-core/driver.rs             |  47 ++
 drivers/gpu/nova-core/nova_core.rs          |   2 +
 drivers/gpu/nova-core/vgpu/vgpu_api.rs      |  82 +-
 drivers/vfio/pci/Kconfig                    |   2 +
 drivers/vfio/pci/Makefile                   |   2 +
 drivers/vfio/pci/nvidia-vgpu/Kconfig        |  20 +
 drivers/vfio/pci/nvidia-vgpu/Makefile       |   3 +
 drivers/vfio/pci/nvidia-vgpu/nvidia_vgpu.rs | 402 +++++++++
 rust/bindings/bindings_helper.h             |   4 +
 rust/kernel/lib.rs                          |   2 +
 rust/kernel/pci.rs                          | 229 ++++++
 rust/kernel/pci/iov.rs                      |   8 +
 rust/kernel/vfio.rs                         | 290 +++++++
 rust/kernel/vfio/pci.rs                     | 849 ++++++++++++++++++++
 15 files changed, 1953 insertions(+), 4 deletions(-)
 create mode 100644 drivers/vfio/pci/nvidia-vgpu/Kconfig
 create mode 100644 drivers/vfio/pci/nvidia-vgpu/Makefile
 create mode 100644 drivers/vfio/pci/nvidia-vgpu/nvidia_vgpu.rs
 create mode 100644 rust/kernel/vfio.rs
 create mode 100644 rust/kernel/vfio/pci.rs

base-commit: 07484ea6c8335226301113bc86e7c11b52312f51
-- 
2.43.7


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

end of thread, other threads:[~2026-10-23 20:07 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-23 15:39 [PATCH v2 00/12] Rust VFIO PCI support and NVIDIA vGPU driver Simon Song
2026-10-23 15:39 ` [PATCH v2 01/12] rust: pci: add VFIO override device IDs Simon Song
2026-10-23 20:07   ` Gary Guo
2026-10-23 15:39 ` [PATCH v2 02/12] rust: pci: expose the VF index within its PF Simon Song
2026-10-23 15:39 ` [PATCH v2 03/12] rust: pci: allow drivers to manage DMA ownership Simon Song
2026-10-23 15:39 ` [PATCH v2 04/12] rust: vfio: add PCI variant driver abstractions Simon Song
2026-10-23 15:40 ` [PATCH v2 05/12] rust: pci: add reset callbacks Simon Song
2026-10-23 15:40 ` [PATCH v2 06/12] rust: pci: add a bind callback after installing driver data Simon Song
2026-10-23 15:40 ` [PATCH v2 07/12] rust: pci: add an error_detected callback Simon Song
2026-10-23 15:40 ` [PATCH v2 08/12] rust: pci: add runtime PM callbacks Simon Song
2026-10-23 15:40 ` [PATCH v2 09/12] rust: vfio: use the PCI adapter for variant drivers Simon Song
2026-10-23 15:40 ` [PATCH v2 10/12] rust: vfio: separate common device handling from PCI Simon Song
2026-10-23 15:40 ` [PATCH v2 11/12] gpu: nova-core: publish typed SR-IOV PF APIs Simon Song
2026-10-23 15:40 ` [PATCH v2 12/12] vfio/nvidia-vgpu: add the Rust VFIO variant driver Simon Song

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®