diff options
| author | Andrii Nakryiko <[email protected]> | 2024-11-13 21:51:10 +0000 |
|---|---|---|
| committer | Andrii Nakryiko <[email protected]> | 2024-11-13 21:53:21 +0000 |
| commit | 379d5ee624eda6a897d9e1f7f88c68ea482bd5fa (patch) | |
| tree | ffdbffa393781d1afaf21310e8ca2e55c4888f4f /fs/xfs/xfs_exchrange.c | |
| parent | Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf (diff) | |
| parent | selftests/bpf: Add a test for arena range tree algorithm (diff) | |
| download | kernel-379d5ee624eda6a897d9e1f7f88c68ea482bd5fa.tar.gz kernel-379d5ee624eda6a897d9e1f7f88c68ea482bd5fa.zip | |
Merge branch 'bpf-range_tree-for-bpf-arena'
Alexei Starovoitov says:
====================
bpf: range_tree for bpf arena
From: Alexei Starovoitov <[email protected]>
Introduce range_tree (interval tree plus rbtree) to track
unallocated ranges in bpf arena and replace maple_tree with it.
This is a step towards making bpf_arena|free_alloc_pages non-sleepable.
The previous approach to reuse drm_mm to replace maple_tree reached
dead end, since sizeof(struct drm_mm_node) = 168 and
sizeof(struct maple_node) = 256 while
sizeof(struct range_node) = 64 introduced in this patch.
Not only it's smaller, but the algorithm splits and merges
adjacent ranges. Ultimate performance doesn't matter.
The main objective of range_tree is to work in context
where kmalloc/kfree are not safe. It achieves that via bpf_mem_alloc.
====================
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Andrii Nakryiko <[email protected]>
Diffstat (limited to 'fs/xfs/xfs_exchrange.c')
0 files changed, 0 insertions, 0 deletions
