[PATCH RFC v3 7/9] maple_tree: use slub percpu array

From: Vlastimil Babka
Date: Wed Nov 29 2023 - 04:54:18 EST


Just make sure the maple_node_cache has a percpu array of size 32.

Will break with CONFIG_SLAB.
---
lib/maple_tree.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lib/maple_tree.c b/lib/maple_tree.c
index bb24d84a4922..d9e7088fd9a7 100644
--- a/lib/maple_tree.c
+++ b/lib/maple_tree.c
@@ -6213,9 +6213,16 @@ bool mas_nomem(struct ma_state *mas, gfp_t gfp)

void __init maple_tree_init(void)
{
+ int ret;
+
maple_node_cache = kmem_cache_create("maple_node",
sizeof(struct maple_node), sizeof(struct maple_node),
- SLAB_PANIC, NULL);
+ SLAB_PANIC | SLAB_NO_MERGE, NULL);
+
+ ret = kmem_cache_setup_percpu_array(maple_node_cache, 32);
+
+ if (ret)
+ pr_warn("error %d creating percpu_array for maple_node_cache\n", ret);
}

/**

--
2.43.0