On Fri, 24 Nov 2000, Antonio Campos wrote:

> I've reading the superb interesting thread about KGI/GGI and the need
> for a great change in the console (graphics console?) layer of the Linux
> kernel to improve the graphical situation of the OS.
> It looks like Linus Torvalds is the/a big obstacle in the progress of
> the Linux Graphical Subsystem.

        Obstacles:

* Linus (he doesn't like kernel graphics too much)
* Linus' adherents (they agree with whatever he says)
* DRI people (Competing architecture)
* XFree86 people (Competing architecture)
* Inertia (Why change if the current system "works"?)
* Developmental difficulties (It's _hard_ to do it right)


> First of all (don't get me wrong), we all must give credit to Linus from
> creating/initiating this wonderful operating system. 

        Sure.

> But, on the other
> hand, Linux users can't stop from improving just because him (or
> others?) think that the things are OK now. 

        They don't, by all accounts.  Linus' dislike for the fbcon/fbdev
system is well-known.  He doesn't mind DRI so much, probably because its
maintenance is sponsored by a commerercial entity (VA Linux) which fixes
bugs that pop up and enhances the API when needed.  Now that James Simmons
is being sponsored by SuSE Linux to fix up the console layer, things have
gotten a lot better in that department recently.  More improvements are on
tap for 2.5.

        Linus doesn't like complex (and thus race- and deadlock-prone)
subsystems which have to deal with a lot of interrupts, critical sections
and locks in the kernel.  One big impediment to releasing 2.4 has been the
debugging of the rawio and OOM killer subsystems.  DRI stays out of the
way of the scheduler, doesn't take kernel locks very often and its bugs
get fixed.  It might almost be easier to prove KGI out "in the field"
using FreeBSD as the primary OS platform.

> Admittedly, Linus isn't a
> brainless person, but he isn't God, 

        No, he's made his share of mistakes (other than KGI) over the
years.  But I doubt many other people could have done as well.  _Most_ of
his judgement calls are fairly on-target.  He just has biases which cloud
his reasoning in certain areas.

> and many people (including me), see
> the need for a crude improvement in the graphics subsystem if Linux is
> going to have any success in the desktop arena sometime. 

        Well, it is already quite sucessful, about as popular on the
desktop as Macs are actually.  And gaming, while confined to ports of the
more successful Windows games and free stuff like Tuxracer or Angband, is
growing rapidly as well.

> So, where am I trying to end with all this talking?. I'm just trying to
> say to all of you wonderful GGI/KGI/graphical kernel hackers that this
> lack of a good subsystem must be told to all the Linux community and by
> all means. 

        We try |->.  As you can see by subscribing to ggi-develop for a
while, we actually have quite a few users these days.

> Why? Because it's the only way, normal Linux users see this
> lack and start asking for it. 

        Oh, I think the number of "X is obsolete" type articles have shown
up on Slashdot over the past year is a sign that people see the lack |->.

> So, please, does anybody have or could
> have a good article to write in Linux Journal, Linux Today, Slashdorg,
> etc... about converting Linux in a better OS through changing the Linus
> way of thinking about kernel graphics hacking?

        Linus would just say what he has always said:

* Show me the code
* Direct Rendering is necessary for performance reasons
* Running X as a trusted userspace binary is OK
* X is not obsolete
* Who will maintain KGI in the kernel?
* The abstraction is unnecessarily complex
* He doesn't like UDI

        The answers to these objections are (in order):

* KGI 0.9 boots a kernel with mouse, keyboard and /dev/event integration.
It is ported to 2.2 but a 2.4 patch is almost ready.  Overall stability is
good, example drivers exist illustrating all features of the API, and a
well-working and modular kernel patchset is available.  In terms of API
weight, once you factor out the console, KII subsystem and mouse/keyboard
drivers, the remaining core /dev/kgi code isn't that much bigger or more
intricate than ALSA's code.

* This argument has been demolished in the past:

1: Most modern video cards are so fast and complex, with so many
interacting subsystems (AGP, DMA, 10+ different types of interrupts,
hardware semaphores, FIFO watermarks, tokenized command pipes, etc etc)
that signals from the video hardware to the OpenGL driver code which is
feeding the hardware command FIFOs is always delayed.  Not only is it
delayed, but it is delayed by an unknown amount of time, due to the
vagaries of scheduling.  That often means that that signal is useless for
its intended purpose, and you gotta use 'em correctly to get maximum (i.e.
acceptable) performance out of the hardware.  You _have_ to have more
kernel-side code than DRI has, as well as more complex drivers.

2: Rendering latencies rarely exceed 100fps, which puts a huge upper bound
on the rendering latency of the system as a whole.  _That_ is what direct
rendering improves, _NOT_ performance as a whole.  Both DRI and KGI should
be able to peg most modern hardware in any event.

> Besides this, pressure must be made in the Kernel mailing lists and to
> the DRI and X teams to encourage these changes (and changes focused in
> just one direction, not a thousand directions like
> fbdev+DRI+X+DGA+etc...). 

        We have found over the years that we have to re-implement the
legacy APIs we wish to emulate, not force them to change themselves.

> Let's all begin a flamewar (but one with good
> pretensions). 

        Please let's don't.  Go do some searches on the linux-kernel
archives for GGI and KGI and you will find some bad flamewars, many of
which I was involved in.  That doesn't accomplish anything.

> I think it's completely necessary and needed. 

        _I_ *know*, from long personal experience, that it is not.  Our
code is good enough to speak for itself now.  If you want to help GGI to
succeed, do it by helping us with some task.

> The people
> must know why these changes are necessary. 

        Enough people do now that we don't need to be obnoxious.  Nor, we
would certainly hope, anyone who supports us.

> We want a better OS, that has
> always been the idea behind Linux (if not why should  we use it instead
> of Windows?).

        Indeed.

Jon 

---
'Cloning and the reprogramming of DNA is the first serious step in 
becoming one with God.'
        - Scientist G. Richard Seed

Reply via email to