linux/lib
Yury Norov f4806cc63c lib: test bitmap vs IDA vs Maple Tree performance for region allocations
Compare the cost of allocating and freeing variable-sized regions using
a bitmap, IDA and a Maple Tree. All implementations process the same
randomly generated sequence of regions containing up to 32 entries, until
the configured capacity is exhausted.

The benchmark exercises monotonic allocation into an initially empty pool,
followed by reverse-order freeing. It does not model fragmentation or
interleaved allocation and freeing, nor does it isolate locking or RCU
overhead. Allocation time includes the terminal failed request that detects
exhaustion.

Run the benchmark at several capacities to show how the approaches scale.
Report allocation and free times separately because bitmap, IDA and Maple
Tree removal have substantially different costs.

On x86/kvm, the output example is:

Start testing bitmap vs IDA vs Maple Tree region allocation
memory: bitmap is exact; IDA and Maple Tree are lower bounds
Type      alloc (ns)     free (ns)   regions  capacity  memory (B)
Bitmap      93457345        176151     60644   1000000      125000
Maple       11758660      12870146     60644   1000000     1552656
IDA         31066416      20870824     60644   1000000      134864
Bitmap        919119         17679      6032    100000       12504
Maple        1158193       1187140      6032    100000      154640
IDA          2759670       2116004      6032    100000       14288
Bitmap         17120          2043       613     10000        1256
Maple         116350        117537       613     10000       15888
IDA           243396        202654       613     10000        1872
Bitmap          1220           262        55      1000         128
Maple          12076         10106        55      1000        1552
IDA            25730         20875        55      1000         144
Bitmap           593           124        18       100          16
Maple           3599          4782        18       100         528
IDA             3266          1960        18       100         144
Bitmap           414           129        10        10           8
Maple           2143          1385        10        10         272
IDA              892           648        10        10          16
Region allocation benchmark complete

Reported IDA and Maple Tree memory figures exclude slab overhead
and transient allocations. The Maple Tree figure is additionally
a lower-bound estimate that assumes fully occupied leaf nodes and
excludes internal nodes.

IDA has no region-allocation API, so each region is implemented as
a sequence of single-ID allocations. The IDs remain contiguous
because this benchmark fills an initially empty IDA monotonically.

The benchmark is motivated by the discussion linked below about choosing
the best data structure for the channel ID pool with the capacity of 2048
IDs for the nova GPU driver.

Specifically for 2048 IDs the result is:

Bitmap          5112           615       121      2048         256
Maple          78526         59592       121      2048        3344
IDA           165274        117761       121      2048         848

The benchmark accepts a list of up to 64 nonzero capacities to test.
For example:

  insmod region_alloc_benchmark.ko capacities=1024,2048,4096,65536

The list may contain duplicate capacities. Each occurrence generates a new
region-size sequence, which is useful for collecting statistical
characteristics of the benchmark results.

