[Ksummit-2012-discuss] [ATTEND] NVIDIA education, and embedded architectures

Matthew Garrett mjg59 at srcf.ucam.org
Wed Jun 20 15:27:02 UTC 2012

On Tue, Jun 19, 2012 at 08:09:58PM -0600, Stephen Warren wrote:

> * Within the constraints I have, what should I and perhaps other NVIDIA
> employees be contributing to in the kernel? 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?

Stop working on the nvidia kernel driver. The things that you consider 
trade secrets are almost entirely in your 3D engine. Move your 3D driver 
to userspace and use nouveau for command submission. It'd still somewhat 
suck having a closed 3D driver, but it'd be far better than the current 
situation of having two drivers for the same hardware.

The nvidia driver is problematic for two reasons:

(1) It doesn't integrate at all with the rest of the kernel. It doesn't 
expose the right sort of backlight interface, it doesn't use ACPI 
properly, it doesn't integrate with the work being done on GPU 
offloading. Any of these features that it ends up supporting tend to be 
entirely independently implemented by nvidia and don't work well with 
the existing userspace tools.

(2) It's closed, so we can't do anything about (1).

It's difficult to imagine that anything in the nouveau driver embodies 
anything that nvidia could consider any kind of trade secret. Your 3D 
driver would require substantial rearchitecture to use it rather than 
your existing kernel code, but if the claim is "We can't because trade 
secrets" rather than "We can't because engineering effort" then just 
make it happen.

Further, as the industry moves to secure boot, you're going to have 
incredible difficulty providing a closed kernel driver. Even if we have 
some mechanism for third-party signing, that means you'll have to 
provide a pre-compiled kernel module for every kernel you want to 
support. It's going to become much less painful for you to move to an 
open kernel/closed userspace model.

Matthew Garrett | mjg59 at srcf.ucam.org

More information about the Ksummit-2012-discuss mailing list