public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Rob Landley <landley@webofficenow.com>
To: Alexander Viro <viro@math.psu.edu>, Jes Sorensen <jes@sunsite.dk>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>, bert hubert <ahu@ds9a.nl>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: Alan Cox quote? (was: Re: accounting for threads)
Date: Wed, 20 Jun 2001 16:09:38 -0400	[thread overview]
Message-ID: <0106201609380G.00776@localhost.localdomain> (raw)
In-Reply-To: <Pine.GSO.4.21.0106201127350.24658-100000@weyl.math.psu.edu>
In-Reply-To: <Pine.GSO.4.21.0106201127350.24658-100000@weyl.math.psu.edu>

On Wednesday 20 June 2001 11:33, Alexander Viro wrote:
> On 20 Jun 2001, Jes Sorensen wrote:
> > Not to mention how complex it is to get locking right in an efficient
> > manner. Programming threads is not that much different from kernel SMP
> > programming, except that in userland you get a core dump and retry, in
> > the kernel you get an OOPS and an fsck and retry.
>
> Arrgh. As long as we have that "SMP makes locking harder" myth floating
> around we _will_ get problems. Kernel UP programming is not different
> from SMP one. It is multithreaded. And amount of genuine SMP bugs is
> very small compared to ones that had been there on UP since way back.
> And yes, programming threads is the same thing. No arguments here.

Hopefully in 2.5 we'll get the pre-emptive UP patch in that enables the SMP 
locks on UP and finally clean it all out by exposing the bugs to the main 
user base.

As for multi-threaded programming being hard, people are unfamiliar with it.  
Any programming is hard the first time.  And almost anybody's first attempt 
at it is going to suck.  (Dig out the linux kernel 0.02 sources sometime and 
compare them with what we have today.)

The more experience you get with it, the better you are.  Encouraging people 
to stay away from it rather than learn to do it RIGHT is the wrong attitude.  
People will figure out that using 1000 threads when you need 3 isn't the best 
way to go, that locking is an expense but failing to lock is worse, how to 
spot race conditions (the same old "security" mindset except you don't need a 
malicious third party to get bitten by it.)

And they'll learn it the way I did, and the way everybody does.  Do it wrong 
repeatedly.  Make every mistake there is, hard.  Get burned, rewrite it from 
scratch four times until you figure out how to design it right, spend long 
weekends looking for subtle little EVIL bugs you can't reproduce but which 
bite you the instant you stop looking for them, learn to play "hot potato" 
with volatile data you have to manipulate atomically...

Everybody starts as a bad programmer.  Some of us get it out of our systems 
when we're 12.  Others decide programming is lucrative when they're 35 and 
inflict their "hello world" opus upon their coworkers.  Me, I wrote a disk 
editor and a bunch of bbses in 5th and 6th grade back on the C64 that will 
never see the light of day.  And yes they sucked.  But I'm still proud of 
them.  And I wrote awful multithreaded code back on OS/2, and can now write 
decent threading code because I've learned a large number of things to avoid 
doing.  And I take proper care because I know how hard it is to FIND one of 
these if you do wind up doing it.  I've done it.  Once for two consecutive 
weeks on the same #%*(&#%& bug.  There's no WAY somebody's going to pick that 
sort of thing up in a programming course, or from "advice" from experienced 
people.  We never listen to advice from experienced programmers.  If we did 
we'd still be using Fortran for everything...

