Hello Minchan, On Fri, Jun 03, 2011 at 05:21:56AM +0900, Minchan Kim wrote: > Isn't it rather aggressive? > I think cursor page is likely to be PageTail rather than PageHead. > Could we handle it simply with below code? It's not so likely, there is small percentage of compound pages that aren't THP compared to the rest that is either regular pagecache or anon regular or anon THP or regular shm. If it's THP chances are we isolated the head and it's useless to insist on more tail pages (at least for large page size like on x86). Plus we've compaction so insisting and screwing lru ordering isn't worth it, better to be permissive and abort... in fact I wouldn't dislike to remove the entire lumpy logic when COMPACTION_BUILD is true, but that alters the trace too... > get_page(cursor_page) > /* The page is freed already */ > if (1 == page_count(cursor_page)) { > put_page(cursor_page) > continue; > } > put_page(cursor_page); We can't call get_page on an tail page or we break split_huge_page, only an isolated lru can be boosted, if we take the lru_lock and we check the page is in lru, then we can isolate and pin it safely. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>