[PATCH v4 08/48] xenbus/backend: dynamically allocate the xen-backend shrinker
STALE1139d
REVIEWED: 1 (0M)
From: Qi Zheng <hidden>
Date: 2023-08-07 11:13:43
Also in:
dm-devel, dri-devel, kvm, linux-arm-msm, linux-btrfs, linux-ext4, linux-f2fs-devel, linux-fsdevel, linux-mm, linux-nfs, linux-raid, linux-xfs, lkml, netdev, rcu, xen-devel
Subsystem:
the rest, xen hypervisor interface · Maintainers:
Linus Torvalds, Juergen Gross, Stefano Stabellini
Use new APIs to dynamically allocate the xen-backend shrinker.
Signed-off-by: Qi Zheng <redacted>
Reviewed-by: Muchun Song <redacted>
---
drivers/xen/xenbus/xenbus_probe_backend.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/drivers/xen/xenbus/xenbus_probe_backend.c b/drivers/xen/xenbus/xenbus_probe_backend.c
index da96c260e26b..929c41a5ccee 100644
--- a/drivers/xen/xenbus/xenbus_probe_backend.c
+++ b/drivers/xen/xenbus/xenbus_probe_backend.c
@@ -284,13 +284,9 @@ static unsigned long backend_shrink_memory_count(struct shrinker *shrinker,
return 0;
}
-static struct shrinker backend_memory_shrinker = {
- .count_objects = backend_shrink_memory_count,
- .seeks = DEFAULT_SEEKS,
-};
-
static int __init xenbus_probe_backend_init(void)
{
+ struct shrinker *backend_memory_shrinker;
static struct notifier_block xenstore_notifier = {
.notifier_call = backend_probe_and_watch
};@@ -305,8 +301,16 @@ static int __init xenbus_probe_backend_init(void)
register_xenstore_notifier(&xenstore_notifier);
- if (register_shrinker(&backend_memory_shrinker, "xen-backend"))
- pr_warn("shrinker registration failed\n");
+ backend_memory_shrinker = shrinker_alloc(0, "xen-backend");
+ if (!backend_memory_shrinker) {
+ pr_warn("shrinker allocation failed\n");
+ return 0;
+ }
+
+ backend_memory_shrinker->count_objects = backend_shrink_memory_count;
+ backend_memory_shrinker->seeks = DEFAULT_SEEKS;
+
+ shrinker_register(backend_memory_shrinker);
return 0;
}--
2.30.2