Rob

  parent reply	other threads:[~2001-06-21  1:11 UTC|newest]

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-19 14:53 accounting for threads Dan Kegel
2001-06-19 14:57 ` J . A . Magallon
2001-06-19 15:44 ` ognen
2001-06-19 15:58   ` Alan Cox quote? (was: Re: accounting for threads) Dan Kegel
2001-06-19 16:02     ` David S. Miller
2001-06-19 16:12       ` Padraig Brady
2001-06-19 19:10       ` bert hubert
2001-06-19 19:18         ` Alan Cox
2001-06-19 19:32           ` bert hubert
2001-06-19 19:43           ` Alexander Viro
2001-06-20 15:22           ` Jes Sorensen
2001-06-20 15:33             ` Alexander Viro
2001-06-20 15:59               ` Threads are processes that share more bert hubert
2001-06-20 16:15                 ` Alexander Viro
2001-06-20 18:48                 ` Martin Devera
2001-06-20 19:19                   ` Unknown PCI Net Device Greg Ingram
2001-06-20 22:53                     ` Andreas Dilger
2001-06-20 22:56                       ` Jeff Garzik
2001-06-20 23:00                       ` Alan Cox
2001-06-20 22:08                 ` Threads are processes that share more Stephen Satchell
2001-06-20 22:14                   ` ognen
2001-06-20 23:10                   ` J . A . Magallon
2001-06-24 23:47                     ` Larry McVoy
2001-06-25  2:23                       ` David S. Miller
2001-06-20 16:39               ` Alan Cox quote? (was: Re: accounting for threads) george anzinger
2001-06-20 18:35                 ` Alexander Viro
2001-06-21  4:11                   ` Rusty Russell
2001-06-21 23:37                     ` Alexander Viro
2001-06-21 23:55                       ` Alexander Viro
2001-06-22 14:53                         ` Richard Gooch
2001-06-20 16:40               ` Jes Sorensen
2001-06-20 20:09               ` Rob Landley [this message]
2001-06-20 19:05           ` Victor Yodaiken
2001-06-20 14:35         ` Mike Porter
2001-06-20 11:56           ` Rob Landley
2001-06-19 16:02     ` Ben Pfaff
2001-06-19 16:09     ` Larry McVoy
2001-06-19 16:26       ` Matthew Kirkwood
2001-06-19 16:52         ` Larry McVoy
2001-06-19 18:18           ` Rob Landley
2001-06-19 23:31           ` Timur Tabi
2001-06-20 11:52             ` Rob Landley
2001-06-20 21:20               ` Albert D. Cahalan
2001-06-20 18:12                 ` Rob Landley
2001-06-20 23:28                   ` Dan Podeanu
2001-06-21  0:42                   ` D. Stimits
2001-06-20 20:18                     ` Rob Landley
2001-06-21  1:57                       ` D. Stimits
2001-06-21 14:46                         ` Idea: Patches-from-linus mailing list? (Was Re: Alan Cox quote? (was: Re: accounting for threads)) Rob Landley
2001-06-21 14:02                   ` Alan Cox quote? (was: Re: accounting for threads) Jesse Pollard
2001-06-21 14:18                     ` Rob Landley
2001-06-22 14:46               ` Mikulas Patocka
2001-06-22 13:29                 ` Rob Landley
2001-06-24 21:41                   ` J . A . Magallon
2001-06-24 16:55                     ` Rob Landley
2001-06-24 22:30                       ` J . A . Magallon
2001-06-24 18:21                         ` Rob Landley
2001-06-25 13:48                           ` J . A . Magallon
2001-06-24 22:39                         ` Steven Walter
2001-06-24 23:50                         ` Larry McVoy
2001-06-24 20:24                           ` Rob Landley
2001-06-25  0:05                           ` J . A . Magallon
2001-06-25  0:32                             ` Gerhard Mack
2001-06-25  0:59                               ` Davide Libenzi
2001-06-25  2:18                         ` Galen Hancock
2001-06-20 14:59             ` Matthias Urlichs
2001-06-20 19:14           ` Victor Yodaiken
2001-06-20 21:01           ` RE:Why use threads ( was: Alan Cox quote?) David Schwartz
2001-06-20 21:26             ` Why " Victor Yodaiken
2001-06-20 22:18               ` David Schwartz
2001-06-20 22:41                 ` Davide Libenzi
2001-06-20 22:47                   ` [OT] " Jeff Garzik
2001-06-21  0:21                   ` David Schwartz
2001-06-21  0:56                     ` Davide Libenzi
2001-06-21  1:32                       ` David Schwartz
2001-06-21  2:22                         ` Davide Libenzi
2001-06-21  2:43                           ` David Schwartz
2001-06-21 16:10                             ` Davide Libenzi
2001-06-21 19:55                               ` Marco Colombo
2001-06-20 22:43                 ` Mike Castle
2001-06-21  1:43                   ` David Schwartz
2001-06-19 17:10       ` Alan Cox quote? (was: Re: accounting for threads) Matti Aarnio
2001-06-19 17:20       ` Mike Castle
2001-06-19 17:37         ` Larry McVoy
2001-06-19 17:45           ` Mike Castle
2001-06-19 18:08             ` Georg Nikodym
2001-06-19 19:38               ` Georg Nikodym
2001-06-19 19:56                 ` Michael Meissner
2001-06-19 17:53           ` Steve Underwood
2001-06-19 19:01             ` Alan Cox
2001-06-20  2:57               ` Michael Rothwell
2001-06-20  3:04                 ` Larry McVoy
2001-06-20  3:38                   ` John R Lenton
2001-06-20 10:21                   ` john slee
2001-06-20 18:08                     ` Larry McVoy
2001-06-20 16:21                   ` Davide Libenzi
2001-06-20  9:14                 ` Alan Cox
2001-06-22  2:36                   ` Michael Rothwell
2001-06-19 17:36       ` Jonathan Lundell
2001-06-19 17:41         ` Larry McVoy
2001-06-19 20:57         ` David S. Miller
2001-06-19 21:11           ` Jonathan Lundell
2001-06-19 21:15             ` David S. Miller
2001-06-19 23:56               ` Jonathan Lundell
2001-06-20  0:19                 ` Mike Castle
2001-06-20  0:28                   ` Larry McVoy
2001-06-20  1:30                     ` Ben Greear
2001-06-20  2:14                       ` Mike Castle
2001-06-20  9:00                     ` Henning P. Schmiedehausen
2001-06-20 11:25                       ` [OT] Threads, inelegance, and Java Aaron Lehmann
2001-06-20 11:25                         ` Rob Landley
2001-06-20 17:36                           ` Martin Dalecki
2001-06-20 19:27                             ` Mike Harrold
2001-06-20 17:46                               ` Rob Landley
2001-06-20 19:53                               ` Martin Dalecki
2001-06-20 17:53                                 ` Rob Landley
2001-06-21  7:45                                   ` Albert D. Cahalan
     [not found]                               ` <mailman.993067219.29993.linux-kernel2news@redhat.com>
2001-06-20 20:16                                 ` Pete Zaitcev
2001-06-20 22:05                                   ` Alan Cox
     [not found]                           ` <20010621000725.A24672@werewolf.able.es>
