From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 75AEECA0ED4 for ; Mon, 11 Sep 2023 22:26:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243076AbjIKWYG (ORCPT ); Mon, 11 Sep 2023 18:24:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47936 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244477AbjIKUhv (ORCPT ); Mon, 11 Sep 2023 16:37:51 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 284AB127 for ; Mon, 11 Sep 2023 13:37:46 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B26EFC433C8; Mon, 11 Sep 2023 20:37:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1694464665; bh=5ABvc22gCmSDD7lrTDTwulEfzy3dBLmrcbqY4WwqeRY=; h=Date:To:From:Subject:From; b=Mx397u13GfcgRfmS4HoSzxqnl/RjEn0GY5tDo3HOb+LrIVCENAkgN4tvgf0/yPS8q zRd7jmjpJI0Jvq4r49j7YbQJTImL+vIcR60cyh5Q7yJXme2JuEK4RFWNF0lMsjNY+4 mbHdvK/hGZFjXq1zlv4yOAZxevF0qWsx5YEbUnbA= Date: Mon, 11 Sep 2023 13:37:45 -0700 To: mm-commits@vger.kernel.org, xuanzhuo@linux.alibaba.com, viro@zeniv.linux.org.uk, vbabka@suse.cz, tytso@mit.edu, tvrtko.ursulin@linux.intel.com, trond.myklebust@hammerspace.com, tom@talpey.com, tomeu.vizoso@collabora.com, tkhai@ya.ru, tglx@linutronix.de, steven.price@arm.com, sstabellini@kernel.org, songmuchun@bytedance.com, song@kernel.org, snitzer@kernel.org, senozhatsky@chromium.org, sean@poorly.run, rpeterso@redhat.com, roman.gushchin@linux.dev, rodrigo.vivi@intel.com, robh@kernel.org, robdclark@gmail.com, richard@nod.at, ray.huang@amd.com, quic_abhinavk@quicinc.com, paulmck@kernel.org, oleksandr_tyshchenko@epam.com, neilb@suse.de, namit@vmware.com, muchun.song@linux.dev, mst@redhat.com, mingo@redhat.com, minchan@kernel.org, marijn.suijten@somainline.org, kolga@netapp.com, kent.overstreet@gmail.com, josef@toxicpanda.com, joonas.lahtinen@linux.intel.com, joel@joelfernandes.org, jlayton@kernel.org, jgross@suse.com, jefflexu@linux.alibaba.com, jasowang@redhat.com, jani.nikula@linux.intel.com, jaegeuk@kernel.org, jack@suse.cz, huyue2@coolpad.com, hsiangkao@linux.alibaba.com, gregkh@linuxfoundation.org, dsterba@suse.com, dmitry.baryshkov@linaro.org, djwong@kernel.org, david@redhat.com, david@fromorbit.com, dave.hansen@linux.intel.com, daniel.vetter@ffwll.ch, daniel@ffwll.ch, Dai.Ngo@oracle.com, colyli@suse.de, cmllamas@google.com, clm@fb.com, christian.koenig@amd.com, chao@kernel.org, chandan.babu@oracle.com, cel@kernel.org, brauner@kernel.org, bp@alien8.de, arnd@arndb.de, anna@kernel.org, alyssa.rosenzweig@collabora.com, airlied@gmail.com, agruenba@redhat.com, agk@redhat.com, adilger.kernel@dilger.ca, zhengqi.arch@bytedance.com, akpm@linux-foundation.org From: Andrew Morton Subject: + gfs2-dynamically-allocate-the-gfs2-glock-shrinker.patch added to mm-unstable branch Message-Id: <20230911203745.B26EFC433C8@smtp.kernel.org> Precedence: bulk Reply-To: linux-kernel@vger.kernel.org List-ID: X-Mailing-List: mm-commits@vger.kernel.org The patch titled Subject: gfs2: dynamically allocate the gfs2-glock shrinker has been added to the -mm mm-unstable branch. Its filename is gfs2-dynamically-allocate-the-gfs2-glock-shrinker.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/gfs2-dynamically-allocate-the-gfs2-glock-shrinker.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm 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 via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Qi Zheng Subject: gfs2: dynamically allocate the gfs2-glock shrinker Date: Mon, 11 Sep 2023 17:44:07 +0800 Use new APIs to dynamically allocate the gfs2-glock shrinker. Link: https://lkml.kernel.org/r/20230911094444.68966-9-zhengqi.arch@bytedance.com Signed-off-by: Qi Zheng Reviewed-by: Muchun Song Cc: Bob Peterson Cc: Andreas Gruenbacher Cc: Abhinav Kumar Cc: Alasdair Kergon Cc: Alexander Viro Cc: Alyssa Rosenzweig Cc: Andreas Dilger Cc: Anna Schumaker Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Carlos Llamas Cc: Chandan Babu R Cc: Chao Yu Cc: Chris Mason Cc: Christian Brauner Cc: Christian Koenig Cc: Chuck Lever Cc: Coly Li Cc: Dai Ngo Cc: Daniel Vetter Cc: Daniel Vetter Cc: "Darrick J. Wong" Cc: Dave Chinner Cc: Dave Hansen Cc: David Airlie Cc: David Hildenbrand Cc: David Sterba Cc: Dmitry Baryshkov Cc: Gao Xiang Cc: Greg Kroah-Hartman Cc: Huang Rui Cc: Ingo Molnar Cc: Jaegeuk Kim Cc: Jani Nikula Cc: Jan Kara Cc: Jason Wang Cc: Jeff Layton Cc: Jeffle Xu Cc: Joel Fernandes (Google) Cc: Joonas Lahtinen Cc: Josef Bacik Cc: Juergen Gross Cc: Kent Overstreet Cc: Kirill Tkhai Cc: Marijn Suijten Cc: "Michael S. Tsirkin" Cc: Mike Snitzer Cc: Minchan Kim Cc: Muchun Song Cc: Nadav Amit Cc: Neil Brown Cc: Oleksandr Tyshchenko Cc: Olga Kornievskaia Cc: Paul E. McKenney Cc: Richard Weinberger Cc: Rob Clark Cc: Rob Herring Cc: Rodrigo Vivi Cc: Roman Gushchin Cc: Sean Paul Cc: Sergey Senozhatsky Cc: Song Liu Cc: Stefano Stabellini Cc: Steven Price Cc: "Theodore Ts'o" Cc: Thomas Gleixner Cc: Tomeu Vizoso Cc: Tom Talpey Cc: Trond Myklebust Cc: Tvrtko Ursulin Cc: Vlastimil Babka Cc: Xuan Zhuo Cc: Yue Hu Signed-off-by: Andrew Morton --- fs/gfs2/glock.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) --- a/fs/gfs2/glock.c~gfs2-dynamically-allocate-the-gfs2-glock-shrinker +++ a/fs/gfs2/glock.c @@ -2039,11 +2039,7 @@ static unsigned long gfs2_glock_shrink_c return vfs_pressure_ratio(atomic_read(&lru_count)); } -static struct shrinker glock_shrinker = { - .seeks = DEFAULT_SEEKS, - .count_objects = gfs2_glock_shrink_count, - .scan_objects = gfs2_glock_shrink_scan, -}; +static struct shrinker *glock_shrinker; /** * glock_hash_walk - Call a function for glock in a hash bucket @@ -2463,13 +2459,18 @@ int __init gfs2_glock_init(void) return -ENOMEM; } - ret = register_shrinker(&glock_shrinker, "gfs2-glock"); - if (ret) { + glock_shrinker = shrinker_alloc(0, "gfs2-glock"); + if (!glock_shrinker) { destroy_workqueue(glock_workqueue); rhashtable_destroy(&gl_hash_table); - return ret; + return -ENOMEM; } + glock_shrinker->count_objects = gfs2_glock_shrink_count; + glock_shrinker->scan_objects = gfs2_glock_shrink_scan; + + shrinker_register(glock_shrinker); + for (i = 0; i < GLOCK_WAIT_TABLE_SIZE; i++) init_waitqueue_head(glock_wait_table + i); @@ -2478,7 +2479,7 @@ int __init gfs2_glock_init(void) void gfs2_glock_exit(void) { - unregister_shrinker(&glock_shrinker); + shrinker_free(glock_shrinker); rhashtable_destroy(&gl_hash_table); destroy_workqueue(glock_workqueue); } _ Patches currently in -mm which might be from zhengqi.arch@bytedance.com are mm-move-some-shrinker-related-function-declarations-to-mm-internalh.patch mm-vmscan-move-shrinker-related-code-into-a-separate-file.patch mm-shrinker-remove-redundant-shrinker_rwsem-in-debugfs-operations.patch drm-ttm-introduce-pool_shrink_rwsem.patch mm-shrinker-add-infrastructure-for-dynamically-allocating-shrinker.patch kvm-mmu-dynamically-allocate-the-x86-mmu-shrinker.patch binder-dynamically-allocate-the-android-binder-shrinker.patch drm-ttm-dynamically-allocate-the-drm-ttm_pool-shrinker.patch xenbus-backend-dynamically-allocate-the-xen-backend-shrinker.patch erofs-dynamically-allocate-the-erofs-shrinker.patch f2fs-dynamically-allocate-the-f2fs-shrinker.patch gfs2-dynamically-allocate-the-gfs2-glock-shrinker.patch gfs2-dynamically-allocate-the-gfs2-qd-shrinker.patch nfsv42-dynamically-allocate-the-nfs-xattr-shrinkers.patch nfs-dynamically-allocate-the-nfs-acl-shrinker.patch nfsd-dynamically-allocate-the-nfsd-filecache-shrinker.patch quota-dynamically-allocate-the-dquota-cache-shrinker.patch ubifs-dynamically-allocate-the-ubifs-slab-shrinker.patch rcu-dynamically-allocate-the-rcu-lazy-shrinker.patch rcu-dynamically-allocate-the-rcu-kfree-shrinker.patch mm-thp-dynamically-allocate-the-thp-related-shrinkers.patch sunrpc-dynamically-allocate-the-sunrpc_cred-shrinker.patch mm-workingset-dynamically-allocate-the-mm-shadow-shrinker.patch drm-i915-dynamically-allocate-the-i915_gem_mm-shrinker.patch drm-msm-dynamically-allocate-the-drm-msm_gem-shrinker.patch drm-panfrost-dynamically-allocate-the-drm-panfrost-shrinker.patch dm-dynamically-allocate-the-dm-bufio-shrinker.patch dm-zoned-dynamically-allocate-the-dm-zoned-meta-shrinker.patch md-raid5-dynamically-allocate-the-md-raid5-shrinker.patch bcache-dynamically-allocate-the-md-bcache-shrinker.patch vmw_balloon-dynamically-allocate-the-vmw-balloon-shrinker.patch virtio_balloon-dynamically-allocate-the-virtio-balloon-shrinker.patch mbcache-dynamically-allocate-the-mbcache-shrinker.patch ext4-dynamically-allocate-the-ext4-es-shrinker.patch jbd2ext4-dynamically-allocate-the-jbd2-journal-shrinker.patch nfsd-dynamically-allocate-the-nfsd-client-shrinker.patch nfsd-dynamically-allocate-the-nfsd-reply-shrinker.patch xfs-dynamically-allocate-the-xfs-buf-shrinker.patch xfs-dynamically-allocate-the-xfs-inodegc-shrinker.patch xfs-dynamically-allocate-the-xfs-qm-shrinker.patch zsmalloc-dynamically-allocate-the-mm-zspool-shrinker.patch fs-super-dynamically-allocate-the-s_shrink.patch mm-shrinker-remove-old-apis.patch mm-shrinker-add-a-secondary-array-for-shrinker_info-map-nr_deferred.patch mm-shrinker-rename-preallocunregister_memcg_shrinker-to-shrinker_memcg_allocremove.patch mm-shrinker-make-global-slab-shrink-lockless.patch mm-shrinker-make-memcg-slab-shrink-lockless.patch mm-shrinker-hold-write-lock-to-reparent-shrinker-nr_deferred.patch mm-shrinker-convert-shrinker_rwsem-to-mutex.patch