From: Andrew Morton <akpm@linux-foundation.org>
To: Rik van Riel <riel@redhat.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
linux-mm <linux-mm@kvack.org>
Subject: Re: [PATCH] lazy freeing of memory through MADV_FREE
Date: Fri, 20 Apr 2007 13:57:15 -0700 [thread overview]
Message-ID: <20070420135715.f6e8e091.akpm@linux-foundation.org> (raw)
In-Reply-To: <46247427.6000902@redhat.com>
On Tue, 17 Apr 2007 03:15:51 -0400
Rik van Riel <riel@redhat.com> wrote:
> Make it possible for applications to have the kernel free memory
> lazily. This reduces a repeated free/malloc cycle from freeing
> pages and allocating them, to just marking them freeable. If the
> application wants to reuse them before the kernel needs the memory,
> not even a page fault will happen.
>
> This patch, together with Ulrich's glibc change, increases
> MySQL sysbench performance by a factor of 2 on my quad core
> test system.
>
> Signed-off-by: Rik van Riel <riel@redhat.com>
>
> ---
> Ulrich Drepper has test glibc RPMS for this functionality at:
>
> http://people.redhat.com/drepper/rpms
>
> Andrew, I have stress tested this patch for a few days now and
> have not been able to find any more bugs. I believe it is ready
> to be merged in -mm, and upstream at the next merge window.
>
> When the patch goes upstream, I will submit a small follow-up
> patch to revert MADV_DONTNEED behaviour to what it did previously
> and have the new behaviour trigger only on MADV_FREE: at that
> point people will have to get new test RPMs of glibc.
>
>
I've also merged Nick's "mm: madvise avoid exclusive mmap_sem".
- Nick's patch also will help this problem. It could be that your patch
no longer offers a 2x speedup when combined with Nick's patch.
It could well be that the combination of the two is even better, but it
would be nice to firm that up a bit. Chewing a page flag is an expensive
thing to do.
I do go on about that. But we're adding page flags at about one per
year, and when we run out we're screwed - we'll need to grow the
pageframe.
- I need to update your patch for Nick's patch. Please confirm that
down_read(mmap_sem) is sufficient for MADV_FREE.
Stylistic nit:
> + if (PageLazyFree(page) && !migration) {
> + /* There is new data in the page. Reinstate it. */
> + if (unlikely(pte_dirty(pteval))) {
> + set_pte_at(mm, address, pte, pteval);
> + ret = SWAP_FAIL;
> + goto out_unmap;
> + }
The comment should be inside the second `if' statement. As it is, It
looks like we reinstate the page if (PageLazyFree(page) && !migration).
next prev parent reply other threads:[~2007-04-20 20:57 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-17 7:15 [PATCH] lazy freeing of memory through MADV_FREE Rik van Riel
2007-04-19 21:15 ` [PATCH] lazy freeing of memory through MADV_FREE 2/2 Rik van Riel
2007-04-20 21:03 ` Andrew Morton
2007-04-20 21:24 ` Ulrich Drepper
2007-04-21 7:37 ` Hugh Dickins
2007-04-21 16:32 ` Ulrich Drepper
2007-04-20 20:57 ` Andrew Morton [this message]
2007-04-20 21:38 ` [PATCH] lazy freeing of memory through MADV_FREE Rik van Riel
2007-04-20 22:06 ` Andrew Morton
2007-04-20 23:52 ` Rik van Riel
2007-04-21 0:48 ` Eric Dumazet
2007-04-21 3:58 ` Rik van Riel
2007-04-21 7:12 ` Jakub Jelinek
2007-04-23 4:36 ` Nick Piggin
2007-04-22 2:36 ` Nick Piggin
2007-04-22 2:50 ` Nick Piggin
2007-04-22 6:31 ` Rik van Riel
2007-04-23 0:16 ` Nick Piggin
2007-04-23 3:53 ` Rik van Riel
2007-04-23 3:58 ` Nick Piggin
2007-04-23 10:07 ` Nick Piggin
2007-04-23 10:12 ` Rik van Riel
2007-04-23 3:59 ` Rik van Riel
2007-04-23 9:20 ` Rik van Riel
2007-04-23 10:21 ` Nick Piggin
2007-04-23 10:31 ` Rik van Riel
2007-04-23 10:35 ` Nick Piggin
2007-04-23 10:44 ` Rik van Riel
2007-04-24 1:15 ` Nick Piggin
2007-04-24 1:58 ` Rik van Riel
2007-04-24 2:16 ` Nick Piggin
2007-04-24 4:42 ` Paul Mackerras
2007-04-24 5:13 ` Rik van Riel
2007-04-24 2:53 ` Rik van Riel
2007-04-24 3:08 ` Andrew Morton
2007-04-23 10:44 ` Jakub Jelinek
2007-04-23 11:45 ` Rik van Riel
2007-04-23 4:28 ` Rik van Riel
2007-04-21 7:24 ` Hugh Dickins
2007-04-21 18:06 ` Rik van Riel
2007-04-22 8:18 ` Andrew Morton
2007-04-22 9:16 ` Christoph Hellwig
2007-04-22 16:55 ` 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=20070420135715.f6e8e091.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=riel@redhat.com \
/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