2001-06-20 19:15                             ` Rob Landley
2001-06-21  9:40                               ` Jonathan Morton
     [not found]                             ` <mailman.993083762.1429.linux-kernel2news@redhat.com>
2001-06-21  3:13                               ` Pete Zaitcev
2001-06-21 13:59                                 ` Rob Landley
2001-06-21 16:48                           ` Adam Sampson
2001-06-20 15:12                         ` Ben Greear
2001-06-20 15:44                           ` Russell Leighton
2001-06-20 16:32                             ` Davide Libenzi
2001-06-20 16:54                               ` Russell Leighton
2001-06-20 17:03                               ` Tony Hoyle
2001-06-20 15:10                                 ` Rob Landley
2001-06-20 20:23                                   ` Tony Hoyle
2001-06-21  8:12                                     ` Henning P. Schmiedehausen
2001-06-20 20:40                                   ` Richard B. Johnson
2001-06-20 20:48                                     ` Tony Hoyle
2001-06-20 21:00                                     ` Daniel Phillips
2001-06-20 21:06                                       ` Richard B. Johnson
2001-06-20 18:14                               ` Henning P. Schmiedehausen
2001-06-20 16:53                           ` Larry McVoy
2001-06-20 12:36                             ` Rob Landley
2001-06-20 21:14                           ` Aaron Lehmann
2001-06-20 18:09                         ` Henning P. Schmiedehausen
2001-06-20 19:05                         ` William T Wilson
2001-06-20  0:04           ` Alan Cox quote? (was: Re: accounting for threads) Chris Ricker
2001-06-20  0:59             ` Robert Love
2001-06-19 18:01       ` Alan Cox quote? Kai Henningsen
2001-06-19 18:49         ` Larry McVoy
2001-06-19 21:12           ` Richard Gooch
2001-06-19 22:50             ` Henning P. Schmiedehausen
2001-06-19 20:12         ` Henning P. Schmiedehausen
  -- strict thread matches above, loose matches on Subject: below --
2001-06-19 19:48 Alan Cox quote? (was: Re: accounting for threads) Joerg Pommnitz
2001-06-19 19:59 ` Alexander Viro
2001-06-20 19:36 Rok Papež
2001-06-20 20:16 ` Cort Dougan
2001-06-22  5:19 Chester Lott
     [not found] <Pine.GSO.4.21.0106211931180.209-100000@weyl.math.psu.edu.suse.lists.linux.kernel>
2001-06-22  7:33 ` Andi Kleen
2001-06-30  9:16 Jan Hudec

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=0106201609380G.00776@localhost.localdomain \
    --to=landley@webofficenow.com \
    --cc=ahu@ds9a.nl \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=jes@sunsite.dk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=viro@math.psu.edu \
    /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