This patchset is to fix the issues in doing shrink slab. There're six different reclaim paths by now, - kswapd reclaim path - node reclaim path - hibernate preallocate memory reclaim path - direct reclaim path - memcg reclaim path - memcg softlimit reclaim path The slab caches reclaimed in these paths are only calculated in the above three paths. The issues are detailed explained in patch #2. We should calculate the reclaimed slab caches in every reclaim path. In order to do it, the struct reclaim_state is placed into the struct shrink_control. In node reclaim path, there'is another issue about shrinking slab, which is adressed in another patch[1]. [1] mm/vmscan: shrink slab in node reclaim https://lore.kernel.org/linux-mm/1559874946-22960-1-git-send-email-laoar.shao@xxxxxxxxx/ Yafang Shao (2): mm/vmscan: add a new member reclaim_state in struct shrink_control mm/vmscan: calculate reclaimed slab caches in all reclaim paths mm/vmscan.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) -- 1.8.3.1