9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: C H Forsyth <forsyth@vitanuova.com>
To: 9fans@cse.psu.edu
Cc: torvalds@osdl.org
Subject: Re: [9fans] Re: Threads: Sewing badges of honor onto a Kernel
Date: Fri, 27 Feb 2004 17:32:31 +0000	[thread overview]
Message-ID: <a90f0f9b149d4474bb1b5390579dc545@vitanuova.com> (raw)
In-Reply-To: <1077899988.21772.196.camel@zevon>

>>I said: user mode using it: show me the example!

my impression, and it's only that, is that relatively few user mode
applications use clone-for-threads at all on Linux, as yet.  thus,
it's a little unfair, or at least pointless, to ask Torvalds for
specific Linux user mode examples since there aren't many generally.
(i am curious to know what applications there are that do use it,
though.)

examples seem few partly because Unix programs aren't typically
structured as cooperating threads (however they cooperate).  that's
partly because the most obviously portable way to do it, pthreads, has
several awful or incomplete implementations.  you don't know what
you're going to get (or rather, you know only too well).  (i don't
refer here to the pthreads specification, just its implementation in
practice, because that's what is relevant here.) for instance, some in
the past tried to do it all with coroutines and an internal scheduler
that (say) intercepted operations on file descriptors and multiplexed
coroutines using select/poll.

>>One other detail: as far as I can see,
>>your examples all use shared memory as a cheap substitute
>>for message passing: why?

