Messages in this thread | | | Date | Thu, 26 Mar 2009 11:36:31 +0100 | From | Johannes Weiner <> | Subject | Re: [patch 3/3] mm: keep pages from unevictable mappings off the LRU lists |
| |
On Thu, Mar 26, 2009 at 05:56:52PM +0900, KOSAKI Motohiro wrote: > > On Mon, Mar 23, 2009 at 10:53:27AM +0000, David Howells wrote: > > > Johannes Weiner <hannes@cmpxchg.org> 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%. > > May I ask the number of the cpu of your test box. > In general, lock contention possibility depend on #ofCPUs.
Yes, sure. In this test I tried to find out how much this extra branch makes a difference for the common path (untaken), though.
I have not tried to instrument the lock contention. But this will be done with a quadcore system.
> So, I and lee mainly talked about large box.
Yeah, I don't have such a thing ;)
Hannes
| |