Nvidia linux drivers

http://linux.slashdot.org/story/12/10/11/1918251/alan-cox-to-nvidia-you-cant-use-dma-buf?sdsrc=popbyskid

As AC since I'm sure this will garner much hate, but this is honest speculation with the intent of stoking real discussion:

1. NVIDIA and Intel want to use a new whiz-bang feature in the Linux kernel to bring faster and more feature-rich graphics to Linux. This is a good thing, a very good thing. 2. The current licensing in the kernel makes that impossible unless NVIDIA open sources its IP. Whether this is good is questionable because: a. It means NVIDIA has to give up a competitive edge OR b. NVIDIA has to write code and implement hardware in a manner that specifically prevents them from having a competitive edge. 3. NVIDIA's only other option is massive duplication of effort and a fork of the Linux kernel. This is a questionable premise.

So, given that NVIDIA's choice is to give up a competitive edge or to intentionally implement its feature set in an obstructionist manner, how is the GPL "good" in this case?

3
Are you hating or just misinformed? NVIDIA ranks second in terms of total lines changed for the ARM kernel, and fourth in terms of number of changesets for all employers or organizations. That's sharing.

The only thing they don't share is their graphics drivers - which seems like a fair trade overall. nVidia has licensed patented code which they couldn't share even if they wanted to.

NVIDIA will likely just build their own DMA memcpy routine - because copying memory is SOOO unique.

Full disclosure: I develop (unrelated) proprietary kernel modules, I'm very familiar with the licensing, patent and copyright issues and we work within the GPL limits defined by the kernel team.

4
GPL licensors demand that others don't redistribute GPL code as their own. Proprietary licensors demand that others don't use their code at all without their express permission, full stop. Who's the fanatic here?

5
inux has a license (GPL) that states some requirements on what you can and can't do with it, this license is wrote that way so the code will remain free. This is an ideological ideal and not a business ideal, therefore they clash. It protects against companies like Microsoft doing 'Embrace, Extend, Extinguish". Evidently you like the idea of a world where a few patent holders control our computing technology. True freedom is also allowing the biggest, baddest, and meanest to set the law. True freedom is allowing business interests to take chunks of Linux wrap them up in binaries and keep them hidden away from everyone the community that built it. True freedom is a person busting in to a house with a gun, killing everybody, and taking what they want without any worry of law.

The GPL is preventing that corporate psychopath from taking what he wants with his power and instead establishes a level playing field.

It seems odd you want 'Linux' to become Microsoft to beat Microsoft, I don't see how anybody gains anything in the end.


 * The GPL is preventing that corporate psychopath from taking what he wants with his power and instead establishes a level playing field.

During this week I skipped using an open source component for a work project and started developing one of our own. If the project had been of supreme quality I might have created a wrapper which would have allowed us to use it in the (proprietary) project as it was GPLv2. If the component had been BSD or some other reasonable license (WTFPL is my favourite) I would have fixed the project and sent the creator the patches.

We do have plans for releasing at least some of our stuff as open source, but I don't think it will be GPL. Then again GPL would prevent some competitors from using it, but that isn't exactly my idea of free

6
Your argument is a bit off - this isn't about Nvidia wanting to use "Free software" in their "closed source programmes", it's about Nvidia wanting to use an advertised feature of the Linux kernel platform to enhance performance *on Linux*. Nvidia already have access to similar functionality on Windows and OSX (or will soon) - they won't be taking anything from Linux to Windows or OSX if they used the feature Linux advertises.

All this is doing is hurting ongoing performance on Linux, and people are trying to blame Nvidia because of it.

7
Okay, great, if the world was perfect you'd have a great day! Yay!

But, what if this change means that nVidia and all ARM graphics drivers come up with their own non-GPL kernel API, it would probably not be compatible with DMA-BUF, and that means that the graphics drivers in the Linux kernel - both open source and not - would pick and choose which buffer sharing mechanism they support/use, leaving the rest out in the cold. This situation just so happens to negate the ENTIRE purpose DMA-BUF was created for, namely, to act as a SINGLE way for ALL drivers to share and pass buffers around. So, instead of creating a BETTER situation where all graphics drivers are compatible with each other (even the proprietary ones), we have a crappy situation that we've continued to have since day one - proprietary and open source graphics driver not playing nice with each other.

