Forgot your password?
typodupeerror
Graphics Open Source Linux Hardware

Nvidia Engineer Asks How the Company Can Improve Linux Support 581

Posted by timothy
from the increase-its-sleep-number dept.
sfcrazy writes "It seems that recent comments made by Linus Torvalds have made the people at NVIDIA take Linux more seriously. Recently Nvidia employee Stephen Warren asked in the Kernel Summit mailing list what could be done differently to make Linux support better. 'In a Google+ comment, Linus noted that we have mainly been contributing patches for Tegra SoC infra-structure details. I'm curious what other areas people might expect me/NVIDIA to contribute to. I assume the issue is mainly the lack of open support for the graphics-related parts of our HW, but perhaps there's some expectation that we'd also start helping out some core area of the kernel too? Would that kind of thing help our image even if we didn't open up our HW?'"
This discussion has been archived. No new comments can be posted.

Nvidia Engineer Asks How the Company Can Improve Linux Support

Comments Filter:
  • by hackus (159037) on Saturday June 23, 2012 @11:30PM (#40425939) Homepage

    Eventually given how global markets expand and change, Nvidia will have to change its policies.

    After all, they sell a GPU.

    Consider how silly it is not to publish register information so you can write software for it. It is silly. Especially if Intel did the same thing with its chipsets because AMD might get some information on how a instruction works and try and copy it therefore making assembly language illegal and silly IP laws.

    Eventually this policy is going to cost Nvidia in the pocket book, and they will either come around or sink into nothingness.

    The exact same direction Apple is going to be heading to very shortly.

    -Hack

  • by Anonymous Coward on Saturday June 23, 2012 @11:39PM (#40426017)

    Isn't the solution "curated APIs". They approve and distribute what developers make for custom and legacy hardware and software. Apple could learn from this too.

    JJ

  • Easy (Score:5, Interesting)

    by lennier1 (264730) on Saturday June 23, 2012 @11:41PM (#40426029)

    Firstly, deal with the goddamn shitfucking Optimus hardware that's out there!!!!!!

  • by ArcRiley (737114) <arcriley@ubuntu.com> on Sunday June 24, 2012 @12:00AM (#40426133)

    Very happy with my Radeon chipsets, don't have to worry about kernel version incompatibility or graphics lockups from some bug we can't even begin to fix. I've had both problems with nVidia hardware.

    No PR move from nVidia is going to change my mind beside opening the specs.

  • by Narcocide (102829) on Sunday June 24, 2012 @12:01AM (#40426145) Homepage

    Frankly the GPU support issues are going to be the big key issue no matter what. Whether you think its wrong/stupid/immoral/wasteful/anti-american or whatever to use Linux as a gaming platform or for any other sort of performance-critical real-time 3d rendering *some* Linux users will still disagree with you and do it anyway. Whether flaws in your business plan and/or shady under-the-table anti-competitive agreements made years ago with certain big software vendors preclude you from giving Linux full support or if its really some legitimate logistics problem *some* Linux users will still disbelieve the excuses and not forgive you for it. Some of those Linux users still consider themselves your paying customers. You will never truly live this down, but don't worry; judging by the word on the street these days neither will any of your competitors.

    However, if you want to set up a smokescreen that hides the fact that *someone* in the higher end of Nvidia's chain of command is openly prejudiced against open source software (or just made a shit ton of cash on Microsoft stock perhaps and refuses to believe therefore that Linux is anything other than a waste of the company's time) you could at least consider making an attempt at distro-native packages for your driver that show evidence that you are capable of and willing to put at least half as much effort into working within the rules and parameters of various distro's packaging systems and with their tools properly as you've already put into that big self-extracting NVIDIA-Linux-x86-whatever.run bash script monstrosity to make it capable of the far more arduous task of cleaning up after itself enough to get a working GLX after it has fully subverted and broken said packaging system by using very crude non-native tools and methods that are not dependency-aware.

  • by Anonymous Coward on Sunday June 24, 2012 @12:14AM (#40426207)

    Here are the initial steps that can be taken:

    1. Document the hardware. Releasing full specs would go a long way. Intel just released thousands of pages for its new stuff.
    2. Have your engineers work on the nouveau project to support all of your cards in 2D.
    3. Make nouveau your official linux driver for all 2D stuff. Initially this would be hard, but this is a case of if you bite the bullet, you will see rewards both short and long term.
    4. We understand that the 3D stuff is where things are exciting. Move all of the 3D stuff to being a closed module of nouveau, or even to userspace.
    5. Work with the virtualization people. You can do it, we know you can.
    6. Work towards being able to open all of your cards. Can you work with people to set release dates for older cards? How about the ones you don't really support anymore?
    7. Keep talking to the community. It does help.
    8. Contribute to an open hardware project. Perhaps by agreeing to manufacture an open video board?

  • by ozmanjusri (601766) <aussie_bob@NospAm.hotmail.com> on Sunday June 24, 2012 @12:35AM (#40426317) Journal

    They could have been a brilliant contributer, if they wanted to, but they don't.

    Not to diminish Linus's effort, but there is a backstory to his frustration, and nVidia have been given other incentives to become a better contributor.

    NVIDIA was approached by one of the leading Chinese CPU teams to use an NV GPU in a pilot school PC project. Linux would run on the Chinese CPU, while GeForce GPU would provide the graphics power. 'Pilot project' in this case means over 10 million PCs in one order, broken down - 100,000 schools with 100-150 PCs each.

    To cut the story short, the NV team appeared there, and in very arrogant manner told the Chinese side that they are a large US corporation, and that recompiling the Linux drivers would cost the Chinese a lot of money.

    http://www.brightsideofnews.com/news/2012/6/21/china-nvidia-loses-face-and-a-10-million-pc-order-over-linux-drivers-and-nres.aspx [brightsideofnews.com]

    They lost the relationship with the Chinese team, who have since approached AMD. The pilot project was worth an initial 250-350 million dollars, with the potential of much more to follow.

  • by jvillain (546827) on Sunday June 24, 2012 @02:10AM (#40426765)
    Telling them that it will be OK to slide on the documentation for the video drivers just as long as they do X, Y & Z would be a real disservice to them. The blob just isn't an option any more. Telling people which versions of Linux they can use the video cards with is equivalent to telling Windows users they all have to use Vista if they want to use NVidia hardware. For me right now all of their cards are the equivalent of a 10 year old 2D Cirrus card but with a stupid high price tag attached to it. Get it straight. Every thing takes a back seat to opening up the documentation for the video drivers. My money stays with AMD until they yank their heads out of their ....
  • by jvillain (546827) on Sunday June 24, 2012 @02:17AM (#40426813)
    BTW we aren't asking them to open up the HW. We are asking them to document the interfaces to the hardware. Just like the PCI interface they use has been documented and like the entire PC spec they have been leeching off of and almost every thing else in the world of computing has opened up. This attitude just isn't acceptable any more. Period. Even Microsoft is starting to wake up to that fact.
  • by Phroggy (441) <slashdot3.phroggy@com> on Sunday June 24, 2012 @02:55AM (#40427007) Homepage

    nVidia is violating somebody's patents. I don't know which ones. They don't know which ones. It's really not possible for them to know which patents they're violating, and it could be that they're actually not violating anything, but it's probably a safe bet that they are. That's how broken our patent system is.

    The flip side of this is, whoever holds those patents that nVidia is violating also doesn't know that nVidia is violating their patents. However, if nVidia were to release the specifications and source code that we all want them to, it might become easier for somebody to recognize that nVidia has unknowingly violated their patent, at which point nVidia might be very screwed. Or maybe not, who the hell knows? In any case, a series of patent infringement lawsuits could be very very bad, and could potentially destroy the company. The only defense nVidia has against this is 1) building up a patent warchest of their own, so that if somebody sues them, nVidia can look for patents they own that the other company is violating and work out a trade, and 2) shrouding their hardware in mystery, so nobody knows how it works and therefore nobody can figure out if it's infringing on someone's patent or not. Note that #1 is not possible against a patent troll that doesn't actually produce anything, so #2 is really all they've got.

  • Well, they lost me. (Score:5, Interesting)

    by lattyware (934246) <gareth@lattyware.co.uk> on Sunday June 24, 2012 @02:59AM (#40427035) Homepage Journal

    It's funny, when I used to buy graphics cards, I bought nVidia because the driver was that much better - TwinView meant good multi-monitor support, etc... Now all that has changed. I replaced two nVidia cards with an AMD card, because AMD support their Eyefinity tech even on low-end cards, and my triple monitor setup works perfectly with 3D acceleration on the open drivers, which means I get KMS and no binary blobs. By comparison, I had to use xinerama to get triple monitors with the nVidia driver, no KMS, no 3D acceleration.

    It's obvious what we want, open source drivers. If they can't handle that, documentation, but we all know they'll spout the same stuff about NDAs and 3rd party stuff they are licensing and can't reveal, and tell us binary blobs are the only way - well, I don't buy it. Intel manage it well, and AMD are definitely getting there. Binary blobs just don't give the experience any more, that's the reality.

  • Re:Of course (Score:5, Interesting)

    by fuzzyfuzzyfungus (1223518) on Sunday June 24, 2012 @03:30AM (#40427157) Journal
    AC may be referring to the firmware blobs without which newer AMD chips are good for little more than spartan 2d... That said, you really end up picking your poison with firmware. Some vendors include enough flash to store the blob, some demand that the kernel hand them the blob. There are exceptional cases, where the firmware is OSS, or where the vendor is a real asshole and forbids the blob to be distributed(for no obvious reason, since somebody always whips up a script that grabs the windows driver from the vendor site and gouges the firmware out of that.) In this unfortunate vein, it is probably worth noting that Intel is better about not making the firmware stuff visible, but AMD has historically been overwhelmingly nicer about coreboot vs. BIOS.
  • by miknix (1047580) on Sunday June 24, 2012 @03:34AM (#40427169) Homepage

    I can give them some ideas:

    What about starting to properly support XRandR and stop the TwinView crap?
    What about continuing giving minimal support to old GPUs? My parent's computer has a GeForce FX Go 5300 which has currently no official driver that supports the latest Xorg. Unfortunately nouveau is not working very well with this graphic card either, being the 2D support buggy.
    What about supporting KMS in their drivers?

    Not going to happen, that's why my next computers will have Intel GPUs.

  • by philip.paradis (2580427) on Sunday June 24, 2012 @03:56AM (#40427253)

    This is utterly wrong. It's telling that you posted as an AC, and I'm assuming that's because you're not a developer involved in any open source work on this issue, and you don't have the first clue about how these things actually work.

    However, you do sound like a user with an incredibly exaggerated sense of entitlement, or perhaps a college freshman with wild-eyed ideas that every line of code on the planet should be forcibly "freed." If the code for something hasn't already been written, I presume you're of the view that companies should be forced to pay developers to write it, and of course they should be sure to call you every day for your personal stamp of approval on the last 24 hours of coding. Naturally, the resulting code, which you didn't pay for and didn't write a single line of, must be licensed in precise accordance with your personal opinions on freedom, right?

    Let me be absolutely clear on this: the core developers in the open source community working on this stuff want the specs. Just like anything and everything else that open source code was been written for, even back before the term "open source" was even in common usage, precise hardware specifications allow developers to write software that properly interfaces with the specified hardware.

    I will be the first to stand up and strongly advocate for open hardware specifications. That said, the absurdly entitled position you're taking does far more harm than good in the community at large. In short, kindly shut the fuck up and stop ranting about things you have no understand of, and no honest stake in.

  • by Anonymous Coward on Sunday June 24, 2012 @04:28AM (#40427349)

    I truly don't understand what the big deal is.

    When designing hardware peripherals, it's both a skill and an art defining the interface to the CPU. On the one hand, you can use dedicated logic in the peripheral to do everything, but that comes at a high cost. Not only does every bit of hardened logic use some die area, but it also needs extensive test suites and simulations to be developed and ran which can take a lot of time. More hardened logic also adds risk, since if there is a bug, it cannot be changed. Therefore, if possible, it can be advantageous to construct the interface such that it is very flexible, at a low level and closely tied to hardware function. Microcoding is an example of these techniques where instructions can be redefined to workaround silicon bugs or to correct instruction implementation.

    I suspect that if nvidia properly documented their interface, it would therefore give away key parameters of their chips as well as insights into what they harden and what they leave to the CPU. Things such as pipeline steps, interlocks (if any and where) and even the number of different hardware blocks they put on their die may become evident.

    All of this benefits the competition greatly, and in an industry where designing and producing these high specification chips costs tens of millions of dollars, I fully appreciate why they hold their cards close to their chest.

    Finally, what I don't understand is why Slashdot readers think they should open up the specs or drivers. Nvidia make and sell their cards and can do what they want while respecting law and licenses. They could very easily provide no driver for desktop Linux at all, and given the effort required to support Linux in all it's flavours and variants with frequent new kernel releases and ever changing APIs, I'm sometimes surprised they bother.

  • by GNUALMAFUERTE (697061) <.moc.liamg. .ta. .etreufamla.> on Sunday June 24, 2012 @04:45AM (#40427413)

    But it's the kernel license, so if they plan on releasing any useful code, it must be under a GPLv2 compatible license.

    I really don't understand why they don't open up already. Their only real competition is ATI, and there's not a single technology that nvidia could expose through their source that ATI doesn't already have ... so, why don't just open up?

    The way nvidia gets itself into the kernel is an ugly hack, and we're sick of it and the problems it brings.

  • by Instine (963303) on Sunday June 24, 2012 @04:56AM (#40427457)
    Agreed. They should help this project. While the opinions of readers here clearly matters to *some* degree, I'd like to think NVIDIA would care about my take. As I'm right now designing and building a GPGPU compute system. And while it won't get in the Linpack this year, it genuinely might in a few years from now. Right now (I broke away to write this) I'm pawing over the OpenCL vs CUDA options AGAIN, to weigh up which to go for. Right now OpenCL is pulling me strongest, simply because I know I could move to something else if I had to. I don't want to. NVIDIA apear to be leading the race to me, for stable, enterprise ready, server standard GPUs. I prefer CUDA.

    So guys, I prefer your products, I could spend hundreds of thousands, maybe million some day, but I'm nervous enough to choose a lesser option in order to leave myself an escape path - purely because your lack of openness at the interface with the hardware worries me. I don't want the hardware opened, I want its API. The lowest level software interface to it (and preferably the code to your supported drivers). If you opened up I'd know I could always get a driver that worked if I needed to move OS. Or that I could tweek for performance in the area I need it. etc... Open up. Why not? I've given you a bloody good reason to. Haven't I?
  • by dbIII (701233) on Sunday June 24, 2012 @06:28AM (#40427771)
    I think some of the SGI people that were burnt very badly by software patent trolls ended up at Nvidia. Currently there is nothing to stop it all happening again if Nvidia describe their methods in enough detail to let opportunists go after them in court. It appears they don't think they can afford to open up the specs while broad software patents that should never have been granted still cover everything obvious in computer graphics.
    That appears to be the "big deal".
  • Wayland? (Score:4, Interesting)

    by ChunderDownunder (709234) on Sunday June 24, 2012 @06:59AM (#40427889)

    Retrofit your monolithic binary blob into a wayland capable architecture and you'll have addressed many concerns such as KMS, EGL, etc.

    Supporting it on Tegra would be a step towards running standard accelerated Linux on an ARM phone or tablet and you'll be the slashdot nerd's platform of choice ahead of Adreno, Mali, PowerVR, VideoCore etc.

  • by treadmarks (2528414) on Sunday June 24, 2012 @07:28AM (#40427961)

    I don't think NVIDIA is doing anything wrong, but I'm sick of hearing the profit motive used as a euphemism for antisocial or greedy behavior. That's not the way capitalism is supposed to work and everybody needs to know this. Any business textbook will tell you that the profit motive is not meant to be synonymous with greed, but in practice that is how most Americans think of it. I don't know how people got tricked or corrupted into this way of thinking but we're all paying the price now as fraud played a huge part in the economy's destruction.

  • by FridayBob (619244) on Sunday June 24, 2012 @08:20AM (#40428143) Homepage

    I would think that the Nouveau project would prefer to keep nVidia people/developers out of the source - they cannot risk there being any "polution" of intellectual property. ...

    Not necessarily. We don't need their source code, just more information about their API. And as was recently ruled in the Oracle vs Google case regarding Java, API's can not be copyrighted [slashdot.org].

    Lawyers should first classify what the company can divulge (and their answer: Nothing), before anyone from nVidia even thinks about looking at the Nouveau source.

    Not their source code -- just the API for their hardware! Not that I expect that Nvidia's management will allow their engineers to divulge any API information (even just a little), but for us that's what's most important.

  • Re:Of course (Score:5, Interesting)

    by gbjbaanb (229885) on Sunday June 24, 2012 @10:41AM (#40429151)

    you don't quite understand the problem here - the HW manufacturer can offer a single Windows binary (or 2 or 3 at worst). But with Linux, they have to recompile a version for every (well...) version of the kernel that's out there. If the driver system had a stable ABI that never changed, then the HW manufacturers could deliver a single binary built "for linux" and would expect it to work. Currently, they have no such guarantee.

    You wonder why Linux on the desktop never took off? There's no business benefit to the manufacturers to support it. Sure, its technically better, but that means diddly squat in the real world especially when the answer is to recompile from source. You're never going to get Nvidia's source code, so accept that and start to deal with it with a technical solution rather than an idealistic one.

  • by hairyfeet (841228) <bassbeast1968@gma i l . com> on Sunday June 24, 2012 @12:39PM (#40430071) Journal

    But whose fault is that when Torvalds flat out refuses to allow a hardware ABI that EVERYONE ELSE has? Solaris, BSD, Windows, OSX, hell even OS/2 has a fricking ABI now and the ONLY OS that doesn't is Linux. So why should Nvidia or anybody else jump through hoops to support a broken design?

    You can use Win2K drivers on XP, you can use Vista drivers on win 7 and 8, that's over a decade of support for a driver. That means that in all likelihood the hardware will be long dead before you can no longer run it on your choice of Windows OS.

    I'm personally using a 2008 Vista driver on my fully updated Win 7 simply because it interacts better with the software I prefer to use, yet on Linux its fully expected that driver simply won't work without a recompile or major futzing, that's just fucked up folks, and even one of the Red Hat developers [google.com] says the current system simply isn't sustainable, you have too few qualified people trying to support too much and the QA and QC simply isn't there because of it.

    I can tell you that as a retailer that is why I'll sell a system with XP despite XP being creaky as hell now, simply because I can't even take a 4 year old Linux and upgrade it to current without shit breaking. The entire driver subsystem in Linux is a God awful mess and if this finally gets people to talk about it, instead of just accepting fixes and forum hunts as par for the course? let me be the first to say i'm ALL for it. there is no damned reason why companies like Nvidia and AMD should have to keep releasing drivers for old hardware simply because Torvalds ego won't let him see the current system doesn't work. And PLEASE don't say it would encourage binary blobs because in case you ain't notice? they ALREADY DO THAT NOW, you just have shittier support.

    So don't sweep it under the rug folks, this is simply a symptom of a MUCH larger problem, and that is the current driver model simply isn't sustainable. You can get by with it in server and embedded because hardware changes there are practically non existent and positively glacial, hell many servers still use Rage II for GPUs for the love of Pete, but to gain in the consumer market you need to be able to keep up with the constantly changing hardware and the current model simply doesn't work. Its always behind the curve, always way behind, hell by the time things are properly supported they usually aren't being sold in retail anymore. this really needs to change folks, and the only way it'll happen is if enough people get fed up with the status quo and complain. You can and DO deserve better fellas.

Luck, that's when preparation and opportunity meet. -- P.E. Trudeau

Working...