The patch titled Subject: mm/vmscan: add a fatal signals check in drop_slab_node has been added to the -mm tree. Its filename is mm-vmscan-add-a-fatal-signals-check-in-drop_slab_node.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/mm-vmscan-add-a-fatal-signals-check-in-drop_slab_node.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/mm-vmscan-add-a-fatal-signals-check-in-drop_slab_node.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Chunxin Zang <zangchunxin@xxxxxxxxxxxxx> Subject: mm/vmscan: add a fatal signals check in drop_slab_node On our server, there are about 10k memcg in one machine. They use memory very frequently. We have observed that drop_caches can take a considerable amount of time, and can't stop it. There are two reasons: 1. There is somebody constantly generating more objects to reclaim on drop_caches, result the 'freed' always bigger than 10. 2. The process has no chance to process signals. We can get the following info through 'ps': root:~# ps -aux | grep drop root 357956 ... R Aug25 21119854:55 echo 3 > /proc/sys/vm/drop_caches root 1771385 ... R Aug16 21146421:17 echo 3 > /proc/sys/vm/drop_caches Add a bail out on the fatal signals in the main loop so that the operation can be terminated by userspace. Link: https://lkml.kernel.org/r/20200916025359.70203-1-zangchunxin@xxxxxxxxxxxxx Signed-off-by: Chunxin Zang <zangchunxin@xxxxxxxxxxxxx> Signed-off-by: Muchun Song <songmuchun@xxxxxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> Acked-by: Chris Down <chris@xxxxxxxxxxxxxx> Cc: David Hildenbrand <david@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/vmscan.c | 3 +++ 1 file changed, 3 insertions(+) --- a/mm/vmscan.c~mm-vmscan-add-a-fatal-signals-check-in-drop_slab_node +++ a/mm/vmscan.c @@ -702,6 +702,9 @@ void drop_slab_node(int nid) if (fatal_signal_pending(current)) return; + if (fatal_signal_pending(current)) + return; + freed = 0; memcg = mem_cgroup_iter(NULL, NULL, NULL); do { _ Patches currently in -mm which might be from zangchunxin@xxxxxxxxxxxxx are mm-vmscan-fix-infinite-loop-in-drop_slab_node.patch mm-vmscan-add-a-fatal-signals-check-in-drop_slab_node.patch