It's even in your short term and long term best interests to get everybody to use DMA-BUF, because the faster that happens the easier it is to use Linux, the more people start to use Linux, and Linux users slowly start to become more and more relevant to driver manufacturers to the point that, like Mac users, they become a profitable segment of the computer using population (note that this is both for desktop users with nVidia cards, or short term uses, and all ARM drivers for embedded devices which are becoming more popular, or long term uses), and graphics developers start to support them as best they can (read: supporting open source driver development).

While this is happening - in other words, while the world is ruled by proprietary graphics drivers because the open source ones suck (as is currently the case, and although it's improving is likely to continue to be the case for at least another two years), you can have your Left 4 Dead 2 on Linux with the proprietary nVidia driver that it needs, you can have lower power usage on all Linux laptops because Intel and nVidia cards can share buffers and therefore change which card is actively processing depending on what is running, and you can actually have useful drivers for all embedded devices until open source graphics drivers are available (whenever that happens, as it is barely on the radar of developers at this point).

So, you (and Alan Cox) can be complete about this and hold the Linux desktop and Linux embedded devices with decent drivers back for years because nobody bothers to support such a tiny market with open source drivers, or you can allow proprietary graphics card manufacturers to keep their hold on graphics drivers for a few years and keep the vast majority of users happy because they have a device that works well enough (even though it doesn't have open source graphics drivers) UNTIL the community develops open source drivers themselves.

So, what's more important to you, possibly helping proprietary vendors temporarily and helping desktop and embedded users out tremendously for the next few years; or keeping your kernel untainted by proprietary crap, unhelpful to proprietary vendors, and keeping the kernel the same mess it has always been, and pissing off the vast majority of desktop and embedded users for years?

I would argue that Valve is only porting Steam and their games to Linux because the nVidia graphics drivers exist (because their games require OpenGL 4+, which isn't supported, and will not be support for years, by open source drivers). And yet, them porting their AAA title games is going to tremendously help Linux break out of its insignificant shell on the desktop - which will drive adoption, drive demand for Linux, and ultimately drive the demand for open source drivers anyway.

So, take a deep breath, calm down, and just accept the fact that allowing something to be temporarily imperfect in your world is a good trade off to make to have a much better world a few years from now.

Furthermore, DRI3 (the userspace API) will become dependent on DMA-BUF once it is developed, which means that DMA-BUF will become a usersp

8
If it leads to vendor GPU drivers being developed in the open then I'm in!

Why were you upset again?

Because everyone was arguing that APIs are not copyrightable in the Oracle vs. Google case but somehow you think that they should be GPL? GPL is built on copyright law which means that you are saying that Oracle was right and that an API can be copyright protected.

Don't be a hypocrite. You either believe that APIs are copyrightable which means that Google should pay Oracle or you don't. If you don't then you cannot say that they are protected by GPL.

api is gpl on linux
hat's not what's happening at all. The basic fact is: the Linux kernel sources are GPL licensed. This was an early decision by Linus, and no amount of wishing will change that. There are just to many contributors that would have to approve a re-license.

Now, the GPL is very clear regarding derived work: if you distribute such a work, it needs to have a GPL-compatible license and provide sources.

What constitutes a derived work for a kernel? Basically, calling any code from the kernel would create a derived work, so the Linux license contains exemptions for user space code that calls the kernel through the public interface. However, in this case the nVidia driver would call an internal kernel function, that is not exempted, so this would create a GPL derived work. The function is so low level that it would create an intimate bond between the Linux kernel and the nVidia binary driver.

Even if the Linux maintainers would allow this, anyone that wrote any part of Linux could start a court case against nVidia for breach of license. Would that be a better outcome?

Derived work not defined
derived works definition for software.

Which is what, exactly? I'm a copyright attorney who has studied computer science at the post-graduate level (and am a Tau Beta Pi member), and I still can't give you a coherent, comprehensive definition for 'derived work' in software that's applicable throughout the whole of the United States, let alone internationally. The GPL is a logical incoherence in that respect, and it's never been considered by any authoritative (i.e., Federal Circuit level) court...

gpl as quasi-freedom
Okay, so it's not freedom then. It's quasi-freedom. But at least no one has the freedom to take my quasi-freedom away. If they want in then they have to add to the pool of quasi-freedom instead of taking anything away.

links
LinuxNotes