Re: [PATCH] lazy freeing of memory through MADV_FREE

Andrew Morton
2007-04-20T22:06:35Z

On Fri, 20 Apr 2007 17:38:06 -0400
Rik van Riel <riel@redhat.com> wrote:

> Andrew Morton wrote:
>
> > 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.
>
> I'll test that.

Thanks.

> > 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.
>
> If you want, I can take a look at folding this into the
> ->mapping pointer. I can guarantee you it won't be
> pretty, though :)

Well, let's see how fugly it ends up looking?

> > - I need to update your patch for Nick's patch. Please confirm that
> > down_read(mmap_sem) is sufficient for MADV_FREE.
>
> It is. MADV_FREE needs no more protection than MADV_DONTNEED.
>
> > 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).
>
> Want me to move it?

I did that, thanks.