From: Simon Song <xinmengs@nvidia.com>
To: <dakr@kernel.org>, <acourbot@nvidia.com>, <kvm@vger.kernel.org>,
<rust-for-linux@vger.kernel.org>, <nova-gpu@lists.linux.dev>,
<linux-pci@vger.kernel.org>
Cc: <alex@shazbot.org>, <jgg@nvidia.com>, <yishaih@nvidia.com>,
<skolothumtho@nvidia.com>, <kevin.tian@intel.com>,
<airlied@gmail.com>, <simona@ffwll.ch>, <ojeda@kernel.org>,
<alex.gaynor@gmail.com>, <boqun.feng@gmail.com>,
<gary@garyguo.net>, <bjorn3_gh@protonmail.com>,
<lossin@kernel.org>, <a.hindborg@kernel.org>,
<aliceryhl@google.com>, <tmgross@umich.edu>,
<jhubbard@nvidia.com>, <ecourtney@nvidia.com>, <cjia@nvidia.com>,
<smitra@nvidia.com>, <kjaju@nvidia.com>, <alkumar@nvidia.com>,
<ankita@nvidia.com>, <aniketa@nvidia.com>, <kwankhede@nvidia.com>,
<targupta@nvidia.com>, <linux-kernel@vger.kernel.org>,
<zhiwang@kernel.org>, <zhiw@nvidia.com>, <boqun@kernel.org>,
<daniel.almeida@collabora.com>, <tamird@kernel.org>,
<work@onurozkan.dev>, <jgg@ziepe.ca>, <bhelgaas@google.com>,
<kwilczynski@kernel.org>, <dri-devel@lists.freedesktop.org>,
<peter@colberg.org>, <xinmengs@nvidia.com>
Subject: [PATCH v2 00/12] Rust VFIO PCI support and NVIDIA vGPU driver
Date: Fri, 23 Oct 2026 08:39:55 -0700 [thread overview]
Message-ID: <20261023154009.2246627-1-xinmengs@nvidia.com> (raw)
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
next reply other threads:[~2026-10-23 15:41 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-23 15:39 Simon Song [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261023154009.2246627-1-xinmengs@nvidia.com \
--to=xinmengs@nvidia.com \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=airlied@gmail.com \
--cc=alex.gaynor@gmail.com \
--cc=alex@shazbot.org \
--cc=aliceryhl@google.com \
--cc=alkumar@nvidia.com \
--cc=aniketa@nvidia.com \
--cc=ankita@nvidia.com \
--cc=bhelgaas@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=boqun@kernel.org \
--cc=cjia@nvidia.com \
--cc=dakr@kernel.org \
--cc=daniel.almeida@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=ecourtney@nvidia.com \
--cc=gary@garyguo.net \
--cc=jgg@nvidia.com \
--cc=jgg@ziepe.ca \
--cc=jhubbard@nvidia.com \
--cc=kevin.tian@intel.com \
--cc=kjaju@nvidia.com \
--cc=kvm@vger.kernel.org \
--cc=kwankhede@nvidia.com \
--cc=kwilczynski@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=nova-gpu@lists.linux.dev \
--cc=ojeda@kernel.org \
--cc=peter@colberg.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=simona@ffwll.ch \
--cc=skolothumtho@nvidia.com \
--cc=smitra@nvidia.com \
--cc=tamird@kernel.org \
--cc=targupta@nvidia.com \
--cc=tmgross@umich.edu \
--cc=work@onurozkan.dev \
--cc=yishaih@nvidia.com \
--cc=zhiw@nvidia.com \
--cc=zhiwang@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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®