Linux 6.6 To Better Protect Against The Illicit Behavior Of NVIDIA's Proprietary Driver
phoronix.com
Luis Chamberlain sent out the modules changes today for the Linux 6.6 merge window. Most notable with the modules update is a change that better builds up the defenses against NVIDIA's proprietary kernel driver from using GPL-only symbols. Or in other words, bits that only true open-source drivers should be utilizing and not proprietary kernel drivers like NVIDIA's default Linux driver in respecting the original kernel code author's intent.
Back in 2020 when the original defense was added, NVIDIA recommended avoiding the Linux 5.9 for the time being. They ended up having a supported driver several weeks later. It will be interesting to see this time how long Linux 6.6+ thwarts their kernel driver.
You are viewing a single comment
I get why the Linux folks are doing this, but I don't expect that it will make them popular with anyone who actually uses Nvidia drivers on Linux (which is a lot of people). I'm sure that my employer will choose up-to-date Nvidia drivers over up-to-date versions of the kernel, at least in the short term. In the long term it probably won't be an issue since Nvidia will figure something out, but if it did become an issue then ultimately Nvidia driver support is non-negotiable for the company where I work.
(No one cares what a small tech company does, but the big guys need Nvidia too so it should be possible to piggyback on whatever they do.)
The group to be annoyed at are Nvidia. Plain and simple.
For most people, principle takes a backseat to pragmatics. If your livelihood is training ML models on thousands of nVidia cards or whatever, you care less about who to be mad at and more about not laying off your staff and shutting the doors. You can't replace nVidia. You can replace the latest kernel.
If your livelihood depends on a company breaking the law, you've got other issues.
Nvidia could choose to follow the law, their customers could choose to support them in that.
Part of the reason you can't replace Nvidia, is because they get ahead by breaking the law. This makes it harder to compete with them.
Now you're stuck with only Nvidia, and welcome to monopoly hell. A bit exaggerated I know, but it's his it happens.
That's a pretty naive view of the world. If I buy 50,000 Android devices to support my company's field sales operation, I'm not going to collect them all and put them in a trash compactor just because Oracle decides to pick a copyright fight with Google. If you work for any large-ish company, your employer is probably engaged in dozens of active lawsuits right now. That's just how the world works.
And that's kind of the discussion here.
Some people are annoyed at the Linux Devs because "fuck it, everyone breaks the law and it doesn't matter". Some people are annoyed at Nvidia because they'd like to uphold or social contracts.
In don't think it's naive to want to live in a world and support a society that supports the law. I do think we have bigger issues that people are happy with this behaviour and are actively defending it.
I’m not saying you shouldn’t want companies to obey the laws. I’m specifically responding to the idea of "if your business relies on companies breaking the law, you have bigger problems". The idea that you’ll dramatically tear apart and rebuild your supply chain literally every week as one company or another is sued for something that doesn’t concern you is what’s naive. Even just looking at patents, every company that writes software is a time bomb, because there are hundreds of thousands of bullshit patents that cover extremely broad and obvious ideas. This can’t be your problem, or you’ll never actually get around to doing the thing your company does.
From my closed-source corporate perspective, Nvidia is trying to improve performance and the Linux kernel maintainers are trying to stop them. I don't see why I would be annoyed at Nvidia in these circumstances.
From a legal perspective, nvidia has been illegally bypassing a software license by exploiting a loophole. Linux devs fixed the loophole.
I don't see why I would be annoyed at Linux devs in these circumstances.
Because they're breaking the law while taking advantage of open source software.
Via breaking the law. Which in a reasonable system would push people away from participating
I did say that I get why the Linux folks are doing this. The problem is that Nvidia drivers that obey these restrictions and as a result have significantly worse performance than Nvidia drivers on other operating systems aren't the solution either. Anyone who does serious GPU computing will still have to switch away from Linux.
(IMO Nvidia would be insane to open-source their drivers. Like sue-corporate-officers-for-breach-of-duty level insane. So they can't do more than what they're already doing: coming up with workarounds.)
AMD's doing pretty well with their open source drivers, I suppose its up to nvidia if they want to offer a worse product simply so they can keep as much profits as possible.
But leveraging other peoples work via open source code, to improve their product - then still not donating nor contributing back to the source? Not only illegal but scummy as hell.
We may not be as offended as the kernel devs, but theyre the ones whos work is being stolen, so I wouldn't be so quick to tell them what to do
I wouldn't say AMD is doing pretty well - it isn't a serious competitor to Nvidia in the GPU computing market.
No idea why you’re getting downvoted. Outside of the increasingly small desktop gpu market AMD is completely irrelevant in professional GPU use. They’re not even remotely close to being a competitor
I mean theyre both extending to the portable desktop a la steam deck and investing in mobile GPUs... And with a massive monopoly against then, I'd say theyre doing pretty good - so much so Intel is inspired to do similar with their arc gpus
Would they though? They sell their hardware, not their drivers, or am I misunderstanding something about Nvidia?
Is it possible that by revealing their drivers they would also reveal something about their industry designs?
I mean, just building the hardware and letting the community do all the work on drivers for free would be better, if they don't do it there must be a valid reason I think.
I mean, they make money of selling the hardware from what I understand. Maybe I'm misunderstanding, and that's the problem. Maybe they make money off the driver's too.
Their drivers were already leaked, any secrets they were trying to hide are out in the wild, so that point is moot.
Of course I can't know for sure because the driver is closed-source, but I'd bet that a lot of what makes Nvidia hardware work fast is actually in the driver rather than the hardware itself. Plus, a proprietary driver lets them lock people in to buying their hardware. The company where I work doesn't use Nvidia software because it buys Nvidia GPUs. It buys Nvidia GPUs because it uses Nvidia software.
I don't believe that even for a second. Software doesn't make hardware run faster. It can certainly slow it down. But it doesn't make it run better.
Of course software can't exceed the physical limits of the hardware but reaching the physical limits of the hardware is non-trivial, especially for hardware as complex as a modern GPU.
Not really that difficult to use 100% of GPU resources. I'm developing a game right now. It's not well optimized and uses 100% of GPU resources depending on what I'm doing in the game.
Reaching 100% utilization is simple and entirely under the control of the user. Optimized drivers are for giving that user more computation at 100% utilization.
Oh yes sure, the software make nvidia gpu better, something that probably most of the hundred if not thousand of contributor to the mesa driver and in the list we have amd, intel, collabora, redhat, nouveau, google, valve and many others didn't see, they were the only one in the entire silicon valley to find this secret sauce to make gpus better with software.
Yes? I'm not saying Mesa as a whole is bad, but Mesa+Nouveau for Nvidia cards is terrible.
(It doesn't help that Nvidia isn't exactly cooperative when it comes to supporting open-source developers, but my point that driver development is non-trivial stands.)
Mesa+Nouveau is bad only thanks to nvidia and their signature lock implemented since the 900 series, as even stated by me before:
You've convinced me. I still think that secret optimizations are a possibility, but I must concede that there might very well be this sort of lock-in bullshit and nothing else.
You can always make your own kernel and enforce whatever stupid laws you want on it then.
Nvidia is undermining patent law. That should be an issue that big corpos can understand.
From a corporate perspective you should be VERY worried about this, GPL is infectious, so if NVIDIA drivers are using GPL only parts of the kernel they become GPL, and because NVIDIA doesn't offer GPL only endpoint the license applies to everything, meaning that if your company is using the NVIDIA driver in any way shape or form anything you produce becomes GPL as well. NVIDIA has enough lawyers to delay the enforcing of this, which is why they'll never get sued, does YOUR company has enough lawyers to keep FSF at bay? If not you should be very annoyed at NVIDIA for not providing a license term for their GPL driver (and legally their driver IS GPL if it uses those endpoints).
And here's the thing, for a home user not updating the kernel is good enough, for a company it's not because this is a bug fix, not new implementation, NVIDIA is already in breach of license.
Nvidia could choose to improve performance using non-illegal tactics.
They haven't.
I'm happy to live in a society wherev we support those upholding the law.
I think end users wouldn't care either, they probably wouldn't even understand what's actually happening, they'll only notice performance degrading (if this is the case) and blame Linux for it.
That's not to say this shouldn't be done, I just wish there was better control on license violations and those doing it on purpose, like Nvidia in this case, would be seriously punished to make them think twice next time.
I use Nvidia drivers on Linux and fully support it. You know what else is non-negotiable? Linux support for Nvidia. Huge chunk of their money comes from people using their GPUs on Linux for machine learning. And while they can use older kernels for now (because they're still supported), they won't be able to forever. And corporates will want a supported OS with their Nvidia card.
It might even happen that the change gets back ported upstream; that would mean that every supported kernel has the changes in place, regardless of version.
It might, though I don't really see it happening with this change.