From: davidsen@tmr.com (bill davidsen)
To: linux-kernel@vger.kernel.org
Subject: Re: Who changed /proc/<pid>/ in 2.6.0-test5-bk9?
Date: 9 Oct 2003 17:59:36 GMT [thread overview]
Message-ID: <bm47m8$56n$1@gatekeeper.tmr.com> (raw)
In-Reply-To: !~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAA2ZSI4XW+fk25FhAf9BqjtMKAAAAQAAAAwtz+A6aJAkeufXSGK2GIiwEAAAAA@casabyte.com
In article <!~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAA2ZSI4XW+fk25FhAf9BqjtMKAAAAQAAAAwtz+A6aJAkeufXSGK2GIiwEAAAAA@casabyte.com>,
Robert White <rwhite@casabyte.com> wrote:
|
|
| -----Original Message-----
| From: linux-kernel-owner@vger.kernel.org
| [mailto:linux-kernel-owner@vger.kernel.org] On Behalf Of Linus Torvalds
|
|
| > And when you have _that_ kind of model (with assymetric specialized
| > threads), it makes perfect sense for the threads to have independent file
| > descriptors.
|
| (Preface disclaimer) I don't "just use pthreads" as the other half of my
| life is embedded work using RTXC (od nausium 8-) and on occasion windows
| nonsense. I've also used the LWP features of solaris without the pthread
| library. I experience the differences between the posix thread and the
| lightweight process paradigms daily.
|
| What is gained by having the independent file descriptor context that would
| be *broken* for lack of that independence?
To start with, if I have a server with 1400 clients, instead of 1400
threads with 1400(+overhead) fd's each, I have 1400 threads with
1(+overhead) fd's. While memory waste is "broken" the way you mean, it
is significant.
And since one thread can close a file which it's done with it, without
affecting all the other threads, or open a file without forcing it into
all other threads, so system overhead is reduced there as well.
| Even in a game or for very specialized threads that don't talk much if at
| all, can you give me one example where two threads simply *must* have the
| same file descriptor number active for two separate files at the same time?
|
| That is, where this is the truth table for FDs:
The truth table is "if you don't like the way it works don't use it."
Since this only affects programs which choose to use it you can pretend
it isn't there.
| So CLONE_THREAD is supposed to create (essentially) the conjoined LWP
| environment in as much as you are creating a "thread within a process", but
| you want to decouple "file" from "process" to separately and multiply
| re-couple it with each "thread". Yet further, you want to leave "file"
| bound to "process" if there is only one thread. That is an expensive
| change, especially when it is apparently being done case-by-case. You aren't
| unilaterally redefining "process" to be a set of one or more threads, if you
| were /proc/<pid>/fd/* would have to disappear in favor of
| /proc/<pid>/<tid>/fd/* and /proc/self would mutate into a set of dynamic
| references, some to /proc/<pid>/<tid>/whatever and some to just
| /proc/<pid>/whatever.
I have already suggested that traditional threads just have their fd be
a symlink to the main process fd, making it easy to identify, and for
non-fd-sharing threads have the fd entries which refer to inherited fd's
also be symlinks. Others have independently made the same or similar
suggestions. What you suggest would seem to break existing software
which expects an fd directory in /proc/<pid>.
--
bill davidsen <davidsen@tmr.com>
CTO, TMR Associates, Inc
Doing interesting things with little computers since 1979.
next prev parent reply other threads:[~2003-10-09 18:09 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-28 1:27 Linux 2.6.0-test6 Linus Torvalds
2003-09-28 7:03 ` Con Kolivas
2003-09-28 10:02 ` Rob Landley
2003-09-29 4:55 ` Nick Piggin
2003-09-29 7:35 ` Rob Landley
2003-09-29 16:55 ` Ed Sweetman
2003-09-30 0:03 ` Nick Piggin
2003-10-02 0:41 ` Pedro Larroy
2003-10-02 3:05 ` Nick Piggin
2003-10-02 19:07 ` Pedro Larroy
2003-10-03 0:07 ` Nick Piggin
2003-10-03 19:34 ` Pedro Larroy
2003-09-29 18:45 ` bill davidsen
2003-09-30 1:12 ` Nick Piggin
2003-10-01 21:13 ` bill davidsen
2003-10-02 2:45 ` Nick Piggin
2003-09-28 8:26 ` Markus Hästbacka
2003-09-28 10:54 ` Jeff Garzik
2003-09-28 8:59 ` keyboard repeat / sound [was Re: Linux 2.6.0-test6] Roger Luethi
2003-09-29 15:16 ` Vojtech Pavlik
2003-09-30 7:50 ` Paul
2003-09-30 12:51 ` Vojtech Pavlik
2003-09-30 13:21 ` Aristeu Sergio Rozanski Filho
2003-09-30 13:44 ` Vojtech Pavlik
2003-09-30 14:05 ` Aristeu Sergio Rozanski Filho
2003-09-30 14:16 ` Vojtech Pavlik
2003-10-01 23:51 ` Aristeu Sergio Rozanski Filho
2003-09-30 18:16 ` Mark W. Alexander
2003-10-01 23:52 ` Aristeu Sergio Rozanski Filho
2003-09-28 10:09 ` Linux 2.6.0-test6 Rafał 'rmrmg' Roszak
2003-09-28 11:05 ` Andreas Jellinghaus
2003-09-28 12:34 ` Dave Jones
2003-09-28 16:12 ` Andreas Jellinghaus
2003-09-28 17:51 ` Andries Brouwer
2003-09-28 16:42 ` Ivan Gyurdiev
2003-09-28 20:26 ` [patch] 2.6.0-test6: correct hdlcdrv.h prototypes Adrian Bunk
2003-09-29 13:23 ` Linux 2.6.0-test6 Florin Iucha
2003-09-29 13:55 ` Muli Ben-Yehuda
2003-09-29 14:01 ` Jaroslav Kysela
2003-09-29 14:18 ` Muli Ben-Yehuda
2003-09-29 19:04 ` bill davidsen
2003-09-29 14:30 ` Takashi Iwai
2003-09-29 13:58 ` Jaroslav Kysela
2003-09-29 16:30 ` Linux 2.6.0-test6 (compile statistics) John Cherry
2003-09-29 17:44 ` Jesper Juhl
2003-10-06 20:39 ` John Cherry
2003-10-01 8:58 ` Who changed /proc/<pid>/ in 2.6.0-test5-bk9? Mikael Pettersson
2003-10-01 11:52 ` John Levon
2003-10-01 20:21 ` bill davidsen
2003-10-02 1:00 ` John Levon
2003-10-06 3:01 ` bill davidsen
2003-10-01 15:11 ` Linus Torvalds
2003-10-01 20:58 ` bill davidsen
2003-10-01 23:42 ` Albert Cahalan
2003-10-02 0:38 ` Linus Torvalds
2003-10-02 0:57 ` Albert Cahalan
2003-10-02 3:35 ` Ulrich Drepper
2003-10-02 4:12 ` Albert Cahalan
2003-10-02 4:58 ` Ulrich Drepper
2003-10-02 13:48 ` Albert Cahalan
2003-10-02 17:30 ` Ulrich Drepper
2003-10-03 0:03 ` Albert Cahalan
2003-10-03 0:40 ` Linus Torvalds
2003-10-03 2:53 ` Jamie Lokier
2003-10-06 4:54 ` Mike Fedyk
2003-10-06 2:52 ` bill davidsen
2003-10-07 23:08 ` Robert White
2003-10-07 22:46 ` Robert White
2003-10-07 23:25 ` Linus Torvalds
2003-10-08 0:41 ` Robert White
2003-10-08 0:54 ` Linus Torvalds
2003-10-08 2:31 ` Robert White
2003-10-08 2:39 ` David Lang
2003-10-08 2:59 ` Robert White
2003-10-09 18:25 ` bill davidsen
2003-10-08 2:47 ` Who changed /proc/<pid>/ in 2.6.0-test5-bk9? (SIGPIPE?) Robert White
2003-10-08 2:57 ` Linus Torvalds
2003-10-08 4:01 ` Robert White
2003-10-08 4:08 ` Linus Torvalds
2003-10-08 10:47 ` Who changed /proc/<pid>/ in 2.6.0-test5-bk9? bert hubert
2003-10-08 19:12 ` Ulrich Drepper
2003-10-09 18:43 ` bill davidsen
2003-10-08 21:54 ` Robert White
2003-10-09 18:12 ` bill davidsen
2003-10-10 4:39 ` Jamie Lokier
2003-10-09 17:59 ` bill davidsen [this message]
2003-10-11 3:02 ` Here is a case that proves my previous position wrong regurading CLONE_THREAD and CLONE_FILES Robert White
2003-10-11 3:48 ` viro
2003-10-12 11:41 ` Jamie Lokier
2003-10-02 8:46 ` Who changed /proc/<pid>/ in 2.6.0-test5-bk9? Miquel van Smoorenburg
2003-10-02 22:35 ` Jamie Lokier
2003-10-02 23:43 ` Miquel van Smoorenburg
2003-10-06 2:57 ` bill davidsen
2003-10-02 3:38 ` Ulrich Drepper
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='bm47m8$56n$1@gatekeeper.tmr.com' \
--to=davidsen@tmr.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