[PATCH] vmscan: stop meaningless loop iteration when no reclaimable slab

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: KOSAKI Motohiro
Date: Friday, July 9, 2010 - 3:13 am

If number of reclaimable slabs are zero, shrink_icache_memory() and
shrink_dcache_memory() return 0. but strangely shrink_slab() ignore
it and continue meaningless loop iteration.

This patch fixes it.

Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
---
 mm/vmscan.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 0f9f624..8f61adb 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -243,6 +243,11 @@ unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
 			int nr_before;
 
 			nr_before = (*shrinker->shrink)(0, gfp_mask);
+			/* no slab objects, no more reclaim. */
+			if (nr_before == 0) {
+				total_scan = 0;
+				break;
+			}
 			shrink_ret = (*shrinker->shrink)(this_scan, gfp_mask);
 			if (shrink_ret == -1)
 				break;
-- 
1.6.5.2



--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH v2 1/2] vmscan: don't subtraction of unsined, KOSAKI Motohiro, (Thu Jul 8, 12:38 am)
Re: [PATCH v2 1/2] vmscan: don't subtraction of unsined, KOSAKI Motohiro, (Thu Jul 8, 12:41 am)
Re: [PATCH v2 1/2] vmscan: don't subtraction of unsined, Christoph Lameter, (Thu Jul 8, 7:01 am)
Re: [PATCH v2 1/2] vmscan: don't subtraction of unsined, Andrew Morton, (Thu Jul 8, 1:00 pm)
Re: [PATCH v2 1/2] vmscan: don't subtraction of unsined, KOSAKI Motohiro, (Thu Jul 8, 6:16 pm)
[PATCH] vmscan: stop meaningless loop iteration when no re ..., KOSAKI Motohiro, (Fri Jul 9, 3:13 am)
Re: [PATCH v2 1/2] vmscan: don't subtraction of unsined, Andrew Morton, (Fri Jul 9, 3:28 pm)
Re: [PATCH v2 1/2] vmscan: don't subtraction of unsined, KOSAKI Motohiro, (Tue Jul 13, 2:32 am)
Re: [PATCH v2 1/2] vmscan: don't subtraction of unsined, Christoph Lameter, (Tue Jul 13, 6:50 pm)
Re: [PATCH v2 1/2] vmscan: don't subtraction of unsined, KOSAKI Motohiro, (Tue Jul 13, 7:15 pm)