use refcount+RCU method to implement lockless slab shrink (part 1)
From: | Qi Zheng <zhengqi.arch-AT-bytedance.com> | |
To: | akpm-AT-linux-foundation.org, david-AT-fromorbit.com, tkhai-AT-ya.ru, vbabka-AT-suse.cz, roman.gushchin-AT-linux.dev, djwong-AT-kernel.org, brauner-AT-kernel.org, paulmck-AT-kernel.org, tytso-AT-mit.edu, steven.price-AT-arm.com, cel-AT-kernel.org, senozhatsky-AT-chromium.org, yujie.liu-AT-intel.com, gregkh-AT-linuxfoundation.org, muchun.song-AT-linux.dev, joel-AT-joelfernandes.org, christian.koenig-AT-amd.com | |
Subject: | [PATCH 0/5] use refcount+RCU method to implement lockless slab shrink (part 1) | |
Date: | Wed, 16 Aug 2023 16:34:14 +0800 | |
Message-ID: | <20230816083419.41088-1-zhengqi.arch@bytedance.com> | |
Cc: | linux-kernel-AT-vger.kernel.org, linux-mm-AT-kvack.org, dri-devel-AT-lists.freedesktop.org, linux-fsdevel-AT-vger.kernel.org, Qi Zheng <zhengqi.arch-AT-bytedance.com> | |
Archive-link: | Article |
Hi all, To make reviewing and updating easier, I've chosen to split the previous patchset[1] into the following three parts: part 1: some cleanups and preparations part 2: introduce new APIs and convert all shrinnkers to use these part 3: implement lockless slab shrink This series is the part 1. Comments and suggestions are welcome. [1]. https://lore.kernel.org/lkml/20230807110936.21819-1-zheng... Thanks, Qi Changlog in v4 -> part 1 v1: - split from the previous large patchset - fix comment format in [PATCH v4 01/48] (pointed by Muchun Song) - change to use kzalloc_node() and fix typo in [PATCH v4 44/48] (pointed by Dave Chinner) - collect Reviewed-bys - rebase onto the next-20230815 Qi Zheng (5): mm: move some shrinker-related function declarations to mm/internal.h mm: vmscan: move shrinker-related code into a separate file mm: shrinker: remove redundant shrinker_rwsem in debugfs operations drm/ttm: introduce pool_shrink_rwsem mm: shrinker: add a secondary array for shrinker_info::{map, nr_deferred} drivers/gpu/drm/ttm/ttm_pool.c | 15 + include/linux/memcontrol.h | 12 +- include/linux/shrinker.h | 37 +- mm/Makefile | 4 +- mm/internal.h | 28 ++ mm/shrinker.c | 751 +++++++++++++++++++++++++++++++++ mm/shrinker_debug.c | 16 +- mm/vmscan.c | 701 ------------------------------ 8 files changed, 815 insertions(+), 749 deletions(-) create mode 100644 mm/shrinker.c -- 2.30.2