rust: alloc: implement `KVmalloc` allocator
authorDanilo Krummrich <dakr@kernel.org>
Fri, 4 Oct 2024 15:41:13 +0000 (17:41 +0200)
committerMiguel Ojeda <ojeda@kernel.org>
Tue, 15 Oct 2024 20:56:59 +0000 (22:56 +0200)
commit8362c2608ba1be635ffa22a256dfcfe51c6238cc
treebfc3d85e690eca26563011e21ffaac053a2ffaf2
parent61c004781d6b928443052e7a6cf84b35d4f61401
rust: alloc: implement `KVmalloc` allocator

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>
rust/helpers/slab.c
rust/kernel/alloc/allocator.rs
rust/kernel/alloc/allocator_test.rs