Alexandre Courbot
2025-Oct-01 00:26 UTC
[PATCH 0/2] rust: pci: expose is_virtfn() and reject VFs in nova-core
On Wed Oct 1, 2025 at 7:07 AM JST, John Hubbard wrote:> Post-Kangrejos, the approach for NovaCore + VFIO has changed a bit: the > idea now is that VFIO drivers, for NVIDIA GPUs that are supported by > NovaCore, should bind directly to the GPU's VFs. (An earlier idea was to > let NovaCore bind to the VFs, and then have NovaCore call into the upper > (VFIO) module via Aux Bus, but this turns out to be awkward and is no > longer in favor.) So, in order to support that: > > Nova-core must only bind to Physical Functions (PFs) and regular PCI > devices, not to Virtual Functions (VFs) created through SR-IOV.Naive question: will guests also see the passed-through VF as a VF? If so, wouldn't this change also prevents guests from using Nova?
John Hubbard
2025-Oct-01 01:26 UTC
[PATCH 0/2] rust: pci: expose is_virtfn() and reject VFs in nova-core
On 9/30/25 5:26 PM, Alexandre Courbot wrote:> On Wed Oct 1, 2025 at 7:07 AM JST, John Hubbard wrote: >> Post-Kangrejos, the approach for NovaCore + VFIO has changed a bit: the >> idea now is that VFIO drivers, for NVIDIA GPUs that are supported by >> NovaCore, should bind directly to the GPU's VFs. (An earlier idea was to >> let NovaCore bind to the VFs, and then have NovaCore call into the upper >> (VFIO) module via Aux Bus, but this turns out to be awkward and is no >> longer in favor.) So, in order to support that: >> >> Nova-core must only bind to Physical Functions (PFs) and regular PCI >> devices, not to Virtual Functions (VFs) created through SR-IOV. > > Naive question: will guests also see the passed-through VF as a VF? If > so, wouldn't this change also prevents guests from using Nova?I'm also new to this area. I would expect that guests *must* see these as PFs, otherwise...nothing makes any sense. Maybe Alex Williamson or Jason Gunthorpe (+CC) can chime in. thanks, -- John Hubbard
Zhi Wang
2025-Oct-02 07:41 UTC
[PATCH 0/2] rust: pci: expose is_virtfn() and reject VFs in nova-core
On 1.10.2025 3.26, Alexandre Courbot wrote:> On Wed Oct 1, 2025 at 7:07 AM JST, John Hubbard wrote: >> Post-Kangrejos, the approach for NovaCore + VFIO has changed a bit: the >> idea now is that VFIO drivers, for NVIDIA GPUs that are supported by >> NovaCore, should bind directly to the GPU's VFs. (An earlier idea was to >> let NovaCore bind to the VFs, and then have NovaCore call into the upper >> (VFIO) module via Aux Bus, but this turns out to be awkward and is no >> longer in favor.) So, in order to support that: >> >> Nova-core must only bind to Physical Functions (PFs) and regular PCI >> devices, not to Virtual Functions (VFs) created through SR-IOV. > > Naive question: will guests also see the passed-through VF as a VF? If > so, wouldn't this change also prevents guests from using Nova?In the entire software stack (firmware and interface, host/guest driver,and management stack), the entire design assumes that a VF is tied to a VM. NVIDIA GPU already provides good enough mechanisms to enforce those between containers on PF. Moreover, VF on baremetal is not the only way to support *container* environments. Surely, there are also other approaches, for example, PF driver with DRM cgroup. Like what I mentioned, it is really device/use-case specific. The device vendor chooses the best approaches based on their device characteristic and schedule/resource isolation capabilities for supporting containers on bare metal. Z.