All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Richard Moser <nigelenki@comcast.net>
To: Lennart Sorensen <lsorense@csclub.uwaterloo.ca>
Cc: linux-kernel@vger.kernel.org
Subject: Re: binary drivers and development
Date: Thu, 10 Mar 2005 16:42:55 -0500	[thread overview]
Message-ID: <4230BF5F.6060703@comcast.net> (raw)
In-Reply-To: <20050310212133.GE17865@csclub.uwaterloo.ca>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

People are still e-mailing me about this?

Lennart Sorensen wrote:
> On Thu, Mar 10, 2005 at 12:24:15PM -0500, John Richard Moser wrote:
> 
>>I've done more thought, here's a small list of advantages on using
>>binary drivers, specifically considering UDI.  You can consider a
>>different implementation for binary drivers as well, with most of the
>>same advantages.
>>
>> - Smaller kernel tree
>>   The kernel tree would no longer contain all of the drivers; they'd
>>   slowly have to bleed into UDI until most were there
> 
> 
> Users would have to go hunting for drivers to add to their kernel to get
> hardware supported.  Making a CD with a kernel and drivers for a wide
> variety of hardware would be a nightmare.
> 

/pub/kernel/2.6
/pub/drivers/

> 
>> - Better focused development
>>   The kernel's core would be the core.  Driver code would be isolated,
>>   so work on the kernel would affect the kernel only and not any
>>   drivers.  UDI is a standard interface that shouldn't be broken.  This
>>   means that work on the high-level drivers will not need to be sanity
>>   checked a thousand times against the PCI Bus interface or the USB
>>   host controler API or whatnot.
> 
> 
> But anything that runs in kernel memory space can still go trampling on
> memory in the kernel by accident and is very difficult to debug without
> the sources.
> 

True, but that only should happen if you code things to access exact
memory locations, rather than asking the kernel for memory or mappings.

> 
>> - Faster rebuilding for developers
>>   The isolation between drivers and core would make rebuilding involve
>>   the particular component (driver, core).  A "broken driver" would
>>   just require recoding and rebuilding the driver; a "broken kernel"
>>   would require building pretty much a skeletal core
> 
> 
> That can already be done basicly.  The makefiles work just fine for
> rebuilding only what has changed in general.
> 

I don't remember what I was thinking
> 
>> - UDI supplies SMP safety
>>   The UDI page brags[1]:
>>
>>   "An advanced scheduling model. Multiple driver instances can be run
>>    in parallel on multiple processors with no lock management performed
>>    by the driver. Free paralllism and scalability!"
>>
>>   Drivers can be considered SMP safe, apparently.  Inside the same
>>   driver, however, I have my doubts; I can see a driver maintaining a
>>   linked list that needs to be locked during insertions or deletions,
>>   which needs lock managment for the driver.  Still, no consideration
>>   for anything outside the driver need be made, apparently.
>> - Vendor drivers and religious issues
>>   Vendors can supply third party drivers until there are open source
>>   alternatives, since they have this religious thing where they don't
>>   want people to see their driver code, which is kind of annoying and
>>   impedes progress
> 
> 
> I imagine a driver writer could still easily do something not SMP safe,
> but I don't know that for sure.  It sounds like a very complex thing to
> promise a perfect solution for.
> 

internally drivers would need to be smp safe, eh.  Externally I guess
they're safe.

> 
>>Disadvantages:
>>
>> - Preemption
>>   Is it still possible to implement a soft realtime kernel that
>>   responds to interrupts quickly?
>> - Performance
>>   UDI's developers claim that the performance overhead is negligible.
>>   It's still added work, but it remains to be seen if it's significant
>>   enough to degrade performance.
>> - Religious battles
>>   People have this religious thing about binary drivers, which is kind
>>   of annoying and impedes progress
> 
> 
> Many of the disadvantages are a good reason why they have these opinions
> on binary drivers.  They do impede getting work done if you have to use
> them on your system and something isn't working right.
> 
> 
>> - Constriction
>>   This would of course create an abstraction layer that constricts the
>>   driver developer's ability to do low level complex operations for any
>>   portable binary driver
> 
> 
> You forgot the very important:
>    - Only works on architecture it was compiled for.  So anyone not
>      using i386 (and maybe later x86-64) is simply out of luck.  What do
>      nvidia users that want accelerated nvidia drivers for X DRI do
>      right now if they have a powerpc or a sparc or an alpha?  How about
>      porting Linux to a new architecture.  With binary drivers you now
>      start out with no drivers on the new architecture except for the
>      ones you have source for.  Not very productive.
> 
> [snip]
> 

yeah, I was thinking the open source drivers would be ubiquitous to all
architectures anyway though.  Closed drivers would be subject to lazy
venders.

> Len Sorensen
> 

- --
All content of all messages exchanged herein are left in the
Public Domain, unless otherwise explicitly stated.

    Creative brains are a valuable, limited resource. They shouldn't be
    wasted on re-inventing the wheel when there are so many fascinating
    new problems waiting out there.
                                                 -- Eric Steven Raymond
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCML9fhDd4aOud5P8RAglXAJ9hTu5jVZcZ/LLFFw41bjO73+ShhwCfUlma
iPcrJXwKP0ZfQ8jCsVhxhSQ=
=CknT
-----END PGP SIGNATURE-----

  reply	other threads:[~2005-03-10 22:01 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-10 16:28 binary drivers and development John Richard Moser
2005-03-10 16:48 ` Greg KH
2005-03-10 17:19   ` John Richard Moser
2005-03-10 17:24     ` Greg KH
2005-03-10 17:02 ` Ralf Baechle
2005-03-10 17:25   ` John Richard Moser
2005-03-10 17:24 ` John Richard Moser
2005-03-10 20:03   ` Diego Calleja
2005-03-10 20:14     ` John Richard Moser
2005-03-10 21:21   ` Lennart Sorensen
2005-03-10 21:42     ` John Richard Moser [this message]
2005-03-10 22:31       ` Lee Revell
2005-03-10 21:59   ` Peter Chubb
2005-03-10 22:32     ` John Richard Moser
2005-03-12 15:53       ` Felipe Alfaro Solana
2005-03-13  5:01         ` John Richard Moser
2005-03-13  7:17           ` Mike Galbraith
2005-03-10 22:45   ` Rik van Riel
2005-03-11 10:39     ` Ben Dooks
2005-03-11 16:39       ` Benedikt Spranger
2005-03-11 16:10   ` Jon Smirl
2005-03-11  9:33 ` [TROLL] " Xavier Bestel
  -- strict thread matches above, loose matches on Subject: below --
2005-03-11  4:57 Albert Cahalan
2005-03-19 11:29 ` Eric W. Biederman

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=4230BF5F.6060703@comcast.net \
    --to=nigelenki@comcast.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lsorense@csclub.uwaterloo.ca \
    /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.