Re: [patch 3/3] mm: keep pages from unevictable mappings off the LRU lists

From: Johannes Weiner
Date: Wed Mar 25 2009 - 20:02:45 EST


On Mon, Mar 23, 2009 at 10:53:27AM +0000, David Howells wrote:
> Johannes Weiner <hannes@xxxxxxxxxxx> wrote:
>
> > - if (page_is_file_cache(page))
> > + if (mapping_unevictable(mapping))
> > + add_page_to_unevictable_list(page);
> > + else if (page_is_file_cache(page))
>
> It would be nice to avoid adding an extra test and branch in here. This
> function is used a lot, and quite often we know the answer to the first test
> before we even get here.

Yes, I thought about that too. So I mounted a tmpfs and dd'd
/dev/zero to a file on it until it ran out of space (around 900M,
without swapping), deleted the file again. I did this in a tight loop
and profiled it.

I couldn't think of a way that would excercise add_to_page_cache_lru()
more, I hope I didn't overlook anything, please correct if I am wrong.

If I was not, than the extra checking for unevictable mappings doesn't
make a measurable difference. The function on the vanilla kernel had
a share of 0.2033%, on the patched kernel 0.1953%.

Hannes
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/