lib/stackdepot: rename next_pool_required to new_pool_required

Rename next_pool_required to new_pool_required.

This a purely code readability change: the following patch will change
stack depot to store the pointer to the new pool in a separate variable,
and "new" seems like a more logical name.

Link: https://lkml.kernel.org/r/fd7cd6c6eb250c13ec5d2009d75bb4ddd1470db9.1700502145.git.andreyknvl@google.com
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Reviewed-by: Alexander Potapenko <glider@google.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Evgenii Stepanov <eugenis@google.com>
Cc: Marco Elver <elver@google.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Andrey Konovalov 2023-11-20 18:47:07 +01:00 committed by Andrew Morton
parent 94b7d32870
commit b6a353d3eb

View File

@ -93,12 +93,11 @@ static size_t pool_offset;
static DEFINE_RAW_SPINLOCK(pool_lock); static DEFINE_RAW_SPINLOCK(pool_lock);
/* /*
* Stack depot tries to keep an extra pool allocated even before it runs out * Stack depot tries to keep an extra pool allocated even before it runs out
* of space in the currently used pool. * of space in the currently used pool. This flag marks whether this extra pool
* This flag marks that this next extra pool needs to be allocated and * needs to be allocated. It has the value 0 when either an extra pool is not
* initialized. It has the value 0 when either the next pool is not yet * yet allocated or if the limit on the number of pools is reached.
* initialized or the limit on the number of pools is reached.
*/ */
static int next_pool_required = 1; static int new_pool_required = 1;
static int __init disable_stack_depot(char *str) static int __init disable_stack_depot(char *str)
{ {
@ -225,20 +224,20 @@ out_unlock:
} }
EXPORT_SYMBOL_GPL(stack_depot_init); EXPORT_SYMBOL_GPL(stack_depot_init);
/* Keeps the preallocated memory to be used for the next stack depot pool. */ /* Keeps the preallocated memory to be used for a new stack depot pool. */
static void depot_keep_next_pool(void **prealloc) static void depot_keep_new_pool(void **prealloc)
{ {
/* /*
* If the next pool is already saved or the maximum number of * If a new pool is already saved or the maximum number of
* pools is reached, do not use the preallocated memory. * pools is reached, do not use the preallocated memory.
* Access next_pool_required non-atomically, as there are no concurrent * Access new_pool_required non-atomically, as there are no concurrent
* write accesses to this variable. * write accesses to this variable.
*/ */
if (!next_pool_required) if (!new_pool_required)
return; return;
/* /*
* Use the preallocated memory for the next pool * Use the preallocated memory for the new pool
* as long as we do not exceed the maximum number of pools. * as long as we do not exceed the maximum number of pools.
*/ */
if (pool_index + 1 < DEPOT_MAX_POOLS) { if (pool_index + 1 < DEPOT_MAX_POOLS) {
@ -247,13 +246,13 @@ static void depot_keep_next_pool(void **prealloc)
} }
/* /*
* At this point, either the next pool is kept or the maximum * At this point, either a new pool is kept or the maximum
* number of pools is reached. In either case, take note that * number of pools is reached. In either case, take note that
* keeping another pool is not required. * keeping another pool is not required.
* smp_store_release() pairs with smp_load_acquire() in * smp_store_release() pairs with smp_load_acquire() in
* stack_depot_save(). * stack_depot_save().
*/ */
smp_store_release(&next_pool_required, 0); smp_store_release(&new_pool_required, 0);
} }
/* Updates references to the current and the next stack depot pools. */ /* Updates references to the current and the next stack depot pools. */
@ -268,7 +267,7 @@ static bool depot_update_pools(size_t required_size, void **prealloc)
} }
/* /*
* Move on to the next pool. * Move on to the new pool.
* WRITE_ONCE() pairs with potential concurrent read in * WRITE_ONCE() pairs with potential concurrent read in
* stack_depot_fetch(). * stack_depot_fetch().
*/ */
@ -277,12 +276,12 @@ static bool depot_update_pools(size_t required_size, void **prealloc)
/* /*
* If the maximum number of pools is not reached, take note * If the maximum number of pools is not reached, take note
* that the next pool needs to be initialized. * that yet another new pool needs to be allocated.
* smp_store_release() pairs with smp_load_acquire() in * smp_store_release() pairs with smp_load_acquire() in
* stack_depot_save(). * stack_depot_save().
*/ */
if (pool_index + 1 < DEPOT_MAX_POOLS) if (pool_index + 1 < DEPOT_MAX_POOLS)
smp_store_release(&next_pool_required, 1); smp_store_release(&new_pool_required, 1);
} }
/* Check if the current pool is not yet allocated. */ /* Check if the current pool is not yet allocated. */
@ -293,9 +292,9 @@ static bool depot_update_pools(size_t required_size, void **prealloc)
return true; return true;
} }
/* Otherwise, try using the preallocated memory for the next pool. */ /* Otherwise, try using the preallocated memory for a new pool. */
if (*prealloc) if (*prealloc)
depot_keep_next_pool(prealloc); depot_keep_new_pool(prealloc);
return true; return true;
} }
@ -306,7 +305,7 @@ depot_alloc_stack(unsigned long *entries, int size, u32 hash, void **prealloc)
struct stack_record *stack; struct stack_record *stack;
size_t required_size = DEPOT_STACK_RECORD_SIZE; size_t required_size = DEPOT_STACK_RECORD_SIZE;
/* Update current and next pools if required and possible. */ /* Update current and new pools if required and possible. */
if (!depot_update_pools(required_size, prealloc)) if (!depot_update_pools(required_size, prealloc))
return NULL; return NULL;
@ -438,13 +437,13 @@ depot_stack_handle_t __stack_depot_save(unsigned long *entries,
goto exit; goto exit;
/* /*
* Check if another stack pool needs to be initialized. If so, allocate * Check if another stack pool needs to be allocated. If so, allocate
* the memory now - we won't be able to do that under the lock. * the memory now: we won't be able to do that under the lock.
* *
* smp_load_acquire() pairs with smp_store_release() in * smp_load_acquire() pairs with smp_store_release() in
* depot_update_pools() and depot_keep_next_pool(). * depot_update_pools() and depot_keep_new_pool().
*/ */
if (unlikely(can_alloc && smp_load_acquire(&next_pool_required))) { if (unlikely(can_alloc && smp_load_acquire(&new_pool_required))) {
/* /*
* Zero out zone modifiers, as we don't have specific zone * Zero out zone modifiers, as we don't have specific zone
* requirements. Keep the flags related to allocation in atomic * requirements. Keep the flags related to allocation in atomic
@ -477,9 +476,9 @@ depot_stack_handle_t __stack_depot_save(unsigned long *entries,
} else if (prealloc) { } else if (prealloc) {
/* /*
* Stack depot already contains this stack trace, but let's * Stack depot already contains this stack trace, but let's
* keep the preallocated memory for the future. * keep the preallocated memory for future.
*/ */
depot_keep_next_pool(&prealloc); depot_keep_new_pool(&prealloc);
} }
raw_spin_unlock_irqrestore(&pool_lock, flags); raw_spin_unlock_irqrestore(&pool_lock, flags);