Forgot your password?
typodupeerror
Linux

Alan Cox to NVIDIA: You Can't Use DMA-BUF 946

Posted by Unknown Lamer
from the gauntlet-has-been-thrown dept.
DMA-BUF is a recent kernel feature that allows multiple GPUs to quickly copy data into each others' framebuffers. A use case would be the NVIDIA Optimus that pairs a fast GPU with an Intel integrated GPU, where the NVIDIA GPU writes into the Intel framebuffer when it is active. But, NVIDIA won't be able to use this infrastructure because it's GPL. Alan Cox replied on LKML to a request from one of their engineers to mark the API non-GPL: "NAK. This needs at the very least the approval of all rights holders for the files concerned and all code exposed by this change. Also I'd note if you are trying to do this for the purpose of combining it with proprietary code then you are still in my view as a (and the view of many other) rights holder to the kernel likely to be in breach of the GPL requirements for a derivative work. You may consider that formal notification of my viewpoint. Your corporate legal team can explain to you why the fact you are now aware of my view is important to them." The rest of the thread is worth a read (a guy from RedHat agrees that this code is GPL and cannot become non-GPL without relicensing from a major subset of graphics system contributors). This has a ripple effect: it means that all of the ARM SoC GPU drivers can't use it either, and it may prevent any proprietary drivers for the proposed DRI version 3.
This discussion has been archived. No new comments can be posted.

Alan Cox to NVIDIA: You Can't Use DMA-BUF

