Prev: [PATCH] firewire: core: add forgotten dummy driver methods, remove unused ones
Next: [PATCH] edac: mpc85xx: Add support for new MPCxxx/Pxxxx EDAC controllers (fix)
From: Wu Fengguang on 1 Aug 2010 06:50 > If the system 512MB memory, DEF_PRIORITY mean 128kB scan and It takes 4096 > shrink_page_list() calls to scan 128kB (i.e. 128kB/32=4096) memory. Err you must forgot the page size. 128kB means 128kB/4kB=32 pages which fit exactly into one SWAP_CLUSTER_MAX batch. The shrink_page_list() call times has nothing to do DEF_PRIORITY. Thanks, Fengguang -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Minchan Kim on 1 Aug 2010 09:50 Hi KOSAKI, On Sun, Aug 01, 2010 at 06:12:47PM +0900, KOSAKI Motohiro wrote: > rebased onto Wu's patch > > ---------------------------------------------- > From 35772ad03e202c1c9a2252de3a9d3715e30d180f Mon Sep 17 00:00:00 2001 > From: KOSAKI Motohiro <kosaki.motohiro(a)jp.fujitsu.com> > Date: Sun, 1 Aug 2010 17:23:41 +0900 > Subject: [PATCH] vmscan: synchronous lumpy reclaim don't call congestion_wait() > > congestion_wait() mean "waiting for number of requests in IO queue is > under congestion threshold". > That said, if the system have plenty dirty pages, flusher thread push > new request to IO queue conteniously. So, IO queue are not cleared > congestion status for a long time. thus, congestion_wait(HZ/10) is > almostly equivalent schedule_timeout(HZ/10). Just a nitpick. Why is it a problem? HZ/10 is upper bound we intended. If is is rahter high, we can low it. But totally I agree on this patch. It would be better to remove it than lowing. > > If the system 512MB memory, DEF_PRIORITY mean 128kB scan and It takes 4096 > shrink_page_list() calls to scan 128kB (i.e. 128kB/32=4096) memory. > 4096 times 0.1sec stall makes crazy insane long stall. That shouldn't. 128K / (4K * SWAP_CLUSTER_MAX) = 1 > > In the other hand, this synchronous lumpy reclaim donesn't need this > congestion_wait() at all. shrink_page_list(PAGEOUT_IO_SYNC) cause to > call wait_on_page_writeback() and it provide sufficient waiting. Absolutely I agree on you. > > Signed-off-by: KOSAKI Motohiro <kosaki.motohiro(a)jp.fujitsu.com> > Reviewed-by: Wu Fengguang <fengguang.wu(a)intel.com> Reviewed-by: Minchan Kim <minchan.kim(a)gmail.com> -- Kind regards, Minchan Kim -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Minchan Kim on 5 Aug 2010 10:00
On Thu, Aug 05, 2010 at 03:13:03PM +0900, KOSAKI Motohiro wrote: > congestion_wait() mean "waiting quueue congestion is cleared". > That said, if the system have plenty dirty pages and flusher thread push > new request to IO queue conteniously, IO queue are not cleared > congestion status for long time. thus, congestion_wait(HZ/10) become > almostly equivalent schedule_timeout(HZ/10). > > However, synchronous lumpy reclaim donesn't need this > congestion_wait() at all. shrink_page_list(PAGEOUT_IO_SYNC) are > using wait_on_page_writeback() and it provide sufficient waiting. > > Signed-off-by: KOSAKI Motohiro <kosaki.motohiro(a)jp.fujitsu.com> Reviewed-by: Minchan Kim <minchan.kim(a)gmail.com> -- Kind regards, Minchan Kim -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |