From: Keith Whitwell <keith@tungstengraphics.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Egbert Eich <eich@xfree86.org>, Jon Smirl <jonsmirl@yahoo.com>,
Eric Anholt <eta@lclark.edu>,
kronos@kronoz.cjb.net,
Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-fbdev-devel@lists.sourceforge.net,
dri-devel <dri-devel@lists.sourceforge.net>,
Jeff Garzik <jgarzik@pobox.com>
Subject: Re: [Dri-devel] Re: DRM and pci_driver conversion
Date: Mon, 27 Oct 2003 15:10:20 +0000 [thread overview]
Message-ID: <3F9D355C.8070103@tungstengraphics.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0310251116140.4083-100000@home.osdl.org>
Linus Torvalds wrote:
> On Sat, 25 Oct 2003, Egbert Eich wrote:
>
>>Speaking of XFree86: when I developed the PCI resource stuff in
>>XFree86 I was trying to get support from kernel folks to get the
>>appropriate user space interfaces into the kernel. When I got
>>nowhere I decided to do everything myself.
>
>
> There won't be any "user space interfaces". There are perfectly good
> in-kernel interfaces, and anybody who needs them needs to be in kernel
> space. Ie the kernel interfaces are for kernel modules, not for user space
> accesses.
>
> The kernel module can be a simple interface layer like DRI, but the thing
> is, it needs to be specific to some kind of hardware. I refuse to have
> some kind of crap "user space driver" interface - drivers in user space
> are a mistake.
>
>
>>Is there any API that allows one to do this from user space?
>
>
> No. And I don't really see any huge reason for it.
>
>
>>There are plenty of XFree86 drivers around that don't have a
>>DRM kernel module and it should be possible to run those which
>>do without DRI support, therefore it would be a good if the
>>XFree86 driver could do this registration itself.
>
>
> If you do this, do it _right_. Look at what X really needs, and make a
> driver for it. A _real_ driver. Not just a half-hearted "we want to do
> things in user space, but we can't".
>
> Face it, a good graphics driver needs more than just "set up the ROM". It
> needs DMA access, and the ability to use interrupts. It needs a real
> driver.
>
> It basically needs something like what the DRI modules tend to do.
>
> I'd be really happy to have real graphics drivers in the kernel, but quite
> frankly, so far the abstractions I've seen have sucked dead donkeys
> through a straw. "fbcon" does way too much (it's not a driver, it's more a
> text delivery system and a mode switcher). And DRI is too complex and
> fluid to be a good low-level driver.
>
> Quite frankly, I'd much rather see a low-level graphics driver that does
> _two_ things, and those things only:
>
> - basic hardware enumeration and setup (and no, "basic setup" does not
> mean "mode switching": it literally means things like doing the
> pci_enable_device() stuff.
>
> - serialization and arbitrary command queuing from a _trusted_ party (ie
> it could take command lists from the X server, but not from untrusted
> clients). This part basically boils down to "DMA and interrupts". This
> is the part that allows others to wait for command completion, "enough
> space in the ring buffers" etc. But it does _not_ know or care what the
> commands are.
>
> Then, fbcon and DRI and X could all three use these basics - and they'd be
> _so_ basic that the hardware layer could be really stable (unlike the DRI
> code that tends to have to upgrade for each new type of command that DRI
> adds - since it has to take care of untrusted clients. So DRI would
> basically use the low-level driver as a separate module, the way it
> already uses AGP).
That makes sense - the abstraction of dma engine away from the
security-providing gumpf that is so much of the DRM modules, to form a single
kernel-level "owner" of the graphics hardware.
This would also answer various questions that float around regarding who is
the ultimate "owner" of the graphics hardware - in particular, who is
responsible for virtualization of the graphics memory.
Of course, that's a trickier task because it is one which doesn't just rip
existing code out of various poorly-conceived modules.
Keith
-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community? Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/
WARNING: multiple messages have this Message-ID (diff)
From: Keith Whitwell <keith@tungstengraphics.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Egbert Eich <eich@xfree86.org>, Jon Smirl <jonsmirl@yahoo.com>,
Eric Anholt <eta@lclark.edu>,
kronos@kronoz.cjb.net,
Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-fbdev-devel@lists.sourceforge.net,
dri-devel <dri-devel@lists.sourceforge.net>,
Jeff Garzik <jgarzik@pobox.com>
Subject: Re: [Dri-devel] Re: [Linux-fbdev-devel] DRM and pci_driver conversion
Date: Mon, 27 Oct 2003 15:10:20 +0000 [thread overview]
Message-ID: <3F9D355C.8070103@tungstengraphics.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0310251116140.4083-100000@home.osdl.org>
Linus Torvalds wrote:
> On Sat, 25 Oct 2003, Egbert Eich wrote:
>
>>Speaking of XFree86: when I developed the PCI resource stuff in
>>XFree86 I was trying to get support from kernel folks to get the
>>appropriate user space interfaces into the kernel. When I got
>>nowhere I decided to do everything myself.
>
>
> There won't be any "user space interfaces". There are perfectly good
> in-kernel interfaces, and anybody who needs them needs to be in kernel
> space. Ie the kernel interfaces are for kernel modules, not for user space
> accesses.
>
> The kernel module can be a simple interface layer like DRI, but the thing
> is, it needs to be specific to some kind of hardware. I refuse to have
> some kind of crap "user space driver" interface - drivers in user space
> are a mistake.
>
>
>>Is there any API that allows one to do this from user space?
>
>
> No. And I don't really see any huge reason for it.
>
>
>>There are plenty of XFree86 drivers around that don't have a
>>DRM kernel module and it should be possible to run those which
>>do without DRI support, therefore it would be a good if the
>>XFree86 driver could do this registration itself.
>
>
> If you do this, do it _right_. Look at what X really needs, and make a
> driver for it. A _real_ driver. Not just a half-hearted "we want to do
> things in user space, but we can't".
>
> Face it, a good graphics driver needs more than just "set up the ROM". It
> needs DMA access, and the ability to use interrupts. It needs a real
> driver.
>
> It basically needs something like what the DRI modules tend to do.
>
> I'd be really happy to have real graphics drivers in the kernel, but quite
> frankly, so far the abstractions I've seen have sucked dead donkeys
> through a straw. "fbcon" does way too much (it's not a driver, it's more a
> text delivery system and a mode switcher). And DRI is too complex and
> fluid to be a good low-level driver.
>
> Quite frankly, I'd much rather see a low-level graphics driver that does
> _two_ things, and those things only:
>
> - basic hardware enumeration and setup (and no, "basic setup" does not
> mean "mode switching": it literally means things like doing the
> pci_enable_device() stuff.
>
> - serialization and arbitrary command queuing from a _trusted_ party (ie
> it could take command lists from the X server, but not from untrusted
> clients). This part basically boils down to "DMA and interrupts". This
> is the part that allows others to wait for command completion, "enough
> space in the ring buffers" etc. But it does _not_ know or care what the
> commands are.
>
> Then, fbcon and DRI and X could all three use these basics - and they'd be
> _so_ basic that the hardware layer could be really stable (unlike the DRI
> code that tends to have to upgrade for each new type of command that DRI
> adds - since it has to take care of untrusted clients. So DRI would
> basically use the low-level driver as a separate module, the way it
> already uses AGP).
That makes sense - the abstraction of dma engine away from the
security-providing gumpf that is so much of the DRM modules, to form a single
kernel-level "owner" of the graphics hardware.
This would also answer various questions that float around regarding who is
the ultimate "owner" of the graphics hardware - in particular, who is
responsible for virtualization of the graphics memory.
Of course, that's a trickier task because it is one which doesn't just rip
existing code out of various poorly-conceived modules.
Keith
next prev parent reply other threads:[~2003-10-27 15:10 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-21 2:31 DRM and pci_driver conversion Eric Anholt
2003-10-23 19:04 ` Kronos
2003-10-23 19:04 ` [Linux-fbdev-devel] " Kronos
2003-10-23 21:10 ` Eric Anholt
2003-10-23 21:31 ` Jon Smirl
2003-10-23 23:23 ` [Dri-devel] " Linus Torvalds
2003-10-23 23:23 ` Linus Torvalds
2003-10-23 23:46 ` Eric Anholt
2003-10-24 1:19 ` [Dri-devel] " Jeff Garzik
2003-10-24 1:19 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jeff Garzik
2003-10-24 1:52 ` Jon Smirl
2003-10-24 3:47 ` Multiple drivers for same hardware:, was: " Jon Smirl
2003-10-24 3:47 ` Jon Smirl
2003-10-24 4:40 ` Linus Torvalds
2003-10-24 4:40 ` Linus Torvalds
2003-10-28 18:00 ` James Simmons
2003-10-24 16:44 ` [Dri-devel] " Linus Torvalds
2003-10-24 16:44 ` [Dri-devel] Re: [Linux-fbdev-devel] " Linus Torvalds
2003-10-24 16:57 ` Petr Vandrovec
2003-10-24 17:59 ` Linus Torvalds
2003-10-24 17:59 ` Linus Torvalds
2003-10-24 18:34 ` Jon Smirl
2003-10-24 19:45 ` [Dri-devel] " Ivan Kokshaysky
2003-10-24 19:45 ` [Dri-devel] Re: [Linux-fbdev-devel] " Ivan Kokshaysky
2003-10-24 19:08 ` [Dri-devel] " Ivan Kokshaysky
2003-10-24 19:08 ` [Dri-devel] Re: [Linux-fbdev-devel] " Ivan Kokshaysky
2003-10-24 17:06 ` [Dri-devel] " Jeff Garzik
2003-10-24 17:06 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jeff Garzik
2003-10-24 1:50 ` [Dri-devel] " Jon Smirl
2003-10-24 1:50 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jon Smirl
2003-10-25 17:29 ` [Dri-devel] " Egbert Eich
2003-10-25 17:29 ` [Dri-devel] Re: [Linux-fbdev-devel] " Egbert Eich
2003-10-25 18:37 ` Linus Torvalds
2003-10-25 18:37 ` Linus Torvalds
2003-10-25 19:17 ` [Dri-devel] " Jeff Garzik
2003-10-25 19:17 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jeff Garzik
2003-10-27 14:37 ` Ingo Oeser
2003-10-27 15:43 ` [Dri-devel] " Jeff Garzik
2003-10-27 15:43 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jeff Garzik
2003-10-28 10:53 ` Ingo Oeser
2003-10-27 14:37 ` [Dri-devel] " Ingo Oeser
2003-10-27 15:14 ` Keith Whitwell
2003-10-27 15:14 ` [Dri-devel] Re: [Linux-fbdev-devel] " Keith Whitwell
2003-10-27 15:38 ` [Dri-devel] " Jeff Garzik
2003-10-27 15:38 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jeff Garzik
2003-10-27 15:50 ` [Dri-devel] " Keith Whitwell
2003-10-27 15:50 ` [Dri-devel] Re: [Linux-fbdev-devel] " Keith Whitwell
2003-10-25 21:02 ` [Dri-devel] " Jon Smirl
2003-10-25 21:02 ` [Dri-devel] Re: [Linux-fbdev-devel] " Jon Smirl
2003-10-25 22:07 ` [Dri-devel] " Benjamin Herrenschmidt
2003-10-25 22:07 ` [Dri-devel] Re: [Linux-fbdev-devel] " Benjamin Herrenschmidt
2003-10-27 14:01 ` jlnance
2003-10-27 15:10 ` [Dri-devel] " Eric W. Biederman
2003-10-27 15:10 ` [Dri-devel] Re: [Linux-fbdev-devel] " Eric W. Biederman
2003-10-27 15:10 ` Keith Whitwell [this message]
2003-10-27 15:10 ` Keith Whitwell
[not found] ` <20031027114006.A66611@xfree86.org>
2003-10-27 19:38 ` [Dri-devel] " Ian Romanick
2003-10-27 21:32 ` Linus Torvalds
2003-10-27 23:55 ` Benjamin Herrenschmidt
2003-10-28 2:13 ` Linus Torvalds
2003-10-28 3:27 ` Philip Brown
2003-10-28 19:40 ` James Simmons
2003-10-28 21:35 ` Benjamin Herrenschmidt
2003-10-28 22:09 ` Jon Smirl
2003-10-28 22:26 ` Benjamin Herrenschmidt
2003-10-28 22:54 ` Linus Torvalds
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=3F9D355C.8070103@tungstengraphics.com \
--to=keith@tungstengraphics.com \
--cc=dri-devel@lists.sourceforge.net \
--cc=eich@xfree86.org \
--cc=eta@lclark.edu \
--cc=jgarzik@pobox.com \
--cc=jonsmirl@yahoo.com \
--cc=kronos@kronoz.cjb.net \
--cc=linux-fbdev-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.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.