Re: [PATCH v2 0/5] use refcount+RCU method to implement lockless slab shrink (part 1)

From: Qi Zheng
Date: Tue Aug 22 2023 - 03:54:40 EST




On 2023/8/17 19:23, Qi Zheng wrote:
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 and is based on the next-20230815.

Comments and suggestions are welcome.

[1]. https://lore.kernel.org/lkml/20230807110936.21819-1-zhengqi.arch@xxxxxxxxxxxxx/

Thanks,
Qi

Changlog in part 1 v1 -> part 1 v2:
- fix compilation warning in [PATCH 1/5]
- rename synchronize_shrinkers() to ttm_pool_synchronize_shrinkers()
(pointed by Christian König)
- collect Reviewed-by

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

Hi all,

Any more comments and suggestions for this part 1? Or can this part
be merged first (just some cleanups and preparations)? Or should I
post the part 2 and part 3 first for everyone to review together?

Either one is fine for me. :)

Thanks,
Qi


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 | 17 +-
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 | 18 +-
mm/vmscan.c | 701 ------------------------------
8 files changed, 818 insertions(+), 750 deletions(-)
create mode 100644 mm/shrinker.c