> How about replace the checking in kswapd_shrink_zone()? > > @@ -2824,7 +2824,7 @@ static bool kswapd_shrink_zone(struct zone *zone, > /* Account for the number of pages attempted to reclaim */ > *nr_attempted += sc->nr_to_reclaim; > > - if (nr_slab == 0 && !zone_reclaimable(zone)) > + if (sc->nr_reclaimed == 0 && !zone_reclaimable(zone)) > zone->all_unreclaimable = 1; > > zone_clear_flag(zone, ZONE_WRITEBACK); > > > I think the current check is wrong, reclaimed a slab doesn't mean > reclaimed a page. The code is correct, at least, it works as intentional. page reclaim status is checked by zone_reclaimable() and slab shrinking status is checked by nr_slab. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>