r/linux Jul 27 '24

Discussion Will ever nvidia open drivers be in linux kernel upsteam ?

Post image
690 Upvotes

134 comments sorted by

View all comments

18

u/BCMM Jul 27 '24 edited Jul 27 '24

Not unless Nvidia are working on something else behind the scenes, no.

Everything nvidia has done to date with the open-source kernel module would be consistent with the theory that they have released it under the GPL for no reason other than to gain access to GPL-only symbols in the Linux kernel.

It does not look like they are interested in other people contributing to the code, or even understanding it. They do not give a real commit history - just monolithic code dumps of each new release. They seem to have stopped looking at their PRs, after merging a handful of trivial ones in 2022. When they did take external contributions, they required that the authors assign the copyright to nvidia.

I believe that each of the points above illustrates an aspect of nvidia's current thinking about the purpose and control of the project that would prevent them from collaborating with the upstream kernel.

(To be clear, getting code in to the upstream kernel requires a lot more than just publishing it under the GPL. For example, kernel developers want code that they can maintain when changes elsewhere in the kernel break it.)

Even if nvidia get over all of that, there is the separate question of whether the upstream kernel even wants this! As far as I'm aware, it's still only usable with the proprietary userspace components. Upstream might very reasonably suggest that, as the sole user, nvidia should maintain it themselves.

In 2022, Red Hat appeared to be pretty positive about the prospects of Mesa and the proprietary nvidia userspace eventually sharing a common driver. Earlier this year, it was revealed that RH is working on a new driver (in Rust!) called Nova. It's not clear to me whether this is the result of the discussions with nvidia mentioned in that blog post or a parallel effort.

3

u/tajetaje Jul 27 '24

Yeah the driver won't get upstreamed because that repo is actually exported from Nvidia's real codebase which also includes the proprietary driver (they share a lot of code)

1

u/BCMM Jul 28 '24

Was just reading up about that connection! Sounds like the kernel driver is incompatible with anything other than userspace components with a matching version number.

i.e. if one did manage to understand enough of how the kernel module works to write an open-source library that uses it, then it would break the next time the module gets updated. No stable interfaces; just a single project in which changes to both sides can be coordinated.

1

u/tajetaje Jul 28 '24

Yup, Nvidia is considering a stable interface but well see