public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Keith Whitwell <keith@tungstengraphics.com>
To: Discuss issues related to the xorg tree <xorg@freedesktop.org>
Cc: Christoph Hellwig <hch@infradead.org>,
	dri-devel <dri-devel@lists.sourceforge.net>,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: New DRM driver model - gets rid of DRM() macros!
Date: Wed, 29 Sep 2004 15:39:37 +0100	[thread overview]
Message-ID: <415AC929.6070700@tungstengraphics.com> (raw)
In-Reply-To: <415AC640.3090407@tungstengraphics.com>

Keith Whitwell wrote:
> Christoph Hellwig wrote:
> 
>> On Wed, Sep 29, 2004 at 03:12:03PM +0100, Keith Whitwell wrote:
>>
>>> Thinking about it, it may not have been a problem of crashing, but 
>>> rather that  the behaviour visible from a program attempting to read 
>>> (or poll) was different with noop versions of these functions to NULL 
>>> versions, and that was causing problems.  This is 18 months ago, so 
>>> yes, I'm being vague.
>>>
>>> The X server does look at this file descriptor, which is where the 
>>> problem would have arisen, but only the gamma & maybe ffb drivers do 
>>> anything with it.
>>
>>
>>
>> Indeed, for read you're returning 0 now instead of the -EINVAL from 
>> common
>> code when no ->read is present.  I'd say the current drm behaviour is 
>> a bug,
>> but if X drivers rely on it.
> 
> 
> I'd agree, but it's a widely distributed bug.  I guess we can fix it in 
> the X server, but even better would be to rip out the code as it's 
> fundamentally misguided, based on a wierd idea that the kernel would 
> somehow ask the X server to perform a context switch between two 
> userspace clients...

The piece of the puzzle you're missing is that the read() function really did 
used to do something, and was relied upon.

If you want to go right back to prehistory, the drm was originally designed as 
a "core + personality" system, where the core supported a number of different 
context switching mechanisms to cover a variety of hardware cases.  The gamma 
driver exercised one path, but everything since then has been a lot more 
simplistic, assuming that the hardware state is lost if another context has 
been active.

Hardware often has the capacity to hold multiple active contexts or to perform 
fast hardware context save & restore.  None of the DRI drivers have attempted 
to take advantage of that - optimization continues to focus on the 
single-client scenario.

A future X-on-GL world where regular applications are presumably doing direct 
rendering will change that assumption...

Keith

  reply	other threads:[~2004-09-29 14:43 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-28 15:54 New DRM driver model - gets rid of DRM() macros! Jon Smirl
2004-09-28 16:56 ` Ian Romanick
2004-09-28 17:28   ` Jon Smirl
2004-09-28 19:35   ` Helge Hafting
2004-09-28 23:10 ` Dave Airlie
2004-09-29  1:27   ` Jon Smirl
2004-09-29  2:11     ` Dave Airlie
2004-09-29  5:25       ` Jon Smirl
2004-09-29 12:37 ` Christoph Hellwig
2004-09-29 11:59   ` Alan Cox
2004-09-29 13:16     ` Dave Airlie
2004-09-29 13:29   ` Keith Whitwell
2004-09-29 13:31     ` Christoph Hellwig
2004-09-29 13:35       ` Keith Whitwell
2004-09-29 14:12         ` Keith Whitwell
2004-09-29 14:16           ` Christoph Hellwig
2004-09-29 14:27             ` Keith Whitwell
2004-09-29 14:39               ` Keith Whitwell [this message]
2004-09-29 19:16                 ` Keith Packard
2004-09-30 18:10         ` Jon Smirl
2004-09-29 13:41   ` Dave Airlie
2004-10-01  5:15   ` Jon Smirl
2004-09-29 14:25 ` Keith Whitwell
2004-09-30  0:00   ` Eric Anholt
2004-09-29 21:52 ` Felix Kühling
2004-09-29 21:02   ` Alan Cox
2004-09-29 23:25   ` Jon Smirl
     [not found]     ` <20041006133714.GA26860@localdomain>
     [not found]       ` <9e47339104100609307307f8ea@mail.gmail.com>
     [not found]         ` <20041006211922.GA5167@localdomain>
2004-10-06 21:46           ` Code status (Was: New DRM driver model - gets rid of DRM() macros!) Ian Romanick

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=415AC929.6070700@tungstengraphics.com \
    --to=keith@tungstengraphics.com \
    --cc=dri-devel@lists.sourceforge.net \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=xorg@freedesktop.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox