From: Bill Huey (Hui) <billh@gnuppy.monkey.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: Ulrich Drepper <drepper@redhat.com>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [ANNOUNCE] Native POSIX Thread Library 0.1
Date: Fri, 20 Sep 2002 14:50:29 -0700 [thread overview]
Message-ID: <20020920215029.GB1527@gnuppy.monkey.org> (raw)
In-Reply-To: <Pine.LNX.4.44.0209201658240.5862-100000@localhost.localdomain>
On Fri, Sep 20, 2002 at 06:20:10PM +0200, Ingo Molnar wrote:
> the user contexts for active but preempted threads are stored in the
> kernel stack. To support GC safepoints we need fast access to the current
> state of every not voluntarily preempted thread. This is admittedly easier
> if threads are abstraced in user-space [in which case the context is
> stored in user-space], but the question is, what is more important, an
> occasional pass of garbage collection, or the cost of doing IO?
The GC is generational and incremental, so it must deal with a lot of short
term objects that need to be collected. GC performance is a sore point in the
JVM (language runtimes in general) and having slow access to this is potentially
crippling for high load machines. The HotSpot/JVM is a bit overzealous with
safepoints which opens this area to optimization, but the problem exists now.
> until then it can be done via sending SIGSTOP/SIGCONT to the process PID
> from the garbage collection thread, which should stop all threads pretty
> efficiently in 2.5.35+ kernels. Then all threads that are not voluntarily
> sleeping can be fixed up via ptrace calls.
It's better to have an explict pthread_suspend_[thread,all]() function
since this kind of thing is becoming more and more common in thread
heavy language runtimes. The Posix thread spec was build without regard
to this and it's definitely become an important issues these days.
> and it can be further improved by tracking preempted user contexts in the
> scheduler and giving fast access to them via a syscall. (all voluntarily
> sleeping contexts can properly prepare their suspension state in
> userspace.) So it's possible to do it efficiently.
>
> how frequently does the GC thread run?
Don't remember off hand, but it's like to be several times a second which is
often enough to be a problem especially on large systems with high load.
The JVM with incremental GC is being targetted for media oriented tasks
using the new NIO, 3d library, etc... slowness in safepoints would cripple it
for these tasks. It's a critical item and not easily address by the current
1:1 model.
bill
next prev parent reply other threads:[~2002-09-20 21:45 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-09-20 0:41 Ulrich Drepper
2002-09-20 0:51 ` William Lee Irwin III
2002-09-20 1:35 ` Ulrich Drepper
2002-09-20 1:42 ` William Lee Irwin III
2002-09-20 1:56 ` Larry McVoy
2002-09-20 2:01 ` Rik van Riel
2002-09-20 2:15 ` Benjamin LaHaise
2002-09-20 2:40 ` Dave Hansen
2002-09-20 2:47 ` William Lee Irwin III
2002-09-20 2:17 ` Larry McVoy
2002-09-20 2:24 ` Rik van Riel
2002-09-20 2:32 ` Ulrich Drepper
2002-09-20 6:01 ` Linus Torvalds
2002-09-20 8:02 ` Ingo Molnar
2002-09-20 2:23 ` Anton Blanchard
2002-09-20 7:52 ` 100,000 threads? [was: [ANNOUNCE] Native POSIX Thread Library 0.1] Ingo Molnar
2002-09-20 15:47 ` Bill Davidsen
2002-09-20 9:53 ` [ANNOUNCE] Native POSIX Thread Library 0.1 Padraig Brady
2002-09-20 13:28 ` Robert Love
2002-09-20 16:01 ` Bill Davidsen
2002-09-20 9:54 ` Adrian Bunk
2002-09-20 10:53 ` Ingo Molnar
2002-09-20 19:04 ` Ulrich Drepper
2002-09-20 23:06 ` J.A. Magallon
2002-09-20 23:33 ` Ulrich Drepper
2002-09-20 23:42 ` J.A. Magallon
2002-09-20 10:20 ` Bill Huey
2002-09-20 10:47 ` Ingo Molnar
2002-09-20 12:06 ` Bill Huey
2002-09-20 16:20 ` Ingo Molnar
2002-09-20 21:50 ` Bill Huey [this message]
2002-09-20 22:30 ` dean gaudet
2002-09-20 23:11 ` Bill Huey
2002-09-21 3:38 ` dean gaudet
2002-09-21 4:01 ` Bill Huey
2002-09-21 5:06 ` Ingo Molnar
2002-09-20 23:45 ` Bill Huey
2002-09-21 4:58 ` Ingo Molnar
2002-09-22 2:51 ` Bill Huey
2002-09-21 4:48 ` Ingo Molnar
2002-09-22 1:38 ` Bill Huey
2002-09-22 13:38 ` Bill Davidsen
2002-09-22 18:41 ` Eric W. Biederman
2002-09-22 22:13 ` dean gaudet
2002-09-26 17:21 ` Alan Cox
2002-09-23 0:11 ` Bill Huey
2002-09-24 16:07 ` Eric W. Biederman
2002-09-24 23:21 ` Bill Huey
2002-09-25 3:06 ` Eric W. Biederman
2002-09-23 21:12 ` Bill Huey
2002-09-20 10:35 ` Luca Barbieri
2002-09-20 11:19 ` Ingo Molnar
2002-09-20 18:40 ` Roland McGrath
2002-09-20 21:21 ` Luca Barbieri
2002-09-20 12:37 ` jlnance
2002-09-20 16:42 ` Ingo Molnar
2002-09-24 0:40 ` Rusty Russell
2002-09-24 5:47 ` Ingo Molnar
2002-09-24 6:15 ` Rusty Russell
2002-09-20 15:43 ` Bill Davidsen
2002-09-20 16:15 ` Jakub Jelinek
2002-09-20 17:16 ` Bill Davidsen
2002-09-20 7:46 Joerg Pommnitz
2002-09-22 18:55 Peter Waechtler
2002-09-22 21:32 ` Larry McVoy
2002-09-23 10:05 ` Bill Davidsen
2002-09-23 11:55 ` Peter Waechtler
2002-09-23 19:14 ` Bill Davidsen
2002-09-29 23:26 ` Buddy Lumpkin
2002-09-30 14:54 ` Corey Minyard
2002-09-23 15:30 ` Larry McVoy
2002-09-23 19:44 ` Olivier Galibert
2002-09-23 19:48 ` Bill Davidsen
2002-09-23 20:32 ` Ingo Molnar
2002-09-24 0:03 ` Andy Isaacson
2002-09-24 0:10 ` Jeff Garzik
2002-09-24 0:14 ` Andy Isaacson
2002-09-24 5:53 ` Ingo Molnar
2002-09-24 20:34 ` David Schwartz
2002-09-24 7:12 ` Thunder from the hill
2002-09-24 7:30 ` Ingo Molnar
2002-09-23 22:35 ` Mark Mielke
2002-09-23 19:59 ` Peter Waechtler
2002-09-23 20:36 ` Ingo Molnar
2002-09-23 21:08 ` Peter Wächtler
2002-09-23 22:44 ` Mark Mielke
2002-09-23 23:01 ` Bill Huey
2002-09-23 23:11 ` Mark Mielke
2002-09-24 0:21 ` Bill Huey
2002-09-24 3:20 ` Mark Mielke
2002-09-23 23:57 ` Andy Isaacson
2002-09-24 18:10 ` Christoph Hellwig
2002-09-23 21:32 ` Bill Huey
2002-09-23 21:41 ` dean gaudet
2002-09-23 22:10 ` Bill Huey
2002-09-23 22:56 ` Mark Mielke
2002-09-24 10:02 ` Nikita Danilov
2002-09-23 21:22 ` Bill Huey
2002-09-23 21:03 ` Bill Huey
2002-09-24 12:03 ` Michael Sinz
2002-09-24 13:40 ` Peter Svensson
2002-09-24 14:20 ` Michael Sinz
2002-09-24 20:19 ` David Schwartz
2002-09-24 21:10 ` Chris Friesen
2002-09-24 21:22 ` Rik van Riel
2002-09-24 21:35 ` Roberto Peon
2002-09-24 21:35 ` Chris Friesen
2002-09-25 19:02 ` David Schwartz
2002-09-24 23:16 ` Peter Waechtler
2002-09-24 23:23 ` Rik van Riel
2002-09-25 19:05 ` David Schwartz
2002-09-23 16:36 Matthias Urlichs
[not found] <987738530@toto.iv>
2002-09-24 2:48 ` Peter Chubb
2002-09-24 3:37 ` Mark Mielke
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=20020920215029.GB1527@gnuppy.monkey.org \
--to=billh@gnuppy.monkey.org \
--cc=drepper@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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
all inboxes | Powered by JetHome®