On Thu, Dec 09, 2010 at 10:51:40AM -0800, Ying Han wrote: > On Wed, Dec 8, 2010 at 7:16 AM, Johannes Weiner <hannes@xxxxxxxxxxx> wrote: > > @@ -2587,7 +2607,7 @@ void wakeup_kswapd(struct zone *zone, int order) > > pgdat->kswapd_max_order = order; > > if (!waitqueue_active(&pgdat->kswapd_wait)) > > return; > > - if (zone_watermark_ok_safe(zone, order, low_wmark_pages(zone), 0, 0)) > > + if (!zone_needs_scan(zone, order, low_wmark_pages(zone), 0)) > > return; > > > > trace_mm_vmscan_wakeup_kswapd(pgdat->node_id, zone_idx(zone), order); > > So we look at zone_reclaimable_pages() only to determine proceed > reclaiming or not. What if I have tons of unused dentry and inode > caches and we are skipping the shrinker here? We have no straight-forward way to asking that (yet - per-zone shrinkers may change that?), so the zone is left for direct reclaim to figure this out. Forcing allocators into direct reclaim more often is still better than having kswapd run wild. -- 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 policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>