Link: https://lore.kernel.org/all/20260710-chid-maple-v1-1-4ee869055268@nvidia.com/
Tested-by: Eliot Courtney <ecourtney@nvidia.com>
Reviewed-by: Eliot Courtney <ecourtney@nvidia.com>
Signed-off-by: Yury Norov <ynorov@nvidia.com>
2026-07-28 19:08:58 -04:00
..
842 lib: 842: Improve error handling in sw842_compress() 2025-02-09 18:08:11 +08:00
crc lib/crc: arm: Enable arm64's NEON intrinsics implementation of crc64 2026-05-28 13:14:23 -07:00
crypto crypto: aes - Fix conditions for selecting MAC dependencies 2026-07-09 11:06:22 -04:00
dim Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
fonts fbdev/arm: Export acorndata_8x8 font symbol for bootloader 2026-06-09 16:00:11 +02:00
kunit linux_kselftest-kunit-7.2-rc1 2026-06-16 16:33:57 +05:30
lz4 include/linux/lz4.h: add some missing macros 2025-01-24 22:47:28 -08:00
lzo lib/lzo: add unlikely hints to overrun checks 2025-08-16 17:24:31 +08:00
math mm.git review status for linus..mm-nonmm-stable 2026-04-16 20:11:56 -07:00
pldmfw Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
raid raid6: fix raid6_recov_rvv symbol undeclared warning 2026-06-25 11:51:32 -06:00
reed_solomon Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
test_fortify string: Remove strncpy() from the kernel 2026-06-18 16:39:31 -07:00
tests iov_iter: Remove unused variable in kunit_iov_iter.c 2026-07-01 15:26:29 +02:00
vdso A series of updates for the VDSO: 2026-06-15 13:57:13 +05:30
xz Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
zlib_deflate lib/zlib: drop EQUAL macro 2025-03-16 22:30:49 -07:00
zlib_dfltcc lib/zlib: unpoison DFLTCC output buffers 2024-07-03 19:30:23 -07:00
zlib_inflate Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
zstd Update zstd to the latest upstream release v1.5.7. Imported cleanly from the 2025-03-26 21:35:28 -07:00
.gitignore lib: Add stale 'raid6' directory to .gitignore file 2026-06-21 14:09:49 -07:00
alloc_tag.c lib: split codetag_lock_module_list() 2026-06-21 11:31:28 -07:00
argv_split.c argv_split: fix kernel-doc warnings 2023-09-19 13:21:33 -07:00
ashldi3.c
ashrdi3.c
asn1_decoder.c ASN.1: add module description 2025-04-11 17:32:37 -07:00
asn1_encoder.c lib/asn1_encoder: add missing MODULE_DESCRIPTION() macro 2024-06-24 22:25:06 -07:00
assoc_array.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
atomic64_test.c x86/cpufeatures: Rename X86_CMPXCHG64 to X86_CX8 2025-02-28 11:42:34 +01:00
atomic64.c atomic64: Use arch_spin_locks instead of raw_spin_locks 2025-01-22 15:07:01 -05:00
audit.c audit: fix coding style issues 2026-03-05 22:16:08 -05:00
base64.c lib/base64: fix copy-pasted @padding doc in base64_decode() 2026-05-28 21:24:43 -07:00
bcd.c lib/bcd: optimize _bin2bcd() for improved performance 2024-09-01 20:43:33 -07:00
bch.c lib/bch: fix signed shift overflow in build_mod8_tables 2026-03-27 21:19:48 -07:00
bitmap-str.c lib/bitmap-str: get rid of cpumap_print_to_pagebuf() 2026-07-22 15:38:37 -04:00
bitmap.c bitmap: Return size when no zero area is found 2026-07-22 15:38:38 -04:00
bitrev.c lib/bitrev: Introduce GENERIC_BITREVERSE 2026-05-28 11:39:16 -04:00
bootconfig-data.S bootconfig: Support embedding a bootconfig file in kernel 2022-04-26 17:58:51 -04:00
bootconfig.c bootconfig: fix NULL-pointer arithmetic in xbc_snprint_cmdline() 2026-07-01 08:08:27 +09:00
bsearch.c
btree.c btree: simplify merge logic by using btree_last() return value 2025-09-13 17:32:53 -07:00
bucket_locks.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
bug.c bug: fix warning suppressions with kunit built as module 2026-07-10 10:26:58 -06:00
build_OID_registry oid_registry: allow arbitrary size OIDs 2026-01-20 19:44:15 -08:00
buildid.c procfs: avoid fetching build ID while holding VMA lock 2026-02-05 14:10:00 -08:00
bust_spinlocks.c kernel/panic: Drop unblank_screen call 2022-09-01 16:55:35 +02:00
cache_maint.c lib: Support ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION 2025-11-21 18:42:01 +00:00
check_signature.c
checksum.c net: checksum: Move from32to16() to generic header 2024-10-30 15:29:59 +01:00
closure.c closures: use seq_putc() in debug_show() 2024-09-01 20:43:29 -07:00
clz_ctz.c bitops: Add __attribute_const__ to generic ffs()-family implementations 2025-09-08 14:58:50 -07:00
clz_tab.c
cmdline.c lib/cmdline: adjust a few comments to fix kernel-doc -Wreturn warnings 2026-05-28 21:24:50 -07:00
cmpdi2.c
cmpxchg-emu.c lib: Add one-byte emulation function 2024-04-09 22:06:00 -07:00
codetag.c lib: split codetag_lock_module_list() 2026-06-21 11:31:28 -07:00
compat_audit.c audit: use 'unsigned int' instead of 'unsigned' 2026-05-26 17:15:30 -04:00
cpu_rmap.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
cpumask.c cpumask: drop cpumask_next_wrap_old() 2025-02-24 16:37:23 -05:00
ctype.c
debug_info.c isystem: ship and use stdarg.h 2021-08-19 09:02:55 +09:00
debug_locks.c locking/lockdep: Improve noinstr vs errors 2021-06-22 13:56:43 +02:00
debugobjects.c debugobjects: Plug race against a concurrent OOM disable 2026-06-22 16:38:57 +02:00
dec_and_lock.c compiler-context-analysis: Remove __cond_lock() function-like helper 2026-01-05 16:43:33 +01:00
decompress_bunzip2.c lib: decompress_bunzip2: fix 32-bit shift undefined behavior 2026-03-27 21:19:43 -07:00
decompress_inflate.c decompressor: provide missing prototypes 2023-06-09 17:44:17 -07:00
decompress_unlz4.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
decompress_unlzma.c minmax: make generic MIN() and MAX() macros available everywhere 2024-07-28 15:49:18 -07:00
decompress_unlzo.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
decompress_unxz.c xz: fix arm fdt compile error for kmalloc replacement 2026-02-22 12:05:31 -08:00
decompress_unzstd.c decompressor: provide missing prototypes 2023-06-09 17:44:17 -07:00
decompress.c lib/decompress: use designated initializers for struct compress_format 2025-09-22 20:10:58 -07:00
devmem_is_allowed.c lib: devmem_is_allowed: include linux/io.h 2023-06-09 17:44:15 -07:00
devres.c devres: Export devm_ioremap_resource_wc() 2025-05-05 16:18:09 -05:00
dhry_1.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
dhry_2.c lib: add Dhrystone benchmark test 2023-02-02 22:50:01 -08:00
dhry_run.c KUnit: add missing MODULE_DESCRIPTION() macros for lib/test_*.ko 2024-06-24 22:25:11 -07:00
dhry.h lib: add Dhrystone benchmark test 2023-02-02 22:50:01 -08:00
digsig.c integrity-v6.18 2025-10-05 10:48:33 -07:00
dump_stack.c panic/printk: replace this_cpu_in_panic() with panic_on_this_cpu() 2025-09-13 17:32:52 -07:00
dynamic_debug.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
dynamic_queue_limits.c dql: Fix dql->limit value when reset. 2025-03-25 06:26:55 -07:00
earlycpio.c lib: move from strlcpy with unused retval to strscpy 2022-09-11 21:55:10 -07:00
errname.c parisc: Drop the HP-UX ENOSYM and EREMOTERELEASE error codes 2023-11-25 09:43:18 +01:00
error-inject.c error-inject: use IS_ERR() check for debugfs_create_file() 2026-05-28 21:24:57 -07:00
errseq.c errseq: eliminate special limitation for macro MAX_ERRNO 2025-05-11 17:54:06 -07:00
extable.c sparc32: switch to generic extables 2021-01-03 20:05:18 -05:00
fault-inject-usercopy.c lib/fault-inject-usercopy.c: use PTR_ERR_OR_ZERO() to simplify code 2025-09-13 17:32:46 -07:00
fault-inject.c fault-inject: use prandom where cryptographically secure randomness is not needed 2025-01-12 20:21:00 -08:00
fdt_addresses.c
fdt_empty_tree.c
fdt_ro.c
fdt_rw.c
fdt_strerror.c
fdt_sw.c
fdt_wip.c
fdt.c
find_bit_benchmark_rust.rs rust: add find_bit_benchmark_rust module. 2025-09-22 15:52:44 -04:00
find_bit_benchmark.c lib: bitmap: add tests for bitmap_find_next_zero_area_off() 2026-07-22 15:38:36 -04:00
find_bit.c bitmap: drop __find_nth_andnot_bit() 2026-03-23 13:33:51 -04:00
flex_proportions.c flex_proportions: make fprop_new_period() hardirq safe 2026-01-26 19:03:46 -08:00
fw_table.c lib/firmware_table: Provide buffer length argument to cdat_table_parse() 2024-03-13 00:03:21 -07:00
genalloc.c lib/genalloc: fix device leak in of_gen_pool_get() 2025-09-28 11:36:13 -07:00
generic-radix-tree.c lib/generic-radix-tree.c: add preallocation 2024-09-09 09:41:47 -04:00
glob.c tracing: Prevent out-of-bounds read in glob matching 2026-07-07 10:42:28 -04:00
group_cpus.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
hexdump.c kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08:00
hweight.c bitops: Update kernel-doc in hweight.c to fix the issues with it 2025-11-06 11:51:04 -05:00
idr.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
inflate.c lib/inflate: fix typo "This results" to "The results" in comment 2026-03-27 21:19:42 -07:00
interval_tree_test.c lib: interval_tree_test: validate benchmark parameters 2026-06-17 15:37:47 -07:00
interval_tree.c interval_tree: Fix ITSTATIC usage for *_subtree_search() 2025-10-14 14:45:22 -07:00
iomap_copy.c s390: Stop using weak symbols for __iowrite64_copy() 2024-04-22 17:11:20 -03:00
iomap.c asm-generic/io.h: rework split ioread64/iowrite64 helpers 2025-03-01 21:00:22 +01:00
iomem_copy.c lib/iomem_copy: fix kerneldoc format style 2024-10-29 07:14:29 +00:00
iommu-helper.c
iov_iter.c iov_iter: Fix a memory leak in iov_iter_extract_user_pages() 2026-07-01 15:26:29 +02:00
irq_poll.c softirq: Remove unused 'action' parameter from action callback 2024-08-20 17:13:40 +02:00
irq_regs.c
is_single_threaded.c
kasprintf.c isystem: ship and use stdarg.h 2021-08-19 09:02:55 +09:00
Kconfig mm.git review status for mm-hotfixes-stable..mm-nonmm-stable 2026-06-21 13:20:19 -07:00
Kconfig.debug lib: test bitmap vs IDA vs Maple Tree performance for region allocations 2026-07-28 19:08:58 -04:00
Kconfig.kasan kasan: introduce ARCH_DEFER_KASAN and unify static key across modes 2025-09-21 14:21:58 -07:00
Kconfig.kcsan objtool: Drop noinstr hack for KCSAN_WEAK_MEMORY 2025-08-28 16:58:46 -07:00
Kconfig.kfence mm/slab: remove CONFIG_SLAB from all Kconfig and Makefile 2023-12-05 11:14:40 +01:00
Kconfig.kgdb Documentation: move dev-tools debugging files to process/debugging/ 2024-12-17 13:46:53 -07:00
Kconfig.kmsan KMSAN: Restore dynamic check for '-fsanitize=kernel-memory' 2025-10-27 16:22:02 -07:00
Kconfig.ubsan Kconfig.ubsan: Remove CONFIG_UBSAN_REPORT_FULL from documentation 2026-01-07 12:16:03 -08:00
kfifo.c kfifo: fix kmalloc_array_node() argument order 2026-01-26 19:07:09 -08:00
klist.c
kobject_uevent.c kernfs: pass struct ns_common instead of const void * for namespace tags 2026-04-09 14:36:52 +02:00
kobject.c kernfs: pass struct ns_common instead of const void * for namespace tags 2026-04-09 14:36:52 +02:00
kstrtox.c lib: fix _parse_integer_limit() to handle overflow 2026-05-28 21:24:49 -07:00
kstrtox.h lib: vsprintf: Fix handling of number field widths in vsscanf 2021-05-19 15:05:11 +02:00
linear_ranges.c lib/linear_ranges: Add linear_range_get_selector_high_array 2026-03-30 16:58:33 +02:00
list_debug.c lib/list_debug.c: add object information in case of invalid object 2025-01-25 20:22:23 -08:00
list_sort.c lib/list_sort: remove dummy cmp() calls to speed up merge_final() 2026-04-02 23:36:22 -07:00
llist.c llist: make llist_add_batch() a static inline 2025-05-27 19:40:34 -07:00
locking-selftest-hardirq.h
locking-selftest-mutex.h
locking-selftest-rlock-hardirq.h
locking-selftest-rlock-softirq.h
locking-selftest-rlock.h
locking-selftest-rsem.h
locking-selftest-rtmutex.h
locking-selftest-softirq.h
locking-selftest-spin-hardirq.h
locking-selftest-spin-softirq.h
locking-selftest-spin.h
locking-selftest-wlock-hardirq.h
locking-selftest-wlock-softirq.h
locking-selftest-wlock.h
locking-selftest-wsem.h
locking-selftest.c lockdep/selftests: Restore sched_rt_mutex state on PREEMPT_RT 2026-06-03 11:38:47 +02:00
lockref.c compiler-context-analysis: Remove __cond_lock() function-like helper 2026-01-05 16:43:33 +01:00
logic_iomem.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
logic_pio.c logic_pio: Constify fwnode_handle 2024-10-14 16:33:24 -05:00
lru_cache.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
lshrdi3.c
lwq.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
Makefile lib: test bitmap vs IDA vs Maple Tree performance for region allocations 2026-07-28 19:08:58 -04:00
maple_tree.c maple_tree: document that "last" in mtree_insert_range() is inclusive 2026-06-02 15:22:14 -07:00
memcat_p.c
memory-notifier-error-inject.c
memregion.c
memweight.c
min_heap.c lib min_heap: use size_t for array size and index variables 2025-03-16 23:24:14 -07:00
muldi3.c
net_utils.c net, treewide: define and use MAC_ADDR_STR_LEN 2025-03-19 19:17:58 +01:00
netdev-notifier-error-inject.c
nlattr.c netlink: add nla be16/32 types to minlen array 2024-02-22 19:01:55 -08:00
nmi_backtrace.c lib/nmi_backtrace: print out the CPUs which fail to respond to NMI 2026-05-28 21:24:59 -07:00
notifier-error-inject.c lib: remove error checking for debugfs_create_dir() 2023-08-18 10:18:55 -07:00
notifier-error-inject.h
objagg.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
objpool.c objpool: fix the overestimation of object pooling metadata size 2026-02-12 15:45:57 -08:00
of-reconfig-notifier-error-inject.c
oid_registry.c lib/oid_registry.c: remove unused sprint_OID 2025-05-11 17:54:13 -07:00
once.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
packing_test.c lib: packing: add pack_fields() and unpack_fields() 2024-12-11 20:13:00 -08:00
packing.c lib: packing: add pack_fields() and unpack_fields() 2024-12-11 20:13:00 -08:00
parman.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
parser.c lib: parser: fix match_wildcard to correctly handle trailing stars 2026-04-02 23:36:24 -07:00
percpu_counter.c lib/percpu_counter: add missing __percpu qualifier to a cast 2024-09-01 20:43:34 -07:00
percpu_test.c percpu: add a test case for the specific 64-bit value addition 2024-11-06 20:11:14 -08:00
percpu-refcount.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
plist.c treewide: Update email address 2026-01-11 06:09:11 -10:00
pm-notifier-error-inject.c
radix-tree.c radix tree: remove unused variable 2023-08-21 13:07:22 -07:00
radix-tree.h radix-tree: move declarations to header 2023-06-12 11:31:50 -07:00
random32.c Random number generator updates for Linux 6.13-rc1. 2024-11-19 10:43:44 -08:00
ratelimit.c lib: ratelimit: fix spelling mistake 'seperately' 2025-11-20 14:03:45 -08:00
rbtree_test.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
rbtree.c rbtree: Provide rbtree with links 2026-02-27 16:40:16 +01:00
rcuref.c rcuref: Plug slowpath race in rcuref_put() 2025-01-29 15:21:31 +01:00
ref_tracker.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
refcount.c lib: fix spelling mistakes 2021-07-08 11:48:20 -07:00
region_alloc_benchmark.c lib: test bitmap vs IDA vs Maple Tree performance for region allocations 2026-07-28 19:08:58 -04:00
rhashtable.c rhashtable: clear stale iter->p on table restart 2026-07-17 09:04:45 +10:00
sbitmap.c lib/sbitmap: make sbitmap_get_shallow() internal 2025-08-07 06:30:17 -06:00
scatterlist.c scatterlist: Fix offset in folio calc in extract_xarray_to_sg() 2026-07-01 15:26:29 +02:00
seq_buf.c seq_buf: export seq_buf_putmem_hex() and add KUnit tests 2026-05-28 21:24:41 -07:00
sg_pool.c lib/sg_pool: change module_init(sg_pool_init) to subsys_initcall 2022-09-23 16:46:19 +02:00
sg_split.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
siphash.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
smp_processor_id.c lib/smp_processor_id: Make migration check unconditional of SMP 2025-07-10 17:52:13 +02:00
sort.c lib/sort.c: add _nonatomic() variants with cond_resched() 2025-04-01 15:20:46 -07:00
stackdepot.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
stmp_device.c
string_helpers.c lib/string_helpers: annotate struct strarray with __counted_by_ptr 2026-05-13 10:54:08 -07:00
string.c mm.git review status for mm-hotfixes-stable..mm-nonmm-stable 2026-06-21 13:20:19 -07:00
strncpy_from_user.c lib/strn*,uaccess: Use masked_user_{read/write}_access_begin when required 2025-11-18 15:27:35 +01:00
strnlen_user.c lib/strn*,uaccess: Use masked_user_{read/write}_access_begin when required 2025-11-18 15:27:35 +01:00
sys_info.c sys_info: add a default kernel sys_info mask 2025-11-20 14:03:43 -08:00
syscall.c sched: Change task_struct::state 2021-06-18 11:43:09 +02:00
test_bitmap.c bitmap: Properly initialise destination bitmap for scatter & gather test 2026-07-22 15:38:37 -04:00
test_bitops.c lib/test_bitops: Add benchmark test for fns() 2024-05-09 09:25:08 -07:00
test_bpf.c bpf: Exhaustive test coverage for signed division and modulo 2026-04-20 17:57:36 -07:00
test_context-analysis.c compiler-context-analysis: Bump required Clang version to 23 2026-05-28 12:20:19 +02:00
test_debug_virtual.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
test_dynamic_debug.c dyndbg: add missing MODULE_DESCRIPTION() macro 2024-06-04 17:40:02 +02:00
test_firmware.c lib/test_firmware: allocate the configured into_buf size 2026-06-11 11:42:21 -07:00
test_fpu_glue.c lib: fix the NULL vs IS_ERR() bug for debugfs_create_dir() 2024-09-01 20:43:40 -07:00
test_fpu_impl.c selftests/fpu: move FP code to a separate translation unit 2024-05-19 14:36:20 -07:00
test_fpu.h selftests/fpu: move FP code to a separate translation unit 2024-05-19 14:36:20 -07:00
test_free_pages.c KUnit: add missing MODULE_DESCRIPTION() macros for lib/test_*.ko 2024-06-24 22:25:11 -07:00
test_hexdump.c KUnit: add missing MODULE_DESCRIPTION() macros for lib/test_*.ko 2024-06-24 22:25:11 -07:00
test_hmm_uapi.h lib/test_hmm: add large page allocation failure testing 2025-11-24 15:08:48 -08:00
test_hmm.c lib/test_hmm: check alloc_page_vma() return value and handle OOM 2026-06-08 18:21:32 -07:00
test_ida.c ida: Add ida_find_first_range() 2025-03-25 10:18:31 -03:00
test_kho.c kho: persist blob size in KHO FDT 2026-04-18 00:10:48 -07:00
test_kmod.c lib/test_kmod: do not hardcode/depend on any filesystem 2025-05-11 17:54:09 -07:00
test_lockup.c lib/test_lockup: fix kernel pointer check for separate address spaces 2022-02-25 09:36:06 +01:00
test_maple_tree.c MAINTAINERS: update Liam's email address 2026-04-27 05:54:25 -07:00
test_memcat_p.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
test_meminit.c mm.git review status for mm-hotfixes-stable..mm-stable 2026-06-19 10:14:34 -07:00
test_module.c KUnit: add missing MODULE_DESCRIPTION() macros for lib/test_*.ko 2024-06-24 22:25:11 -07:00
test_objagg.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
test_objpool.c lib: test_objpool: Avoid direct access to hrtimer clockbase 2025-09-09 12:27:18 +02:00
test_parman.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
test_ref_tracker.c ref_tracker: eliminate the ref_tracker_dir name field 2025-06-19 17:02:04 -07:00
test_rhashtable.c rhashtable: Add selftest for rhashtable_next_key() 2026-06-05 08:00:07 -07:00
test_static_key_base.c KUnit: add missing MODULE_DESCRIPTION() macros for lib/test_*.ko 2024-06-24 22:25:11 -07:00
test_static_keys.c KUnit: add missing MODULE_DESCRIPTION() macros for lib/test_*.ko 2024-06-24 22:25:11 -07:00
test_sysctl.c sysctl: Close test ctl_headers with a for loop 2025-04-14 14:13:41 +02:00
test_ubsan.c ubsan: Fix panic from test_ubsan_out_of_bounds 2025-04-15 13:50:17 -07:00
test_vmalloc.c lib/test_vmalloc: add vrealloc test case 2026-06-02 15:22:32 -07:00
test_workqueue.c workqueue: avoid unguarded 64-bit division 2026-04-03 07:14:24 -10:00
test_xarray.c xarray: make xa_alloc_cyclic() return 0 on all success cases 2025-05-11 17:48:19 -07:00
test-kstrtox.c lib: add more string to 64-bit integer conversion overflow tests 2026-05-28 21:24:50 -07:00
textsearch.c
timerqueue.c timerqueue: Provide linked timerqueue 2026-02-27 16:40:16 +01:00
trace_readwrite.c lib/trace_readwrite.c:: replace asm-generic/io with linux/io 2023-12-29 12:22:29 -08:00
ts_bm.c lib/ts_bm: fix integer overflow in pattern length calculation 2026-03-27 21:19:44 -07:00
ts_fsm.c lib/ts: add missing MODULE_DESCRIPTION() macros 2024-06-24 22:25:04 -07:00
ts_kmp.c lib/ts_kmp: fix integer overflow in pattern length calculation 2026-03-27 21:19:44 -07:00
ubsan.c ubsan: Fix incorrect hand-side used in handle 2025-08-25 06:11:06 -07:00
ubsan.h ubsan/overflow: Rework integer overflow sanitizer option to turn on everything 2025-03-07 19:58:05 -08:00
ucmpdi2.c
ucs2_string.c ucs2_string: add module description 2025-04-11 17:32:38 -07:00
union_find.c Union-Find: add a new module in kernel library 2024-07-30 13:04:36 -10:00
usercopy.c uaccess: unify inline vs outline copy_{from,to}_user() selection 2026-05-28 21:24:44 -07:00
uuid.c lib/uuid: fix typo "reversion" to "revision" in comment 2026-03-27 21:19:41 -07:00
vsprintf.c printk changes for 7.2 2026-06-17 12:05:20 -07:00
win_minmax.c rxrpc: Generate rtt_min 2024-12-09 13:48:29 -08:00
xarray.c xarray: remove redundant __GFP_NOWARN 2025-09-13 16:54:46 -07:00
xxhash.c lib/xxhash: remove more unused xxh functions 2025-11-12 10:00:17 -08:00