Comments Filter:
  • Honest Question (Score:5, Interesting)

    by Anonymous Coward on Thursday October 11, 2012 @03:43PM (#41622369)

    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?

  • Hmmm... (Score:5, Interesting)

    by Ynot_82 (1023749) on Thursday October 11, 2012 @03:50PM (#41622457)

    Playing devil's Advocate here, as personally I agree with this (and don't let the proprietary nVidia driver anywhere near my system).
    But just for kicks, how does the recent case of Oracle trying (and failing) to claim copyright on the Java APIs affect this.

    If you cannot copyright an API, then you cannot apply a copyright license either.

    What if nVidia challenged this with exactly the same arguments that Google used with Dalvik.

  • by Anonymous Coward on Thursday October 11, 2012 @03:52PM (#41622497)

    If I were to write fanfic for Harry Potter, this is considered a derived work, even though Rowling has only copyright on a specific expression of an idea.

    Even though I may have written 80% or more of the words myself, my "Harry Potter and the Mixed Blood Prince" will never be allowed on sale.

    If you want to include your code running in the kernel, you are making a derived work of that kernel and this is not allowed except by license of the copyright owners. Even if your additions are your own work entirely, the combination you want to produce is not.

  • Re:Translation (Score:4, Interesting)

    by gstoddart (321705) on Thursday October 11, 2012 @03:54PM (#41622535) Homepage

    Translation: Go see your corp lawyers. FYI, you're about to get spanked.

    Slightly more neutral translation: now that you have been officially informed we will not be marking it as non-GPL, if you use it, you are in violation of copyright. And your having been told means you don't have a legal leg to stand on if you ignore this.

    Oh, and, FYI, you're about to be spanked. ;-)

  • by pipatron (966506) <pipatron@gmail.com> on Thursday October 11, 2012 @03:56PM (#41622565) Homepage
    So what, exactly, is linux to you? If you want a proprietary operating system with closed drivers, there are plenty. Bending over sideways for a paranoid corporation just to get high definition pornography in 3D on your notebook sounds like a real bad idea to me.
  • Re:And this is why (Score:4, Interesting)

    by smooth wombat (796938) on Thursday October 11, 2012 @04:00PM (#41622633) Homepage Journal

    If you want good 3d acceleration, then write the code yourself. Isn't that the Linux mantra, "You can always write your own code."?

    Wait, you're not a developer? You can't code? Awww, sucks to be you.

    Now you know how everyone else feels who tries to use Linux to get something to work and is told either to roll their own code or RTFM.

    If this is to become "The Year of the Linux!"*, the folks managing the packages need to make some hard decisions on how to proceed, otherwise this situation will keep coming up over and over.

    * From Cletus, the slack-jawed yokel. Similar to saying, using these here internets.

  • by Anonymous Coward on Thursday October 11, 2012 @04:18PM (#41622893)
    First off, use of someone's else characters in a new story is perfectly legal (e.g., see "Wind Done Gone"). You just do not have the money to fight them when they sue. Second off, writing my own code is not the same as uses someone else's characters in a story. The code is wholly 100% mine. Please read up on the copyright law before you run your mouth.
  • by crankyspice (63953) on Thursday October 11, 2012 @04:23PM (#41622959)

    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 clusterfuck in that respect, and it's never been considered by any authoritative (i.e., Federal Circuit level) court...

  • by Sycraft-fu (314770) on Thursday October 11, 2012 @04:23PM (#41622961)

    They have many licensed components in their code. So they have to remove all that and rework it, and do it in such a fashion as to not get sued by those companies (who might claim that the nVidia programmers couldn't work on the new code since they'd seen the licensed code). This isn't just some more minor features such as S3 texture compression, but OpenGL itself. Go look it up, OpenGL isn't a free "do whatever you like" setup. There is licensing for it for companies like nVidia.

    Even worse is that because the issue isn't just opening the source, but actually GPLing it, that makes it so much harder. Some of their licensed components are things the companies might be ok with source distribution. However nVidia doesn't have the right to relicense that code under the GPL. So even if they opened it, it wouldn't do any good as the GPL is what is required here.

    So the argument of "just open the driver" is somewhat unrealistic. It isn't just that nVidia likes to have a competitive edge, though they surely do, but that it would be a major issue and a lot more work to try and do so, if it were even possible.

    Again, take the OpenGL issue since it is a pretty fundamental one. nVidia licenses the code and has the latest OpenGL 4.3 implemented on cards that support it. Ok so let's say they decide to grab the Mesa code for an OSS branch. It's MIT license which is GPL compatible so good to go right? Well, not really. Mesa is OpenGL 3.1, 3 years out of date, and it only recently got that. So they can either deal without a bunch of features on all platforms, have two different drivers one full featured on Windows and such, one with less features, or they can invest a ton of work to try and make their own up to date OSS OpenGL implementation and hope they aren't sued.

    None of those sound like very good uses of resources.

  • Re:Translation (Score:4, Interesting)

    by ceoyoyo (59147) on Thursday October 11, 2012 @04:37PM (#41623185)

    Yeah, that's more like it. These guys are probably nVidia employees who like Linux and probably had something to do with convincing their bosses to let them work on Linux drivers. They asked Cox if something could be done about the licensing of a little part of the kernel so the drivers they write could use a new feature. Cox told them to F off.

    I really doubt nVidia cares. The only ones disappointed are these driver coders and anybody who wants to use multiple GPUs on Linux.

  • by ledow (319597) on Thursday October 11, 2012 @04:41PM (#41623237) Homepage

    I predict that would work about as well as denying Linux use of BitKeeper.

    All it would do is actually provide the incentive for someone to pump more work into nouveau rather than use something that "just works" but which has been taken away from them.

  • by IBitOBear (410965) on Thursday October 11, 2012 @04:47PM (#41623327) Homepage Journal

    Linux developers don't care, nor shoud they, about the decision of one company to play nice or not.

    Linux kernel developers have been letting Nvidia get away with the whole "binary blob" thing for a long time. Nvidia has taken no real steps to come into conformance with the GPL requirements. They keep getting a pass for their bad citizenship.

    Eventually bad actors (Nvidia) either have to shape up, or they need to ship out.

    At the moment Nvidia is freeloading on the linux kernel. They are putting themselves in there for free. Now they are asking to break even more rules, or more accurately, to have the rules changed in the name of their personal interests. Nvidia has fouled their own bed, but now they are whining that they don't want to have to lie in the filth of their own making. They are a full grown company. They know what they _ought_ to be doing. They want a pass to have things their own way regardless.

    Sometimes you have to tell a spoilt child that they don't get the lolly this time.

  • Re:And this is why (Score:5, Interesting)

    by oji-sama (1151023) on Thursday October 11, 2012 @04:49PM (#41623359)

    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.

  • Re:Face Reality: (Score:5, Interesting)

    by Svartalf (2997) on Thursday October 11, 2012 @05:36PM (#41624053) Homepage

    In truth, that statement was a LIE, and they knew it. If there was actual cards that I could've laid hands on back when the NV1 was out, there would've been a Utah-GLX driver because they made the programming interfaces for an NV1 publicly available at the time I was one of the Utah-GLX developers.

  • by ArsonSmith (13997) on Thursday October 11, 2012 @05:57PM (#41624305) Journal

    Desktop will soon be a niche that will mostly be Linux users that want it. The Year of the "Linux Desktop" will not be due to Linux's gains in popularity of that particular realm, but the reduction of desktop use by those not using Linux.

  • by MtHuurne (602934) on Thursday October 11, 2012 @06:04PM (#41624379) Homepage

    This did not stop Intel from releasing drivers, or AMD from releasing detailed technical documentation. And the Nouveau drivers already expose some of the functionality of NVIDIA's hardware. Also, both AMD and NVIDIA chips are being used in game consoles and those are programmed by sending command lists directly to the GPU, so console game developers have detailed technical descriptions of those GPUs; it's not like their programming interface is so secret that it never leaves NVIDIA HQ.

  • by Ignacio (1465) on Thursday October 11, 2012 @06:39PM (#41624773)

    We can never know.

  • by Anonymous Coward on Thursday October 11, 2012 @07:32PM (#41625255)

    Ah, I didn't know Intel wrote new drivers from scratch. Still, the fact that Intel can do it shows that NVIDIA could do it as well, if they would choose to do so.

    Dear /., this is an example of naivete and idealism: NVIDIA for one is nowhere near the size or capacity of Intel, in terms of development, ability to make, influence, dominate markets, set platforms... Secondly, who wants to bet who has more patents, strings and connections, and ways to leverage force in the event that all cards are laid bare? I will take Intel on that bet any day (and I have spoken to employees or close contacts of employees of NVIDIA, which I will not reveal, about various matters in regards items of concern relevant to these narratives and this story). Anyway, as far as the GPL is concerned, if it's version 2, then they probably wouldn't have to worry: leaving aside the bullshit rhetoric from the FSF which attempts to conceal the fact that it leaves a path wide enough for several mack trucks to drive through (as far as combining GPL code with non-GPL code), a lot of the rhetoric about "derivatives" is simply mis-use of that term and wishful re-thinking of what 'derivative" means: they COULD build inter-operable code and simply...not distribute the GPL code in question, and leave it to the user to download their driver, like, you know, they already do.

    Go NVIDIA, just do it: don't put their code directly into your system, and have your driver just replace the relevant portions like you...already do with X and other fundamental system components on Linux. Because, you know, it's always better to ignore the zealots, who are bad for business, and often as bad for the cause they advocate. Now everyone read THIS actually-intelligent comment, http://linux.slashdot.org/comments.pl?sid=3179477&cid=41624939 [slashdot.org]

  • by Blaskowicz (634489) on Friday October 12, 2012 @12:14AM (#41627075)

    Face it, the only reason for DMA-BUF at all is to use multiple GPUs, some better than others. It will typically be an Optimus laptop with Intel + Nvidia, or maybe AMD APU + AMD GPU. But without proprietary drivers the bigger GPU is entirely pointless! Say you have an Intel IGP plus a nvidia GPU, if you use nouveau on the nvidia GPU then you lose so much performance and battery life it's useless and you're better off disabling it and staying on Intel. Unless you like wasting your money for a minor improvment with terrible inefficiency.

    So, linux is really jumping the shark, I guess what's left is distros should switch to BSD just like debian/kFreebSD, starting with Mint. Unless this terrible situation is resolved.

  • by Anonymous Coward on Friday October 12, 2012 @01:11AM (#41627437)

    It requires crossing the user/kernel boundary multiple times, which is an expensive proposition.

    One of the reasons Apples drivers and Windows drivers tend to be faster than Linux drivers is they live in kernel space; in both cases, it's mostly so they have an API to push pages out when they've done a calculations which they end up not using.

    Copying to kernel space in the graphics pipeline, followed by copying back to user space to do the compositing, and the copying back down to kernel space to get it in the frame buffer so it can be displayed is a lot more expensive than it actually needs to be.

    Forcing the driver out into user space is the "punishment" that's exacted because they don't GPL their driver, which as other people have correctly noted, they really can't because of cross-licensing agreements, patent violations which are hidden in code and protected by EULA from reverse engineering to discover the violations, and licensing for things like H.264 and the rest of the Sorensen CODECs.

You scratch my tape, and I'll scratch yours.

Working...