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: <20230807110936.21819-7-zhengqi.arch@bytedance.com> Date: Mon, 7 Aug 2023 19:08:54 +0800 From: Qi Zheng <zhengqi.arch@...edance.com> To: 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 Cc: 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, Qi Zheng <zhengqi.arch@...edance.com> Subject: [PATCH v4 06/48] binder: dynamically allocate the android-binder shrinker Use new APIs to dynamically allocate the android-binder shrinker. Signed-off-by: Qi Zheng <zhengqi.arch@...edance.com> --- drivers/android/binder_alloc.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c index e3db8297095a..62675cedd38e 100644 --- a/drivers/android/binder_alloc.c +++ b/drivers/android/binder_alloc.c @@ -1053,11 +1053,7 @@ binder_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) NULL, sc->nr_to_scan); } -static struct shrinker binder_shrinker = { - .count_objects = binder_shrink_count, - .scan_objects = binder_shrink_scan, - .seeks = DEFAULT_SEEKS, -}; +static struct shrinker *binder_shrinker; /** * binder_alloc_init() - called by binder_open() for per-proc initialization @@ -1077,19 +1073,30 @@ void binder_alloc_init(struct binder_alloc *alloc) int binder_alloc_shrinker_init(void) { - int ret = list_lru_init(&binder_alloc_lru); + int ret; - if (ret == 0) { - ret = register_shrinker(&binder_shrinker, "android-binder"); - if (ret) - list_lru_destroy(&binder_alloc_lru); + ret = list_lru_init(&binder_alloc_lru); + if (ret) + return ret; + + binder_shrinker = shrinker_alloc(0, "android-binder"); + if (!binder_shrinker) { + list_lru_destroy(&binder_alloc_lru); + return -ENOMEM; } - return ret; + + binder_shrinker->count_objects = binder_shrink_count; + binder_shrinker->scan_objects = binder_shrink_scan; + binder_shrinker->seeks = DEFAULT_SEEKS; + + shrinker_register(binder_shrinker); + + return 0; } void binder_alloc_shrinker_exit(void) { - unregister_shrinker(&binder_shrinker); + shrinker_free(binder_shrinker); list_lru_destroy(&binder_alloc_lru); } -- 2.30.2
Powered by blists - more mailing lists