mirror of https://github.com/torvalds/linux.git
tools/testing/radix-tree: test maple tree chaining mas_preallocate() calls
Testing calling multiple mas_preallocate() calls in a row after adjusting the maple state. Ensures new calls to mas_preallocate() will change the number of allocated nodes. Link: https://lkml.kernel.org/r/20250616184521.3382795-4-Liam.Howlett@oracle.com Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com> Acked-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Cc: Hailong Liu <hailong.liu@oppo.com> Cc: "Liam R. Howlett" <howlett@gmail.com> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Peng Zhang <zhangpeng.00@bytedance.com> Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com> Cc: Suren Baghdasaryan <surenb@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
f687fd5af8
commit
ec3681e873
|
|
@ -35669,6 +35669,18 @@ static noinline void __init check_prealloc(struct maple_tree *mt)
|
||||||
allocated = mas_allocated(&mas);
|
allocated = mas_allocated(&mas);
|
||||||
height = mas_mt_height(&mas);
|
height = mas_mt_height(&mas);
|
||||||
MT_BUG_ON(mt, allocated != 0);
|
MT_BUG_ON(mt, allocated != 0);
|
||||||
|
|
||||||
|
/* Chaining multiple preallocations */
|
||||||
|
mt_set_in_rcu(mt);
|
||||||
|
mas_set_range(&mas, 800, 805); /* Slot store, should be 0 allocations */
|
||||||
|
MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) != 0);
|
||||||
|
allocated = mas_allocated(&mas);
|
||||||
|
MT_BUG_ON(mt, allocated != 0);
|
||||||
|
mas.last = 809; /* Node store */
|
||||||
|
MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) != 0);
|
||||||
|
allocated = mas_allocated(&mas);
|
||||||
|
MT_BUG_ON(mt, allocated != 1);
|
||||||
|
mas_store_prealloc(&mas, ptr);
|
||||||
}
|
}
|
||||||
/* End of preallocation testing */
|
/* End of preallocation testing */
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue