Re: [RFC 00/29] Introduce NVIDIA GPU Virtualization (vGPU) Support

Danilo Krummrich
2024-09-26T22:24:07Z

On Thu, Sep 26, 2024 at 11:07:56AM -0700, Andy Ritger wrote:
>
> I hope and expect the nova and vgpu_mgr efforts to ultimately converge.
>
> First, for the fw ABI debacle: yes, it is unfortunate that we still don't
> have a stable ABI from GSP. We /are/ working on it, though there isn't
> anything to show, yet. FWIW, I expect the end result will be a much
> simpler interface than what is there today, and a stable interface that
> NVIDIA can guarantee.
>
> But, for now, we have a timing problem like Jason described:
>
> - We have customers eager for upstream vfio support in the near term,
> and that seems like something NVIDIA can develop/contribute/maintain in
> the near term, as an incremental step forward.
>
> - Nova is still early in its development, relative to nouveau/nvkm.
>
> - From NVIDIA's perspective, we're nervous about the backportability of
> rust-based components to enterprise kernels in the near term.
>
> - The stable GSP ABI is not going to be ready in the near term.
>
>
> I agree with what Dave said in one of the forks of this thread, in the context of
> NV2080_CTRL_VGPU_MGR_INTERNAL_BOOTLOAD_GSP_VGPU_PLUGIN_TASK_PARAMS:
>
> > The GSP firmware interfaces are not guaranteed stable. Exposing these
> > interfaces outside the nvkm core is unacceptable, as otherwise we
> > would have to adapt the whole kernel depending on the loaded firmware.
> >
> > You cannot use any nvidia sdk headers, these all have to be abstracted
> > behind things that have no bearing on the API.
>
> Agreed. Though not infinitely scalable, and not
> as clean as in rust, it seems possible to abstract
> NV2080_CTRL_VGPU_MGR_INTERNAL_BOOTLOAD_GSP_VGPU_PLUGIN_TASK_PARAMS behind
> a C-implemented abstraction layer in nvkm, at least for the short term.
>
> Is there a potential compromise where vgpu_mgr starts its life with a
> dependency on nvkm, and as things mature we migrate it to instead depend
> on nova?
>

Of course, I've always said that it's perfectly fine to go with Nouveau as long
as Nova is not ready yet.

But, and that's very central, the condition must be that we agree on the long
term goal and agree on working towards this goal *together*.

Having two competing upstream strategies is not acceptable.

The baseline for the long term goal that we have set so far is Nova. And this
must also be the baseline for a discussion.

Raising concerns about that is perfectly valid, we can discuss them and look for
solutions.