linux-stable/Documentation/DocBook
David Herrmann 1793126fce drm: implement experimental render nodes
Render nodes provide an API for userspace to use non-privileged GPU
commands without any running DRM-Master. It is useful for offscreen
rendering, GPGPU clients, and normal render clients which do not perform
modesetting.

Compared to legacy clients, render clients no longer need any
authentication to perform client ioctls. Instead, user-space controls
render/client access to GPUs via filesystem access-modes on the
render-node. Once a render-node was opened, a client has full access to
the client/render operations on the GPU. However, no modesetting or ioctls
that affect global state are allowed on render nodes.

To prevent privilege-escalation, drivers must explicitly state that they
support render nodes. They must mark their render-only ioctls as
DRM_RENDER_ALLOW so render clients can use them. Furthermore, they must
support clients without any attached master.

If filesystem access-modes are not enough for fine-grained access control
to render nodes (very unlikely, considering the versaitlity of FS-ACLs),
you may still fall-back to fd-passing from server to client (which allows
arbitrary access-control). However, note that revoking access is
currently impossible and unlikely to get implemented.

Note: Render clients no longer have any associated DRM-Master as they are
supposed to be independent of any server state. DRM core highly depends on
file_priv->master to be non-NULL for modesetting/ctx/etc. commands.
Therefore, drivers must be very careful to not require DRM-Master if they
support DRIVER_RENDER.

So far render-nodes are protected by "drm_rnodes". As long as this
module-parameter is not set to 1, a driver will not create render nodes.
This allows us to experiment with the API a bit before we stabilize it.

v2: drop insecure GEM_FLINK to force use of dmabuf

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2013-08-30 08:43:57 +10:00
..
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2013-07-13 12:09:57 -07:00
.gitignore [media] DocBook: Add a chapter to describe media errors 2011-07-27 17:53:35 -03:00
80211.tmpl wireless: fix kernel-doc 2013-06-05 09:33:32 +02:00
alsa-driver-api.tmpl
debugobjects.tmpl debugobjects: Extend to assert that an object is initialized 2011-11-23 18:49:22 +01:00
device-drivers.tmpl Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2013-07-09 16:04:31 -07:00
deviceiobook.tmpl docbook: change iomap source filename in deviceiobook 2012-01-23 08:44:54 -08:00
drm.tmpl drm: implement experimental render nodes 2013-08-30 08:43:57 +10:00
filesystems.tmpl Documentation: get rid of write_super 2012-08-04 01:25:20 +04:00
gadget.tmpl usb: gadget: Remove File-backed Storage Gadget (g_file_storage). 2012-11-08 16:01:04 +02:00
genericirq.tmpl genirq: Add the generic chip to the genirq docbook 2013-06-28 12:56:04 +02:00
kernel-api.tmpl kstrto*: add documentation 2012-12-17 17:15:22 -08:00
kernel-hacking.tmpl Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
kernel-locking.tmpl docbook: add futexes to kernel-locking docbook 2013-07-03 16:08:01 -07:00
kgdb.tmpl Documentation: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:38:03 -08:00
libata.tmpl Documentation: Fix typo in multiple files in Documentation 2012-04-16 14:37:13 +02:00
librs.tmpl
lsm.tmpl
Makefile MCA: delete all remaining traces of microchannel bus support. 2012-05-17 19:06:13 -04:00
media_api.tmpl [media] soc_camera: Add RGB666 & RGB888 formats 2013-04-04 19:40:08 -03:00
mtdnand.tmpl mtd: nand: remove NAND_BBT_SEARCH option 2012-07-06 18:17:04 +01:00
networking.tmpl docbook: networking: fix file paths for uapi headers 2012-10-15 08:04:41 -07:00
rapidio.tmpl docbook: fix rapidio warning 2011-03-27 19:30:19 -07:00
regulator.tmpl Fix common misspellings 2011-03-31 11:26:23 -03:00
s390-drivers.tmpl
scsi.tmpl
sh.tmpl sh: clkfwk: Kill off unused clk_set_rate_ex(). 2010-11-15 18:25:12 +09:00
stylesheet.xsl docbook: use IDs as filenames to support multiple books 2010-08-05 13:21:24 -07:00
tracepoint.tmpl workqueue: Add a workqueue chapter to the tracepoint docbook 2010-08-27 12:27:36 +02:00
uio-howto.tmpl uio-howto: example bug 2013-01-17 10:19:51 -08:00
usb.tmpl Fix common misspellings 2011-03-31 11:26:23 -03:00
writing-an-alsa-driver.tmpl ALSA: Make snd_BUG_ON() always evaluate and return the conditional expression 2013-03-11 09:33:34 +01:00
writing_usb_driver.tmpl doc: fix misspellings with 'codespell' tool 2013-05-28 12:02:12 +02:00
z8530book.tmpl