mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Jon Smirl" <jonsmirl@gmail.com>
To: "Dave Airlie" <airlied@gmail.com>
Cc: "Jesse Barnes" <jbarnes@virtuousgeek.org>,
	"Jeff Garzik" <jeff@garzik.org>,
	"Jesse Barnes" <jesse.barnes@intel.com>,
	linux-kernel@vger.kernel.org,
	"Antonino A. Daplas" <adaplas@gmail.com>
Subject: Re: [RFC] enhancing the kernel's graphics subsystem
Date: Tue, 22 May 2007 15:58:57 -0400	[thread overview]
Message-ID: <9e4733910705221258v660d8f42j16cc596ca820e8b8@mail.gmail.com> (raw)
In-Reply-To: <21d7e9970705221025r2f798dc5x310947db040c6521@mail.gmail.com>

On 5/22/07, Dave Airlie <airlied@gmail.com> wrote:
> > These are not isolated problems. Linux needs a properly designed
> > graphics subsystem. One way to achieve that is to design it all on
> > paper first so that we can try and locate the interactions between
> > modules. For example the current mode setting design is definitely
> > broken for multi-seat support, that's because you didn't take that
> > feature into account when writing the code.
>
> No it isn't the code Jesse posted can handle multi-seat fine in the
> areas that it makes sense as we've pointed out to you you cannot just

The code doesn't create one device per CRTC. Missing that feature
means that we need a persistent root priv app around that owns the
single device and then listens for messages from each seat asking it
to do things. That root priv app is not necessary, it is a security
risk and it should be eliminated.

> divide a GPU up into two head and not have the users interfere with
> each other, reprogramming modes on multiple crtcs/outputs and setting
> up memory bandwidth calculations requires the driver to do things that
> will potentially disrupt the other user, in most cases setting a mode
> on a head requires turning off all devices on the card first and
> switching them back on in a certain order, this is usually due to
> clocking interactions,

All this doesn't mean that it is impossible. I'm not asking you to
write this today, I just want an API that will allow it in the future.
The last graphics API was with us 25 years, I would hope that the
replacement can make it at least six months without needing changes. I
believe this feature will be much easier to implement on DX10 hardware
which will be wide spread in a few years.

> We can provide two fb interfaces for users wanting to do what you
> want, we then need to fix the VT subsystem on top of that, however for
> most of our users (like 95% at least) we want to support X as best we
> can, and that is where the energy will be placed initially, reducing
> the number of mode changes on startup along with suspend/resume for
> users is a major goal of this work.

Everyone runs X because we have built an environment where it is
pretty much impossible to create an alternative graphics system. If
the low level graphics system is going to get rewritten it is a crime
to do it to only serve the needs of X. Linux is about choice; it's
time we fixed the low level graphics system to make choice possible.
If you haven't noticed the other two major OSes have switched to
graphics systems based on 3D hardware. It is pretty much impossible to
build a graphics system like that for Linux given the current state of
low level graphics support.

> > Putting a small module into the kernel first with a random API, then
> > try and build the next module is not a good development path. It is
> > better to design all of the modules on paper and then work backwards
> > to the API the first module needs.  Even better would be to get the
> > whole subsystem working before including it in the kernel. Once these
> > exposed APIs go it, it is impossible to get them out. We need to try
> > and make sure that they are correct to begin with.
>
> Fine, but nobody has succeeded at this, because the effort of doing it
> this way is not incrementally developed, we are not designing DX10, we
> are improving Linux graphics one step at a time.

And the right way to build a house is to build the kitchen first and
figure out the rest after the kitchen is finished.

> > You need to take into account that you are proposing the replacement
> > of an existing subsystem, not the initial inclusion of a virgin
> > system. Putting your code in as is does make the X server happy, but
> > it is not solving all of the known problems with the existing graphics
> > subsystem. If you just want to make to X server happy it would be
> > better to extend the existing fbdev API and not try and replace the
> > subsystem.
>
> The thing is we need integration with memory management, the memory
> management is in the drm as it is complicated and the work is done, I
> know you aren't even reading this sentence at this point.

A new memory manager for drm is a nice piece of work. It was something
that needed to get done. But right now it is being done in an X
specific manner without consideration of alternative graphics
environments.


>
> Dave.
>