in practice, you often end up sharing something even for message passing
(for instance a Channel or a mailbox if those are your models), unless you
meant reading and writing pipe file descriptors, in which case the sharing
(if it's a pipe) is tucked away inside the kernel but it's still there.

>>how does a thread identify who it is?  when we were porting inferno to
>>linux (back in 1996; things have likely changed) we resorted to using
>>unused user-visible MMU bits to store enough state to hold on with our
>>fingernails and claw back to private storage. another option we
>>considered was playing with magic address bits in the sp.

inferno on linux currently conditions the stack and sp as previously discussed,
not least because the place used by the original scheme wasn't any longer visible.
that does require machine-specific code to access the sp, although that's
in a linux-386-dependent include file.  fortunately clone accepts the stack
pointer for the new process (although that's machine-specific as to whether
it's top or bottom), so there's no need for assembly-language to bounce
to the new stack (as there was in FreeBSD for a few years, until they extended
the rfork interface).



  parent reply	other threads:[~2004-02-27 17:32 UTC|newest]

Thread overview: 203+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-27  4:45 [9fans] " dbailey27
2004-02-27  5:05 ` Scott Schwartz
2004-02-27  5:06 ` andrey mirtchovski
2004-02-27  5:05   ` dbailey27
2004-02-27  5:26     ` Rob Pike
2004-02-27  5:37       ` dbailey27
2004-02-27  5:47         ` ron minnich
2004-02-27  7:43           ` boyd, rounin
2004-02-27  5:54         ` Rob Pike
2004-02-27  6:01           ` dbailey27
2004-02-29 21:14             ` boyd, rounin
2004-03-01  4:40               ` Kenji Okamoto
2004-02-27  5:06   ` dbailey27
2004-02-27  5:28 ` Rob Pike
2004-02-27  6:19   ` Scott Schwartz
2004-02-28  9:38   ` Bruce Ellis
2004-02-28 10:10     ` Charles Forsyth
2004-02-28 10:28       ` Bruce Ellis
2004-02-28 10:11     ` [9fans] limbo? David Tolpin
2004-02-28 10:22       ` Geoff Collyer
2004-02-28 19:27       ` Charles Forsyth
2004-02-28 21:16       ` Russ Cox
2004-02-28 13:28     ` [9fans] Threads: Sewing badges of honor onto a Kernel boyd, rounin
2004-02-29 20:59     ` boyd, rounin
2004-02-27  5:43 ` ron minnich
2004-02-27  5:50   ` George Michaelson
2004-02-27  5:59     ` ron minnich
2004-02-27  6:07       ` George Michaelson
2004-02-27  7:47       ` boyd, rounin
2004-02-27  6:20 ` [9fans] " Linus Torvalds
2004-02-27  6:31   ` dbailey27
2004-02-27  6:49     ` Linus Torvalds
2004-02-27  6:48       ` dbailey27
2004-02-27  7:04         ` Linus Torvalds
2004-02-27  7:06           ` dbailey27
2004-02-27  7:30             ` a
2004-02-27  7:49               ` dbailey27
2004-02-27  7:39             ` Lucio De Re
2004-02-27  7:57               ` Linus Torvalds
2004-02-27  8:00                 ` Rob Pike
2004-02-27  8:05                 ` Lucio De Re
2004-02-27  8:06                 ` boyd, rounin
2004-02-27  7:47             ` Linus Torvalds
2004-02-27  7:46               ` dbailey27
2004-02-27  8:08                 ` Linus Torvalds
2004-02-27  8:04                   ` dbailey27
2004-02-27  8:19                     ` Geoff Collyer
2004-02-27 15:28                       ` Rob Pike
2004-02-27 16:57                         ` Linus Torvalds
2004-02-27  8:11                   ` Lucio De Re
2004-02-27  8:17                     ` Rob Pike
2004-02-27  8:31                       ` Lucio De Re
2004-02-27  9:46                         ` Linus Torvalds
2004-02-27  8:44                           ` boyd, rounin
2004-02-27 10:00                             ` Linus Torvalds
2004-02-27  9:52                           ` Lucio De Re
2004-02-27 10:00                             ` Charles Forsyth
2004-02-27 10:07                               ` Lucio De Re
2004-02-27 10:14                                 ` Charles Forsyth
2004-02-27 10:24                                   ` Lucio De Re
2004-02-27 11:40                                     ` C H Forsyth
2004-02-28  9:58                               ` Bruce Ellis
2004-02-27 10:11                             ` Linus Torvalds
2004-02-27 10:13                               ` Lucio De Re
2004-02-27 10:36                                 ` Linus Torvalds
2004-02-27 19:07                   ` Donald Brownlee
2004-02-27  7:47               ` Fco.J.Ballesteros
2004-02-27  8:04               ` boyd, rounin
2004-02-29 21:17             ` boyd, rounin
2004-02-27  7:12           ` Rob Pike
2004-02-27  7:17             ` Charles Forsyth
2004-02-27  8:01               ` boyd, rounin
2004-02-27  8:06             ` Scott Schwartz
2004-02-27  8:15               ` Rob Pike
2004-02-27  7:06         ` Lucio De Re
2004-02-27  7:53         ` boyd, rounin
2004-02-27 12:23       ` Dave Lukes
2004-02-27 16:08         ` Linus Torvalds
2004-02-27 16:39           ` Dave Lukes
2004-02-27 17:05             ` Linus Torvalds
2004-02-27 17:03               ` Fco.J.Ballesteros
2004-02-27 17:50               ` Dave Lukes
2004-02-27 18:26                 ` Linus Torvalds
2004-02-27 18:27                   ` matt
2004-02-27 18:39                     ` andrey mirtchovski
2004-02-27 23:39                   ` boyd, rounin
2004-03-01  8:44                     ` Fco.J.Ballesteros
2004-03-01  8:48                       ` Fco.J.Ballesteros
2004-03-01  8:59                         ` Lucio De Re
2004-03-01  9:04                           ` Fco.J.Ballesteros
2004-03-01  9:16                             ` Kenji Okamoto
2004-03-01  9:19                               ` Kenji Okamoto
2004-03-01 15:47                           ` ron minnich
2004-03-01 16:23                             ` lucio
2004-03-01 18:04                               ` viro
2004-03-02  9:37                               ` Douglas A. Gwyn
2004-03-02 10:16                                 ` lucio
2004-03-03  1:36                             ` Kenji Okamoto
2004-03-02  1:40                       ` rob pike, esq.
2004-02-27 23:20               ` boyd, rounin
2004-03-01 10:34               ` Bengt Kleberg
2004-03-01 14:40                 ` Russ Cox
2004-03-01 15:17                   ` boyd
2004-03-02  9:42                   ` Bengt Kleberg
2004-03-02  9:53                     ` Fco.J.Ballesteros
2004-03-02 14:51                     ` ron minnich
2004-03-03  9:33                       ` Bengt Kleberg
2004-03-03 12:59                         ` ron minnich
2004-03-03 13:10                           ` Fco.J.Ballesteros
2004-03-03 13:21                             ` ron minnich
2004-03-04 10:00                               ` Yi Li
2004-03-04 11:22                                 ` Fco.J.Ballesteros
2004-03-05 15:17                                   ` Yi Li
2004-03-03 13:38                             ` rog
2004-03-03 17:57                             ` a
2004-03-01 15:56                 ` ron minnich
2004-03-02  9:42                   ` Bengt Kleberg
2004-02-27 17:32             ` C H Forsyth [this message]
2004-02-29 21:10               ` boyd, rounin
2004-03-01  8:19                 ` Charles Forsyth
2004-03-01  8:46                   ` dbailey27
2004-03-01  9:34                     ` David Tolpin
2004-03-01 10:02                       ` Charles Forsyth
2004-03-01 10:12                         ` David Tolpin
2004-03-01 10:40                       ` Charles Forsyth
2004-03-01 11:56                         ` David Tolpin
2004-03-01 17:29                           ` rog
2004-03-02  6:38                         ` 9nut
2004-03-01 19:02                       ` Taj Khattra
2004-03-01 19:15                         ` David Tolpin
2004-03-01 19:22                           ` Joel Salomon
2004-03-01 19:43                             ` David Tolpin
2004-03-01 21:07                               ` Derek Fawcus
2004-03-01 21:12                                 ` David Tolpin
2004-03-02  2:46                                   ` boyd, rounin
2004-03-02  6:02                                     ` David Tolpin
2004-03-02 12:31                                       ` Bruce Ellis
2004-03-02 18:46                                         ` boyd, rounin
2004-03-02 12:19                                   ` Dick Davies
2004-03-02 18:40                                     ` boyd, rounin
2004-03-04  3:52                                     ` Martin C.Atkins
2004-03-04  9:07                                       ` Bruce Ellis
2004-03-01 21:15                                 ` Charles Forsyth
2004-03-01 21:20                                 ` rog
2004-03-02  2:48                                   ` Joel Salomon
2004-03-03  3:58                           ` Martin C.Atkins
2004-03-01  9:36                   ` Geoff Collyer
2004-03-01 12:06                     ` boyd
2004-03-01 14:55                       ` David Presotto
2004-03-01 12:18                   ` boyd
2004-03-01 13:29                     ` Fco.J.Ballesteros
2004-03-01 13:33                       ` lucio
2004-03-01 13:55                       ` boyd
2004-03-02  4:13                   ` Taj Khattra
2004-03-02  4:34                     ` Roman Shaposhnick
2004-03-02  4:47                       ` ron minnich
2004-03-02  5:53                         ` Roman Shaposhnick
2004-03-02  5:58                           ` ron minnich
2004-03-02 15:49                         ` boyd, rounin
2004-03-02  7:00                     ` rob pike, esq.
2004-03-02 20:58                       ` Andrew Simmons
2004-03-02 21:23                         ` boyd, rounin
2004-03-03  7:05                           ` Anastasopoulos S
2004-03-03  5:11                         ` Kenji Okamoto
2004-03-03  5:26                           ` boyd, rounin
2004-03-03  9:49                             ` Bruce Ellis
2004-03-03 12:41                               ` boyd, rounin
2004-03-03  9:42                           ` Bruce Ellis
2004-03-03  7:55                         ` 9nut
2004-02-27  6:59   ` Donald Brownlee
2004-02-27  7:49   ` boyd, rounin
2004-02-27 10:11 ` [9fans] " Douglas A. Gwyn
2004-02-28  5:20   ` Martin C.Atkins
2004-02-28  9:44     ` Nigel Roles
2004-02-28 11:08       ` viro
2004-02-28 13:40         ` Nigel Roles
2004-02-28 13:36           ` boyd, rounin
2004-02-28 14:14           ` viro
2004-02-28 18:16             ` Nigel Roles
2004-02-28 18:53               ` viro
2004-02-28 19:44                 ` Charles Forsyth
2004-02-28 20:13                   ` Rob Pike
2004-03-01 11:50                   ` viro
2004-03-01 11:49                     ` dbailey27
2004-02-28 13:32       ` boyd, rounin
2004-03-01 10:35         ` Douglas A. Gwyn
2004-03-01 11:01           ` Geoff Collyer
2004-03-01 19:13           ` Joel Salomon
2004-03-01 10:35       ` Douglas A. Gwyn
2004-02-28 13:41     ` David Presotto
     [not found] <20040227081500.14366.qmail@g.galapagos.bx.psu.edu>
2004-02-27  8:58 ` [9fans] " Linus Torvalds
     [not found] <a7ec3985c6aeabd43949005aa6af0f67@collyer.net>
2004-02-27  9:30 ` Linus Torvalds
2004-02-27  8:33   ` boyd, rounin
2004-02-27  9:52     ` Linus Torvalds
2004-02-27 12:14       ` Fco.J.Ballesteros
2004-03-02  4:48   ` Martin C.Atkins
2004-03-02  4:56     ` ron minnich
2004-03-02  9:42       ` Bengt Kleberg
     [not found] <dbcf45ba64ac8a77cd6a3dc6ba63b94b@plan9.escet.urjc.es>
2004-02-27 17:26 ` Linus Torvalds
2004-02-27 23:22   ` boyd, rounin
     [not found] <749601c045a56e4f77835f30907e255b@vitanuova.com>
2004-02-27 17:43 ` Linus Torvalds
     [not found] <f62d09b11d1f097b3f4b5f6b70b65ea5@proxima.alt.za>
2004-03-02  6:55 ` David Tolpin
2004-03-04  6:43 Andrew Simmons

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=a90f0f9b149d4474bb1b5390579dc545@vitanuova.com \
    --to=forsyth@vitanuova.com \
    --cc=9fans@cse.psu.edu \
    --cc=torvalds@osdl.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;
as well as URLs for NNTP newsgroup(s).