[RFC v1 3/5] maple_tree: use slub percpu array

Vlastimil Babka
2023-08-08T09:54:01Z

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 4dd73cf936a6..1196d0a17f03 100644
--- a/lib/maple_tree.c
+++ b/lib/maple_tree.c
@@ -6180,9 +6180,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.41.0