lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <CAEXW_YTKHUeZHWtzeSG5Tt7MscNKjVTScBWkVDkC4Orisa7w=Q@mail.gmail.com> Date: Mon, 7 Aug 2023 10:16:03 -0400 From: Joel Fernandes <joel@...lfernandes.org> To: Qi Zheng <zhengqi.arch@...edance.com> Cc: akpm@...ux-foundation.org, david@...morbit.com, tkhai@...ru, vbabka@...e.cz, roman.gushchin@...ux.dev, djwong@...nel.org, brauner@...nel.org, paulmck@...nel.org, tytso@....edu, steven.price@....com, cel@...nel.org, senozhatsky@...omium.org, yujie.liu@...el.com, gregkh@...uxfoundation.org, muchun.song@...ux.dev, simon.horman@...igine.com, dlemoal@...nel.org, linux-kernel@...r.kernel.org, linux-mm@...ck.org, x86@...nel.org, kvm@...r.kernel.org, xen-devel@...ts.xenproject.org, linux-erofs@...ts.ozlabs.org, linux-f2fs-devel@...ts.sourceforge.net, cluster-devel@...hat.com, linux-nfs@...r.kernel.org, linux-mtd@...ts.infradead.org, rcu@...r.kernel.org, netdev@...r.kernel.org, dri-devel@...ts.freedesktop.org, linux-arm-msm@...r.kernel.org, dm-devel@...hat.com, linux-raid@...r.kernel.org, linux-bcache@...r.kernel.org, virtualization@...ts.linux-foundation.org, linux-fsdevel@...r.kernel.org, linux-ext4@...r.kernel.org, linux-xfs@...r.kernel.org, linux-btrfs@...r.kernel.org Subject: Re: [PATCH v4 18/48] rcu: dynamically allocate the rcu-lazy shrinker On Mon, Aug 7, 2023 at 7:36 AM Qi Zheng <zhengqi.arch@...edance.com> wrote: > > Use new APIs to dynamically allocate the rcu-lazy shrinker. > > Signed-off-by: Qi Zheng <zhengqi.arch@...edance.com> For RCU: Reviewed-by: Joel Fernandes (Google) <joel@...lfernandes.org> thanks, - Joel > --- > kernel/rcu/tree_nocb.h | 20 +++++++++++--------- > 1 file changed, 11 insertions(+), 9 deletions(-) > > diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h > index 5598212d1f27..e1c59c33738a 100644 > --- a/kernel/rcu/tree_nocb.h > +++ b/kernel/rcu/tree_nocb.h > @@ -1396,13 +1396,6 @@ lazy_rcu_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) > > return count ? count : SHRINK_STOP; > } > - > -static struct shrinker lazy_rcu_shrinker = { > - .count_objects = lazy_rcu_shrink_count, > - .scan_objects = lazy_rcu_shrink_scan, > - .batch = 0, > - .seeks = DEFAULT_SEEKS, > -}; > #endif // #ifdef CONFIG_RCU_LAZY > > void __init rcu_init_nohz(void) > @@ -1410,6 +1403,7 @@ void __init rcu_init_nohz(void) > int cpu; > struct rcu_data *rdp; > const struct cpumask *cpumask = NULL; > + struct shrinker * __maybe_unused lazy_rcu_shrinker; > > #if defined(CONFIG_NO_HZ_FULL) > if (tick_nohz_full_running && !cpumask_empty(tick_nohz_full_mask)) > @@ -1436,8 +1430,16 @@ void __init rcu_init_nohz(void) > return; > > #ifdef CONFIG_RCU_LAZY > - if (register_shrinker(&lazy_rcu_shrinker, "rcu-lazy")) > - pr_err("Failed to register lazy_rcu shrinker!\n"); > + lazy_rcu_shrinker = shrinker_alloc(0, "rcu-lazy"); > + if (!lazy_rcu_shrinker) { > + pr_err("Failed to allocate lazy_rcu shrinker!\n"); > + } else { > + lazy_rcu_shrinker->count_objects = lazy_rcu_shrink_count; > + lazy_rcu_shrinker->scan_objects = lazy_rcu_shrink_scan; > + lazy_rcu_shrinker->seeks = DEFAULT_SEEKS; > + > + shrinker_register(lazy_rcu_shrinker); > + } > #endif // #ifdef CONFIG_RCU_LAZY > > if (!cpumask_subset(rcu_nocb_mask, cpu_possible_mask)) { > -- > 2.30.2 >
Powered by blists - more mailing lists