Re: [RFC 06/29] nvkm/vgpu: set RMSetSriovMode when NVIDIA vGPU is enabled

Jason Gunthorpe
2024-10-15T12:23:44Z

On Mon, Oct 14, 2024 at 07:38:03AM +0000, Zhi Wang wrote:
> On 27/09/2024 1.53, Jason Gunthorpe wrote:
> > On Sun, Sep 22, 2024 at 05:49:28AM -0700, Zhi Wang wrote:
> >> The registry object "RMSetSriovMode" is required to be set when vGPU is
> >> enabled.
> >>
> >> Set "RMSetSriovMode" to 1 when nvkm is loading the GSP firmware and
> >> initialize the GSP registry objects, if vGPU is enabled.
> >
> > Also really weird, this sounds like what the PCI sriov enable is for.
> >
>
> As what has been explained in PATCH 4's reply, the concept of vGPU and
> VF are not identically equal. PCI SRIOV VF is the HW interface of
> reaching a vGPU and there were generations in which HW didn't have SRIOV
> VFs and a vGPU is reached via other means.
>
> The "RMSetSriovMode" here is not equal to PCI SRIOV enable, which
> activates the VFs and let them present on PCI bus. It is to tell the GSP
> FW to enable the mode of "vGPUs are reached by VFs".

Which is usless if you don't enable SRIOV, so again, this seems like
it should be dynamic and whatever activated this is doing should be
shifted to sriov enable time and not fw load time.

There is a fundamental issue in Linux with trying to configure drivers
statically when they are probed. We want to avoid that as much as
possible.

If it can't be properly dynamic then the driver needs to take its
configuration from device flash, or you need to build a whole system
to allow configuring and rebooting the device - this is pretty hard.

Jason