On Mon, Aug 23, 2010 at 8:23 AM, Wu Fengguang <fengguang.wu@xxxxxxxxx> wrote: >> From: Minchan Kim <minchan.kim@xxxxxxxxx> >> Date: Mon, 23 Aug 2010 00:20:44 +0900 >> Subject: [PATCH] compaction: handle active and inactive fairly in too_many_isolated >> >> Iram reported compaction's too_many_isolated loops forever. >> (http://www.spinics.net/lists/linux-mm/msg08123.html) >> >> The meminfo of situation happened was inactive anon is zero. >> That's because the system has no memory pressure until then. >> While all anon pages was in active lru, compaction could select >> active lru as well as inactive lru. That's different things >> with vmscan's isolated. So we has been two too_many_isolated. >> >> While compaction can isolated pages in both active and inactive, >> current implementation of too_many_isolated only considers inactive. >> It made Iram's problem. >> >> This patch handles active and inactie with fair. >> That's because we can't expect where from and how many compaction would >> isolated pages. >> >> This patch changes (nr_isolated > nr_inactive) with >> nr_isolated > (nr_active + nr_inactive) / 2. > > The change looks good, thanks. However I'm not sure if it's enough. Thanks. > > I wonder where the >40MB isolated pages come about. inactive_anon > remains 0 and free remains high over a long time, so it seems there > are no concurrent direct reclaims at all. Are the pages isolated by > the compaction process itself? Agree. I wonder too. Now compaction isolates page per 32 until reaching pageblock_nr_pages, So I can't understand how 40MB isolated pages come out. Iram. How do you execute test_app? 1) synchronous test 1.1 start test_app 1.2 wait test_app job done (ie, wait memory is fragment) 1.3 echo 1 > /proc/sys/vm/compact_memory 2) asynchronous test 2.1 start test_app 2.2 not wait test_app job done 2.3 echo 1 > /proc/sys/vm/compact_memory(Maybe your test app and compaction were executed parallel) Which one is your scenario? > > Thanks, > Fengguang > -- Kind regards, Minchan Kim -- 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/ . Don't email: <a href