All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zack Weinberg" <zack@codesourcery.com>
To: Jamie Lokier <jamie@shareable.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Garbage collectors and VM
Date: Fri, 04 Jul 2003 09:13:33 -0700	[thread overview]
Message-ID: <87d6gqs21e.fsf@egil.codesourcery.com> (raw)
In-Reply-To: <20030704120732.GD22105@mail.jlokier.co.uk> (Jamie Lokier's message of "Fri, 4 Jul 2003 13:07:32 +0100")

Jamie Lokier <jamie@shareable.org> writes:

> Zack Weinberg wrote:
>> Thus, a new pseudo-device, with the semantics:
>
> I like it!  I'd use it, too.

Thanks.  Implementing it is way beyond me, but it's good to hear that
other people might find it useful.

>>  * Reading from the descriptor produces a list of user-space pointers
>>    to all the pages that have been reset to read-write since the last
>>    read.
>
> Would it be appropriate to have a limit on the number of pages which
> become writable before a signal is delivered instead of continuing to
> make more pages writable?  Just like the kernel, sometimes its good to
> limit the number of dirty pages in flight in userspace, too.

Maybe.  The GC I wanted to use this with is rather constrained in some
ways - it can't walk the stack, for instance - so it can only collect
when the mutator tells it it's okay.  I suppose it could just copy the
list to its own buffer and continue, which saves the kernel from
having to store a potentially very large list.

>>  * I never decided what to do if the program forks.  The application I
>>    personally care about doesn't do that, but for a general GC like
>>    Boehm it matters.
>
> It should clone the state, obviously, and COW should be invisible to
> the application :)

Well, yeah, that would be the cleanest thing, but it does require two
dirty bits.

> Btw, are these pages swappable?

They certainly ought to be.

> On a different but related topic, it would be most cool if there were
> a way for the kernel to request memory to be released from a userspace
> GC, prior to swapping the GC's memory.  Currently the best strategy is
> for each GC to guess how much of the machine's RAM it can use, however
> this is not a good strategy if you wish to launch multiple programs
> each of which has its own GC, nor is it a particularly good balance
> between GC application pages and other page-cache pages.

Again, this is not particularly useful to me since the collector can't
collect at arbitrary points - but it would be a good thing to have for
a general GC, and maybe I ought to be using a general GC anyway...

zw

  reply	other threads:[~2003-07-04 15:59 UTC|newest]

