diff options
author | Vlastimil Babka <vbabka@suse.cz> | 2025-02-03 12:28:50 +0300 |
---|---|---|
committer | Vlastimil Babka <vbabka@suse.cz> | 2025-02-05 12:45:35 +0300 |
commit | c9f8f1242a4c3e48adc6c3cf6b31c1ffbaa49943 (patch) | |
tree | ce7329b9e2f9368e30c44b04fe64cc6765d419d3 /rust/helpers/helpers.c | |
parent | 49d5377b38aa127451cf5dc6d6ea5d9da7f465a4 (diff) | |
download | linux-c9f8f1242a4c3e48adc6c3cf6b31c1ffbaa49943.tar.xz |
slab: don't batch kvfree_rcu() with SLUB_TINY
kvfree_rcu() is batched for better performance except on TINY_RCU, which
is a simple implementation for small UP systems. Similarly SLUB_TINY is
an option intended for small systems, whether or not used together with
TINY_RCU. In case SLUB_TINY is used with !TINY_RCU, it makes arguably
sense to not do the batching and limit the memory footprint. It's also
suboptimal to have RCU-specific #ifdefs in slab code.
With that, add CONFIG_KVFREE_RCU_BATCHED to determine whether batching
kvfree_rcu() implementation is used. It is not set by a user prompt, but
enabled by default and disabled in case TINY_RCU or SLUB_TINY are
enabled.
Use the new config for #ifdef's in slab code and extend their scope to
cover all code used by the batched kvfree_rcu(). For example there's no
need to perform kvfree_rcu_init() if the batching is disabled.
Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Tested-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Diffstat (limited to 'rust/helpers/helpers.c')
0 files changed, 0 insertions, 0 deletions