-- 
Jon Smirl
jonsmirl@gmail.com

  reply	other threads:[~2007-05-22 19:59 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-17 21:23 Jesse Barnes
2007-05-17 22:32 ` [PATCH 1/3] allow console unregistration Jesse Barnes
2007-05-17 22:47   ` Jesse Barnes
2007-05-17 23:23   ` Antonino A. Daplas
2007-05-18  0:56     ` Jesse Barnes
2007-05-22 21:43     ` [PATCH 1/2] " Jesse Barnes
2007-05-23  0:49       ` Antonino A. Daplas
2007-05-22 21:44     ` [PATCH 2/2] make fbcon unregister when unloaded Jesse Barnes
2007-05-22 22:05       ` Randy Dunlap
2007-05-22 22:14         ` Jesse Barnes
2007-05-23  0:47           ` Antonino A. Daplas
2007-05-30  0:00   ` [PATCH 1/3] allow console unregistration Antonino A. Daplas
2007-05-30  6:26     ` Geert Uytterhoeven
2007-05-17 22:37 ` [PATCH 2/3] drm modesetting core Jesse Barnes
2007-05-17 22:48   ` Jesse Barnes
2007-05-17 23:41   ` Luca Tettamanti
2007-05-18  1:04     ` Jesse Barnes
2007-05-18 19:33       ` Luca Tettamanti
2007-05-18 21:06         ` Jesse Barnes
2007-05-17 22:40 ` [PATCH 3/3] Intel support for DRM modesetting Jesse Barnes
2007-05-17 22:48   ` Jesse Barnes
2007-05-20 17:42 ` [RFC] enhancing the kernel's graphics subsystem Jon Smirl
2007-05-20 23:10   ` Jesse Barnes
2007-05-21  0:47     ` Jon Smirl
2007-05-21  1:29       ` Jeff Garzik
2007-05-21 15:34         ` Jon Smirl
2007-05-21 16:15           ` Arjan van de Ven
2007-05-21 15:09       ` Jesse Barnes
2007-05-21 16:01         ` Jon Smirl
2007-05-21 16:14           ` Jesse Barnes
2007-05-21 16:34             ` Jesse Barnes
2007-05-21 17:05               ` Jon Smirl
2007-05-21 17:14                 ` Dave Airlie
2007-05-21 17:29                   ` Jon Smirl
2007-05-21 17:42                   ` Jon Smirl
2007-05-21 17:47                     ` Dave Airlie
2007-05-21 18:04                       ` Jon Smirl
2007-05-21 18:44                         ` Dave Airlie
2007-05-21 19:10                           ` Jon Smirl
2007-05-21 19:20                             ` Dave Airlie
2007-05-21 23:24                             ` Jeff Garzik
2007-05-22  0:08                               ` Jon Smirl
2007-05-22  0:20                     ` Benjamin Herrenschmidt
2007-05-21 23:21                   ` Jeff Garzik
2007-05-22  0:35                     ` Alan Cox
2007-05-22  0:33                       ` Jeff Garzik
2007-05-22  0:45                       ` Jon Smirl
2007-05-22  0:56                         ` Jon Smirl
2007-05-22  8:21                           ` Dave Airlie
2007-05-22  8:07                     ` Dave Airlie
2007-05-22  8:16                       ` Jeff Garzik
2007-05-22  8:27                         ` Dave Airlie
2007-05-22 16:06                         ` Jon Smirl
2007-05-22 16:19                           ` Alan Cox
2007-05-22 16:34                           ` Jeff Garzik
2007-05-22  0:15                   ` Benjamin Herrenschmidt
2007-05-21 17:32                 ` Jesse Barnes
2007-05-21 23:18                 ` Jeff Garzik
2007-05-22  0:26                   ` Jon Smirl
2007-05-22  1:56                     ` Jesse Barnes
2007-05-22 14:27                       ` Jon Smirl
2007-05-22 14:35                         ` Dave Airlie
2007-05-22 15:13                           ` Jon Smirl
2007-05-22 17:25                             ` Dave Airlie
2007-05-22 19:58                               ` Jon Smirl [this message]
2007-05-28 20:12                                 ` Pavel Machek
2007-05-28 20:57                                   ` Jon Smirl
2007-05-29 14:26                                     ` Pavel Machek
2007-05-29 16:51                                       ` Jon Smirl
2007-05-22 14:54                         ` Alan Cox
2007-05-22 15:16                           ` Jon Smirl
2007-05-22 15:46                             ` Jesse Barnes
2007-05-22 16:02                               ` Jon Smirl
2007-05-22 16:14                                 ` Alan Cox
2007-05-22 16:15                                 ` Jesse Barnes
2007-05-22 16:32                                   ` Jon Smirl
2007-05-22 16:35                                     ` Jeff Garzik
2007-05-22 16:51                                     ` Jesse Barnes
2007-05-22 15:59                             ` Matthew Garrett
2007-05-21 16:16           ` Dave Airlie
2007-05-21  8:27   ` Dave Airlie
2007-05-21  9:09     ` Helge Hafting
2007-05-21  9:27       ` Dave Airlie
2007-05-21  9:44         ` Helge Hafting
2007-05-21 15:57           ` Jesse Barnes
2007-05-21 16:07             ` Jon Smirl
2007-05-21 16:27               ` Dave Airlie
2007-05-21 16:50                 ` Xavier Bestel
2007-05-22  0:09 ` Benjamin Herrenschmidt
2007-05-22  0:51   ` Keith Packard
2007-05-22  2:48     ` Benjamin Herrenschmidt
2007-05-22 15:39   ` Jesse Barnes
2007-05-22 23:26     ` Benjamin Herrenschmidt
2007-05-22 23:36       ` Jesse Barnes
2007-05-23  0:40         ` Antonino A. Daplas
2007-05-23 12:19       ` Helge Hafting
2007-05-22 16:29   ` Philipp Klaus Krause
2007-05-22 16:57     ` Jesse Barnes
2007-05-22 18:18     ` Dave Airlie
2007-05-22  2:56 ` l l

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=9e4733910705221258v660d8f42j16cc596ca820e8b8@mail.gmail.com \
    --to=jonsmirl@gmail.com \
    --cc=adaplas@gmail.com \
    --cc=airlied@gmail.com \
    --cc=jbarnes@virtuousgeek.org \
    --cc=jeff@garzik.org \
    --cc=jesse.barnes@intel.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®