summaryrefslogtreecommitdiff
path: root/tools/testing/radix-tree/maple.c
diff options
context:
space:
mode:
authorLiam R. Howlett <Liam.Howlett@Oracle.com>2025-09-03 15:00:02 +0200
committerVlastimil Babka <vbabka@suse.cz>2025-09-29 09:40:46 +0200
commit6bf377b06c08049d0f4042493df302285e45165e (patch)
treec80922435d2820e075dc1a2ba81b13ef4cddef2c /tools/testing/radix-tree/maple.c
parent9b05890a25d9197e39fcf5b2298f0b911c323306 (diff)
maple_tree: Add single node allocation support to maple state
The fast path through a write will require replacing a single node in the tree. Using a sheaf (32 nodes) is too heavy for the fast path, so special case the node store operation by just allocating one node in the maple state. Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Diffstat (limited to 'tools/testing/radix-tree/maple.c')
-rw-r--r--tools/testing/radix-tree/maple.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/maple.c
index 72a8fe8e832a..83260f2efb19 100644
--- a/tools/testing/radix-tree/maple.c
+++ b/tools/testing/radix-tree/maple.c
@@ -35085,10 +35085,15 @@ static unsigned char get_vacant_height(struct ma_wr_state *wr_mas, void *entry)
static int mas_allocated(struct ma_state *mas)
{
+ int total = 0;
+
+ if (mas->alloc)
+ total++;
+
if (mas->sheaf)
- return kmem_cache_sheaf_size(mas->sheaf);
+ total += kmem_cache_sheaf_size(mas->sheaf);
- return 0;
+ return total;
}
/* Preallocation testing */
static noinline void __init check_prealloc(struct maple_tree *mt)