]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
rust: alloc: implement `KVmalloc` allocator
authorDanilo Krummrich <dakr@kernel.org>
Fri, 7 Mar 2025 22:49:35 +0000 (23:49 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 12:01:44 +0000 (13:01 +0100)
commitb1ae22456ab52f06635ecdff5102f8a41a7e0a01
tree77700ab67376e82bf97a603772f71500142ab0bf
parent88c5feb07ae052bb2f22d9ae162c5619bfc9e257
rust: alloc: implement `KVmalloc` allocator

commit 8362c2608ba1be635ffa22a256dfcfe51c6238cc upstream.

Implement `Allocator` for `KVmalloc`, an `Allocator` that tries to
allocate memory with `kmalloc` first and, on failure, falls back to
`vmalloc`.

All memory allocations made with `KVmalloc` end up in
`kvrealloc_noprof()`; all frees in `kvfree()`.

Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Link: https://lore.kernel.org/r/20241004154149.93856-10-dakr@kernel.org
[ Reworded typo. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
rust/helpers/slab.c
rust/kernel/alloc/allocator.rs
rust/kernel/alloc/allocator_test.rs