Thread overview: 151+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-01  1:39 What to expect with the 2.6 VM Mel Gorman
2003-07-01  1:39 ` Mel Gorman
2003-06-30 17:43 ` Daniel Phillips
2003-06-30 17:43   ` Daniel Phillips
2003-07-01 20:10   ` Martin J. Bligh
2003-07-01 20:10     ` Martin J. Bligh
2003-07-01 21:41   ` Mel Gorman
2003-07-01 21:41     ` Mel Gorman
2003-07-01 21:51     ` Davide Libenzi
2003-07-01 21:51       ` Davide Libenzi
2003-07-01 21:58     ` Martin J. Bligh
2003-07-01 21:58       ` Martin J. Bligh
2003-07-02  9:01       ` Mel Gorman
2003-07-02  9:01         ` Mel Gorman
2003-07-01  2:25 ` Andrea Arcangeli
2003-07-01  2:25   ` Andrea Arcangeli
2003-07-01  3:02   ` Andrew Morton
2003-07-01  3:02     ` Andrew Morton
2003-07-01  3:22     ` Andrea Arcangeli
2003-07-01  3:22       ` Andrea Arcangeli
2003-07-01  3:25       ` Andrea Arcangeli
2003-07-01  3:25         ` Andrea Arcangeli
2003-07-01  3:29       ` Rik van Riel
2003-07-01  3:29         ` Rik van Riel
2003-07-01  4:04         ` Andrea Arcangeli
2003-07-01  4:04           ` Andrea Arcangeli
2003-07-01 11:01     ` Hugh Dickins
2003-07-01 11:01       ` Hugh Dickins
2003-07-01  3:25   ` William Lee Irwin III
2003-07-01  3:25     ` William Lee Irwin III
2003-07-01  4:39     ` Andrea Arcangeli
2003-07-01  4:39       ` Andrea Arcangeli
2003-07-01  6:33       ` William Lee Irwin III
2003-07-01  6:33         ` William Lee Irwin III
2003-07-01  7:49         ` Andrea Arcangeli
2003-07-01  7:49           ` Andrea Arcangeli
2003-07-01  8:59           ` William Lee Irwin III
2003-07-01  8:59             ` William Lee Irwin III
2003-07-01  9:27             ` Andrea Arcangeli
2003-07-01  9:27               ` Andrea Arcangeli
2003-07-01 12:09               ` severe problem of linux 2.4.21 usb tu guangxiu
2003-07-01 14:24             ` What to expect with the 2.6 VM Martin J. Bligh
2003-07-01 14:24               ` Martin J. Bligh
2003-07-01 16:22               ` William Lee Irwin III
2003-07-01 16:22                 ` William Lee Irwin III
2003-07-01 17:54                 ` Martin J. Bligh
2003-07-01 17:54                   ` Martin J. Bligh
2003-07-02  3:04                   ` Andrea Arcangeli
2003-07-02  3:04                     ` Andrea Arcangeli
2003-07-01 14:42           ` Martin J. Bligh
2003-07-01 21:45     ` Mel Gorman
2003-07-01 21:45       ` Mel Gorman
2003-07-01 22:06       ` Martin J. Bligh
2003-07-01 22:06         ` Martin J. Bligh
2003-07-01 21:46   ` Mel Gorman
2003-07-01 21:46     ` Mel Gorman
2003-07-02  3:08     ` Andrea Arcangeli
2003-07-02  3:08       ` Andrea Arcangeli
2003-07-02 15:57   ` Mel Gorman
2003-07-02 15:57     ` Mel Gorman
2003-07-02 17:11     ` Andrea Arcangeli
2003-07-02 17:11       ` Andrea Arcangeli
2003-07-02 17:10       ` Martin J. Bligh
2003-07-02 17:10         ` Martin J. Bligh
2003-07-02 17:47         ` Andrea Arcangeli
2003-07-02 17:47           ` Andrea Arcangeli
2003-07-02 17:52           ` Martin J. Bligh
2003-07-02 17:52             ` Martin J. Bligh
2003-07-02 18:13             ` Andrea Arcangeli
2003-07-02 18:13               ` Andrea Arcangeli
2003-07-02 18:05           ` Rik van Riel
2003-07-02 18:05             ` Rik van Riel
2003-07-02 20:05             ` Martin J. Bligh
2003-07-02 20:05               ` Martin J. Bligh
2003-07-02 21:40           ` William Lee Irwin III
2003-07-02 21:40             ` William Lee Irwin III
2003-07-02 21:48             ` Martin J. Bligh
2003-07-02 21:48               ` Martin J. Bligh
2003-07-02 22:14               ` William Lee Irwin III
2003-07-02 22:14                 ` William Lee Irwin III
2003-07-02 22:02             ` Andrea Arcangeli
2003-07-02 22:02               ` Andrea Arcangeli
2003-07-02 22:15               ` William Lee Irwin III
2003-07-02 22:15                 ` William Lee Irwin III
2003-07-02 22:26                 ` Andrea Arcangeli
2003-07-02 22:26                   ` Andrea Arcangeli
2003-07-02 23:11                   ` William Lee Irwin III
2003-07-02 23:11                     ` William Lee Irwin III
2003-07-02 23:30                     ` Andrea Arcangeli
2003-07-02 23:30                       ` Andrea Arcangeli
2003-07-02 23:55                       ` William Lee Irwin III
2003-07-02 23:55                         ` William Lee Irwin III
2003-07-03 11:31                         ` Andrea Arcangeli
2003-07-03 11:31                           ` Andrea Arcangeli
2003-07-03 11:46                           ` William Lee Irwin III
2003-07-03 11:46                             ` William Lee Irwin III
2003-07-03 12:58                             ` Andrea Arcangeli
2003-07-03 12:58                               ` Andrea Arcangeli
2003-07-03 13:06                               ` Rik van Riel
2003-07-03 13:06                                 ` Rik van Riel
2003-07-03 13:48                                 ` Andrea Arcangeli
2003-07-03 13:48                                   ` Andrea Arcangeli
2003-07-03 18:53                                 ` William Lee Irwin III
2003-07-03 18:53                                   ` William Lee Irwin III
2003-07-03 19:27                                   ` Andrea Arcangeli
2003-07-03 19:27                                     ` Andrea Arcangeli
2003-07-03 19:32                                     ` Rik van Riel
2003-07-03 19:32                                       ` Rik van Riel
2003-07-03 20:16                                     ` William Lee Irwin III
2003-07-03 20:16                                       ` William Lee Irwin III
2003-07-04  0:40                                       ` Andrea Arcangeli
2003-07-04  0:40                                         ` Andrea Arcangeli
2003-07-04  1:46                                         ` William Lee Irwin III
2003-07-04  1:46                                           ` William Lee Irwin III
2003-07-04  2:34                                           ` Andrea Arcangeli
2003-07-04  2:34                                             ` Andrea Arcangeli
2003-07-04  4:10                                             ` William Lee Irwin III
2003-07-04  4:10                                               ` William Lee Irwin III
2003-07-04  5:54                                               ` Andrea Arcangeli
2003-07-04  5:54                                                 ` Andrea Arcangeli
2003-07-04  8:15                                                 ` William Lee Irwin III
2003-07-04  8:15                                                   ` William Lee Irwin III
2003-07-04 23:44                                                   ` Andrea Arcangeli
2003-07-04 23:44                                                     ` Andrea Arcangeli
2003-07-05  0:05                                                     ` William Lee Irwin III
2003-07-05  0:05                                                       ` William Lee Irwin III
2003-07-05  0:08                                                       ` Andrea Arcangeli
2003-07-05  0:08                                                         ` Andrea Arcangeli
2003-07-03 18:48                               ` Jamie Lokier
2003-07-03 18:48                                 ` Jamie Lokier
2003-07-03 18:54                                 ` William Lee Irwin III
2003-07-03 18:54                                   ` William Lee Irwin III
2003-07-03 19:33                                   ` Andrea Arcangeli
2003-07-03 19:33                                     ` Andrea Arcangeli
2003-07-03 22:21                                     ` William Lee Irwin III
2003-07-03 22:21                                       ` William Lee Irwin III
2003-07-04  0:46                                       ` Andrea Arcangeli
2003-07-04  0:46                                         ` Andrea Arcangeli
2003-07-04  1:33                                         ` Jamie Lokier
2003-07-04  1:33                                           ` Jamie Lokier
2003-07-04  1:36                                         ` William Lee Irwin III
2003-07-04  1:36                                           ` William Lee Irwin III
2003-07-04  6:54                                 ` Garbage collectors and VM (was Re: What to expect with the 2.6 VM) Zack Weinberg
2003-07-04 12:07                                   ` Jamie Lokier
2003-07-04 16:13                                     ` Zack Weinberg [this message]
2003-07-03 19:06                           ` What to expect with the 2.6 VM Andrew Morton
2003-07-03 19:06                             ` Andrew Morton
2003-07-03 19:34                             ` Andrea Arcangeli
2003-07-03 19:34                               ` Andrea Arcangeli
2003-07-02 18:07         ` Rik van Riel
2003-07-02 18:07           ` Rik van Riel

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=87d6gqs21e.fsf@egil.codesourcery.com \
    --to=zack@codesourcery.com \
    --cc=jamie@shareable.org \
    --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 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.