linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [-mm][PATCH 0/5] mm: page reclaim throttle v6
@ 2008-05-04 12:53 KOSAKI Motohiro
  2008-05-04 12:55 ` [-mm][PATCH 1/5] fix overflow problem of do_try_to_free_page() KOSAKI Motohiro
                   ` (5 more replies)
  0 siblings, 6 replies; 21+ messages in thread
From: KOSAKI Motohiro @ 2008-05-04 12:53 UTC (permalink / raw)
  To: LKML, linux-mm, Andrew Morton; +Cc: kosaki.motohiro

changelog
========================================
  v5 -> v6
     o rebase to 2.6.25-mm1
     o use PGFREE statics instead wall time.
     o separate function type change patch and introduce throttle patch.

  v4 -> v5
     o rebase to 2.6.25-rc8-mm1

  v3 -> v4:
     o fixed recursive shrink_zone problem.
     o add last_checked variable in shrink_zone for 
       prevent corner case regression.

  v2 -> v3:
     o use wake_up() instead wake_up_all()
     o max reclaimers can be changed Kconfig option and sysctl.
     o some cleanups

  v1 -> v2:
     o make per zone throttle 



background
=====================================
current VM implementation doesn't has limit of # of parallel reclaim.
when heavy workload, it bring to 2 bad things
  - heavy lock contention
  - unnecessary swap out

The end of last year, KAMEZAWA Hiroyuki proposed the patch of page 
reclaim throttle and explain it improve reclaim time.
	http://marc.info/?l=linux-mm&m=119667465917215&w=2

but unfortunately it works only memcgroup reclaim.
Today, I implement it again for support global reclaim and mesure it.


benefit
=====================================
<<1. fix the bug of incorrect OOM killer>>

if do following commanc, sometimes OOM killer happened.
(OOM happend about 10%)

 $ ./hackbench 125 process 1000

because following bad scenario happend.

   1. memory shortage happend.
   2. many task call shrink_zone at the same time.
   3. all page are isolated from LRU at the same time.
   4. the last task can't isolate any page from LRU.
   5. it cause reclaim failure.
   6. it cause OOM killer.

my patch is directly solution for that problem.


<<2. performance improvement>>
I mesure various parameter of hackbench.

result number mean seconds (i.e. smaller is better)

    num_group       vanilla      with throttle   
   --------------------------------------------
      80              26.22           24.97    
      85              27.31           25.94    
      90              29.23           26.77
      95              30.73           28.40
     100              32.02           30.62
     105              33.97           31.93
     110              35.37           33.19
     115              36.96           33.68
     120              74.05           36.25
     125              41.07           39.30
     130              86.92           45.74
     135             234.62           45.99
     140             291.95           57.82
     145             425.35           70.31
     150             766.92          113.28


Why this patch imrove performance?

vanilla kernel get unstable performance at swap happend.
this patch doesn't improvement best case, but be able to prevent worst case.
thus, The average performance of hackbench increase largely.





--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2008-05-06  3:29 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-05-04 12:53 [-mm][PATCH 0/5] mm: page reclaim throttle v6 KOSAKI Motohiro
2008-05-04 12:55 ` [-mm][PATCH 1/5] fix overflow problem of do_try_to_free_page() KOSAKI Motohiro
2008-05-05  8:12   ` Nishanth Aravamudan
2008-05-06  3:29     ` KOSAKI Motohiro
2008-05-04 12:57 ` [-mm][PATCH 2/5] introduce get_vm_event() KOSAKI Motohiro
2008-05-05 21:47   ` Rik van Riel
2008-05-04 12:58 ` [-mm][PATCH 3/5] change function prototype of shrink_zone() KOSAKI Motohiro
2008-05-05  4:42   ` minchan Kim
2008-05-05  8:31     ` KOSAKI Motohiro
2008-05-05  8:37       ` minchan Kim
2008-05-04 12:59 ` [-mm][PATCH 4/5] core of reclaim throttle KOSAKI Motohiro
2008-05-04 13:12   ` KOSAKI Motohiro
2008-05-05  5:21     ` minchan Kim
2008-05-05  8:24       ` KOSAKI Motohiro
2008-05-05  8:32         ` minchan Kim
2008-05-05 21:51     ` Rik van Riel
2008-05-05 22:23       ` KOSAKI Motohiro
2008-05-06  0:43         ` Rik van Riel
2008-05-06  1:01           ` KOSAKI Motohiro
2008-05-04 13:01 ` [-mm][PATCH 5/5] introduce sysctl parameter of max task of throttle KOSAKI Motohiro
2008-05-04 14:38 ` [-mm][PATCH 0/5] mm: page reclaim throttle v6 KOSAKI Motohiro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox