[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20091202113809.5C4C.A69D9226@jp.fujitsu.com>
Date: Wed, 2 Dec 2009 11:41:55 +0900 (JST)
From: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>
To: Rik van Riel <riel@...hat.com>
Cc: kosaki.motohiro@...fujitsu.com,
Larry Woodman <lwoodman@...hat.com>,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
akpm@...ux-foundation.org,
Hugh Dickins <hugh.dickins@...cali.co.uk>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
Andrea Arcangeli <aarcange@...hat.com>
Subject: Re: [RFC] high system time & lock contention running large mixed workload
> On 12/01/2009 11:41 AM, Larry Woodman wrote:
> >
> > Agreed. The attached updated patch only does a trylock in the
> > page_referenced() call from shrink_inactive_list() and only for
> > anonymous pages when the priority is either 10, 11 or
> > 12(DEF_PRIORITY-2). I have never seen a problem like this with active
> > pagecache pages and it does not alter the existing shrink_page_list
> > behavior. What do you think about this???
> This is reasonable, except for the fact that pages that are moved
> to the inactive list without having the referenced bit cleared are
> guaranteed to be moved back to the active list.
>
> You'll be better off without that excess list movement, by simply
> moving pages directly back onto the active list if the trylock
> fails.
>
> Yes, this means that page_referenced can now return 3 different
> return values (not accessed, accessed, lock contended), which
> should probably be an enum so we can test for the values
> symbolically in the calling functions.
>
> That way only pages where we did manage to clear the referenced bit
> will be moved onto the inactive list. This not only reduces the
> amount of excess list movement, it also makes sure that the pages
> which do get onto the inactive list get a fair chance at being
> referenced again, instead of potentially being flooded out by pages
> where the trylock failed.
Agreed.
> A minor nitpick: maybe it would be good to rename the "try" parameter
> to "noblock". That more closely matches the requested behaviour.
Another minor nit: probably we have to rename page_referenced(). it imply test
reference bit. but we use it for clear reference bit in shrink_active_list.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists