Centos-kernel-stream-9/drivers/md
Benjamin Marzinski a03357b4e4 dm zoned: dynamically allocate the dm-zoned-meta shrinker
JIRA: https://issues.redhat.com/browse/RHEL-84906
Upstream Status: kernel/git/torvalds/linux.git

commit ba3d6acafd26416c3001adb4cc3cedcd6a419c73
Author: Qi Zheng <zhengqi.arch@bytedance.com>
Date:   Mon Sep 11 17:44:23 2023 +0800

    dm zoned: dynamically allocate the dm-zoned-meta shrinker

    In preparation for implementing lockless slab shrink, use new APIs to
    dynamically allocate the dm-zoned-meta shrinker, so that it can be freed
    asynchronously via RCU. Then it doesn't need to wait for RCU read-side
    critical section when releasing the struct dmz_metadata.

    Link: https://lkml.kernel.org/r/20230911094444.68966-25-zhengqi.arch@bytedance.com
    Signed-off-by: Qi Zheng <zhengqi.arch@bytedance.com>
    Reviewed-by: Muchun Song <songmuchun@bytedance.com>
    Cc: Alasdair Kergon <agk@redhat.com>
    Cc: Mike Snitzer <snitzer@kernel.org>
    Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
    Cc: Andreas Dilger <adilger.kernel@dilger.ca>
    Cc: Andreas Gruenbacher <agruenba@redhat.com>
    Cc: Anna Schumaker <anna@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Bob Peterson <rpeterso@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Carlos Llamas <cmllamas@google.com>
    Cc: Chandan Babu R <chandan.babu@oracle.com>
    Cc: Chao Yu <chao@kernel.org>
    Cc: Chris Mason <clm@fb.com>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Christian Koenig <christian.koenig@amd.com>
    Cc: Chuck Lever <cel@kernel.org>
    Cc: Coly Li <colyli@suse.de>
    Cc: Dai Ngo <Dai.Ngo@oracle.com>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: "Darrick J. Wong" <djwong@kernel.org>
    Cc: Dave Chinner <david@fromorbit.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: David Airlie <airlied@gmail.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: David Sterba <dsterba@suse.com>
    Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Cc: Gao Xiang <hsiangkao@linux.alibaba.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Huang Rui <ray.huang@amd.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jaegeuk Kim <jaegeuk@kernel.org>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: Jeff Layton <jlayton@kernel.org>
    Cc: Jeffle Xu <jefflexu@linux.alibaba.com>
    Cc: Joel Fernandes (Google) <joel@joelfernandes.org>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Josef Bacik <josef@toxicpanda.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Kent Overstreet <kent.overstreet@gmail.com>
    Cc: Kirill Tkhai <tkhai@ya.ru>
    Cc: Marijn Suijten <marijn.suijten@somainline.org>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Muchun Song <muchun.song@linux.dev>
    Cc: Nadav Amit <namit@vmware.com>
    Cc: Neil Brown <neilb@suse.de>
    Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
    Cc: Olga Kornievskaia <kolga@netapp.com>
    Cc: Paul E. McKenney <paulmck@kernel.org>
    Cc: Richard Weinberger <richard@nod.at>
    Cc: Rob Clark <robdclark@gmail.com>
    Cc: Rob Herring <robh@kernel.org>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Roman Gushchin <roman.gushchin@linux.dev>
    Cc: Sean Paul <sean@poorly.run>
    Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
    Cc: Song Liu <song@kernel.org>
    Cc: Stefano Stabellini <sstabellini@kernel.org>
    Cc: Steven Price <steven.price@arm.com>
    Cc: "Theodore Ts'o" <tytso@mit.edu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>
    Cc: Tom Talpey <tom@talpey.com>
    Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
    Cc: Yue Hu <huyue2@coolpad.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2025-04-08 11:46:33 -04:00
..
bcache block: move the raid_partial_stripes_expensive flag into the features field 2024-09-27 11:19:09 +08:00
persistent-data dm-transaction-manager: use red-black trees instead of linear lists 2025-04-08 11:46:32 -04:00
Kconfig md: reintroduce md-linear 2025-03-21 14:55:02 -04:00
Makefile md: reintroduce md-linear 2025-03-21 14:55:02 -04:00
dm-audit.c
dm-audit.h
dm-bio-prison-v1.c dm cache: Remove unused functions in bio-prison-v1 2025-04-08 11:46:31 -04:00
dm-bio-prison-v1.h dm cache: Remove unused functions in bio-prison-v1 2025-04-08 11:46:31 -04:00
dm-bio-prison-v2.c dm: use bio_list_merge_init 2024-09-27 11:18:55 +08:00
dm-bio-prison-v2.h
dm-bio-record.h
dm-bufio.c dm: dynamically allocate the dm-bufio shrinker 2025-04-08 11:46:33 -04:00
dm-builtin.c
dm-cache-background-tracker.c dm cache: Remove unused btracker_nr_writebacks_queued 2025-04-08 11:46:30 -04:00
dm-cache-background-tracker.h dm cache: Remove unused btracker_nr_writebacks_queued 2025-04-08 11:46:30 -04:00
dm-cache-block-types.h
dm-cache-metadata.c dm cache: Remove unused dm_cache_size 2025-04-08 11:46:30 -04:00
dm-cache-metadata.h dm cache: Remove unused dm_cache_size 2025-04-08 11:46:30 -04:00
dm-cache-policy-internal.h
dm-cache-policy-smq.c dm: update relevant MODULE_AUTHOR entries to latest dm-devel mailing list 2024-10-21 15:58:31 -04:00
dm-cache-policy.c
dm-cache-policy.h
dm-cache-target.c dm-cache: fix warnings about duplicate slab caches 2025-04-08 11:46:30 -04:00
dm-clone-metadata.c dm: Make use of __assign_bit() API 2025-04-08 11:46:29 -04:00
dm-clone-metadata.h
dm-clone-target.c block: add a bdev_limits helper 2025-03-14 16:48:14 +08:00
dm-core.h dm: optimize flushes 2024-10-21 15:58:32 -04:00
dm-crypt.c dm-crypt: track tag_offset in convert_context 2025-04-08 11:46:33 -04:00
dm-delay.c dm-delay: remove timer_lock 2024-10-21 15:58:32 -04:00
dm-dust.c dm: update relevant MODULE_AUTHOR entries to latest dm-devel mailing list 2024-10-21 15:58:31 -04:00
dm-ebs-target.c dm-ebs: don't set the flag DM_TARGET_PASSES_INTEGRITY 2025-04-08 11:46:32 -04:00
dm-era-target.c dm: Constify struct dm_block_validator 2024-10-21 15:58:34 -04:00
dm-exception-store.c
dm-exception-store.h
dm-flakey.c dm-flakey: Fix memory corruption in optional corrupt_bio_byte feature 2025-04-08 11:46:33 -04:00
dm-ima.c
dm-ima.h
dm-init.c dm init: Handle minors larger than 255 2024-10-21 15:58:32 -04:00
dm-integrity.c dm-integrity: Do not emit journal configuration in DM table for Inline mode 2025-04-08 11:46:33 -04:00
dm-io-rewind.c
dm-io-tracker.h
dm-io.c dm-io: Warn on creating multiple atomic write bios for a region 2025-04-08 11:46:32 -04:00
dm-ioctl.c dm ioctl: rate limit a couple of ioctl based error messages 2025-04-08 11:46:31 -04:00
dm-kcopyd.c dm io: Support IO priority 2024-10-21 15:58:31 -04:00
dm-linear.c dm-linear: Enable atomic writes 2025-04-08 11:46:32 -04:00
dm-log-userspace-base.c dm: update relevant MODULE_AUTHOR entries to latest dm-devel mailing list 2024-10-21 15:58:31 -04:00
dm-log-userspace-transfer.c
dm-log-userspace-transfer.h
dm-log-writes.c dm: always manage discard support in terms of max_hw_discard_sectors 2024-09-27 11:19:18 +08:00
dm-log.c dm: update relevant MODULE_AUTHOR entries to latest dm-devel mailing list 2024-10-21 15:58:31 -04:00
dm-mpath.c dm mpath: don't call dm_get_device in multipath_message 2024-10-21 15:58:34 -04:00
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-ps-historical-service-time.c
dm-ps-io-affinity.c dm: change kzalloc to kcalloc 2025-04-08 11:46:32 -04:00
dm-ps-queue-length.c
dm-ps-round-robin.c dm: update relevant MODULE_AUTHOR entries to latest dm-devel mailing list 2024-10-21 15:58:31 -04:00
dm-ps-service-time.c
dm-raid.c dm raid: fix spelling errors in raid_ctr() 2025-04-08 11:46:32 -04:00
dm-raid1.c dm-mirror: Support atomic writes 2025-04-08 11:46:32 -04:00
dm-region-hash.c dm: update relevant MODULE_AUTHOR entries to latest dm-devel mailing list 2024-10-21 15:58:31 -04:00
dm-rq.c block: remove BLK_MQ_F_SHOULD_MERGE 2025-03-14 16:48:35 +08:00
dm-rq.h
dm-snap-persistent.c dm io: Support IO priority 2024-10-21 15:58:31 -04:00
dm-snap-transient.c
dm-snap.c dm: always manage discard support in terms of max_hw_discard_sectors 2024-09-27 11:19:18 +08:00
dm-stats.c
dm-stats.h
dm-stripe.c dm-stripe: Enable atomic writes 2025-04-08 11:46:32 -04:00
dm-switch.c
dm-sysfs.c
dm-table.c dm-table: atomic writes support 2025-04-08 11:46:32 -04:00
dm-target.c dm: always manage discard support in terms of max_hw_discard_sectors 2024-09-27 11:19:18 +08:00
dm-thin-metadata.c dm: Constify struct dm_block_validator 2024-10-21 15:58:34 -04:00
dm-thin-metadata.h
dm-thin.c dm thin: make get_first_thin use rcu-safe list first function 2025-04-08 11:46:32 -04:00
dm-uevent.c
dm-uevent.h
dm-unstripe.c dm-unstriped: cast an operand to sector_t to prevent potential uint32_t overflow 2024-11-26 18:16:35 -05:00
dm-verity-fec.c dm-verity FEC: Avoid copying RS parity bytes twice. 2025-04-08 11:46:32 -04:00
dm-verity-fec.h dm-verity: always "map" the data blocks 2024-10-21 15:58:33 -04:00
dm-verity-loadpin.c
dm-verity-target.c dm-verity: remove the unused "data_start" variable 2025-04-08 11:46:31 -04:00
dm-verity-verify-sig.c dm verity: fallback to platform keyring also if key in trusted keyring is rejected 2025-04-08 11:46:30 -04:00
dm-verity-verify-sig.h
dm-verity.h dm-verity: remove the unused "data_start" variable 2025-04-08 11:46:31 -04:00
dm-writecache.c dm: update relevant MODULE_AUTHOR entries to latest dm-devel mailing list 2024-10-21 15:58:31 -04:00
dm-zero.c dm: always manage discard support in terms of max_hw_discard_sectors 2024-09-27 11:19:18 +08:00
dm-zone.c block: pre-calculate max_zone_append_sectors 2025-03-14 16:48:19 +08:00
dm-zoned-metadata.c dm zoned: dynamically allocate the dm-zoned-meta shrinker 2025-04-08 11:46:33 -04:00
dm-zoned-reclaim.c dm: Fix dm-zoned-reclaim zone write pointer alignment 2025-01-16 19:14:40 +08:00
dm-zoned-target.c dm: stop using blk_limits_io_{min,opt} 2024-10-21 15:58:33 -04:00
dm-zoned.h dm: zoned: Remove unused functions 2025-04-08 11:46:31 -04:00
dm.c dm: Ensure cloned bio is same length for atomic write 2025-04-08 11:46:32 -04:00
dm.h dm: Remove unused dm_table_bio_based 2025-04-08 11:46:31 -04:00
md-autodetect.c md: reintroduce md-linear 2025-03-21 14:55:02 -04:00
md-bitmap.c md/md-bitmap: fix wrong bitmap_limit for clustermd when write sb 2025-03-21 14:55:02 -04:00
md-bitmap.h md/md-bitmap: remove the last parameter for bimtap_ops->endwrite() 2025-03-10 10:28:19 -04:00
md-cluster.c md: switch md-cluster to use md_submodle_head 2025-03-21 14:55:02 -04:00
md-cluster.h md: switch md-cluster to use md_submodle_head 2025-03-21 14:55:02 -04:00
md-faulty.c md: switch personalities faulty multipath to use md_submodule_head 2025-03-21 14:55:02 -04:00
md-linear.c md: switch personalities to use md_submodule_head 2025-03-21 14:55:02 -04:00
md-multipath.c md: switch personalities faulty multipath to use md_submodule_head 2025-03-21 14:55:02 -04:00
md-multipath.h
md.c md: fix mddev uaf while iterating all_mddevs list 2025-03-21 14:55:02 -04:00
md.h md: switch personalities faulty multipath to use md_submodule_head 2025-03-21 14:55:02 -04:00
raid0.c md/raid0: don't free conf on raid0_run failure 2025-03-21 14:55:02 -04:00
raid0.h
raid1-10.c md: don't export md_cluster_ops 2025-03-21 14:55:02 -04:00
raid1.c md/raid1: fix memory leak in raid1_run() if no active rdev 2025-03-21 14:55:02 -04:00
raid1.h md/md-bitmap: remove the last parameter for bimtap_ops->endwrite() 2025-03-10 10:28:19 -04:00
raid5-cache.c md/md-bitmap: move bitmap_{start, end}write to md upper layer 2025-03-10 10:28:20 -04:00
raid5-log.h
raid5-ppl.c md/raid5-ppl: Use atomic64_inc_return() in ppl_new_iounit() 2025-03-10 10:28:17 -04:00
raid5.c md/raid5: merge reshape_progress checking inside get_reshape_loc() 2025-03-21 14:55:02 -04:00
raid5.h md/md-bitmap: move bitmap_{start, end}write to md upper layer 2025-03-10 10:28:20 -04:00
raid10.c md/raid10: wait barrier before returning discard request with REQ_NOWAIT 2025-03-21 14:55:02 -04:00
raid10.h md/md-bitmap: remove the last parameter for bimtap_ops->endwrite() 2025-03-10 10:28:19 -04:00