From: "Thomas Hellström" <thomas@shipmail.org>
To: DRI <dri-devel@lists.sourceforge.net>
Cc: Linux Kernel list <linux-kernel@vger.kernel.org>
Subject: DRM drivers with closed source user-space: WAS [Patch 0/3] Resubmit VIA Chrome9 DRM via_chrome9 for upstream
Date: Mon, 20 Jul 2009 15:38:32 +0200 [thread overview]
Message-ID: <4A647358.1040009@shipmail.org> (raw)
Hi!
It appears that GPL'd DRM drivers for closed-source user-space clients
are becoming more common, and the situation appears to be causing a lot
of unnecessary work from people wanting their drivers in the mainstream
kernel. Arguments against pushing upstream include.
* Security.
* User space interface validation and maintainability.
* Politics
Security:
I think from a security point of view, open docs and a thorough
documented security analysis by the driver writer should be sufficient.
This should include:
1. In what ways can the GPU access random system pages and how is
user-space prevented from doing that in the driver?
2. In what ways can the GPU transfer random user data into its own
privileged command stream and, if relevant, how is that prevented
in the driver?
3. Is the driver capable of maintaining video memory ownership and
protecition?
(Currently not a requirement)
4. How is user-space prevented from causing the kernel driver to do
unlimited allocations of kernel resources, like buffer objects or
references to them.
I really don't think an open-source user-space client can add much more
to this. It can perhaps be used to detect obvious big security flaws but
that should be apparent also from the open docs and the security analysis.
User-space interface:
Historically driver-specific interfaces have really been up to the
driver writer and when posted for review they receive very little
comments unless there are things like 64/32 bit incompatibilities etc,
but as mentioned on the list, small programs that demonstrate the use of
all interface functions would be desirable, and very helpful if someone
decides to do write an open-source driver.
Politics:
It's true that sometimes some people don't like the code or what it
does. But when this is the underlying cause of NAK-ing a driver I think
it's very important that this is clearly stated, instead of inventing
various random reasons that can easily be argued against. How should the
driver writer otherwise get it right? Man-years might be spent fixing up
drivers that will never get upstream anyway.
I think it would help a lot of there was a documented set of driver
features that were required and sufficient for a DRM driver to go
upstream. It could look something like
* Kernel coding style obeyed. Passing checkpatch.
* short description of underlying driver architecture (GEM / TTM /
Traditional) and future plans
* Security analysis according to the above.
* Open user-space source exercising all functions of the driver or
fully open docs.
* User-space interface description and relation to future plans.
Thanks,
/Thomas
next reply other threads:[~2009-07-20 13:38 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-20 13:38 Thomas Hellström [this message]
2009-07-20 13:58 ` DRM drivers with closed source user-space: WAS [Patch 0/3] Resubmit VIA Chrome9 DRM via_chrome9 for upstream Christoph Hellwig
2009-07-20 15:02 ` Thomas Hellström
2009-07-20 15:16 ` Alan Cox
2009-07-20 15:52 ` Matthew Garrett
2009-07-20 15:57 ` Christoph Hellwig
2009-07-20 16:02 ` Matthew Garrett
2009-07-20 16:37 ` Alan Cox
2009-07-20 23:28 ` Alan Cox
2009-07-20 23:33 ` Matthew Garrett
2009-07-20 19:13 ` Stephane Marchesin
2009-07-20 20:19 ` Thomas Hellström
2009-07-20 20:43 ` Dave Airlie
2009-07-20 21:40 ` Stephane Marchesin
2009-07-20 22:31 ` Dave Airlie
2009-07-20 14:06 ` Peter Zijlstra
2009-07-20 14:52 ` Alan Cox
2009-07-20 15:07 ` Thomas Hellström
2009-07-20 19:51 ` Dave Airlie
2009-07-20 14:09 ` Andrey Panin
2009-07-20 19:03 ` Krzysztof Halasa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A647358.1040009@shipmail.org \
--to=thomas@shipmail.org \
--cc=dri-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.