linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: andrey.konovalov@linux.dev
To: Marco Elver <elver@google.com>, Alexander Potapenko <glider@google.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>,
	Dmitry Vyukov <dvyukov@google.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	kasan-dev@googlegroups.com, Evgenii Stepanov <eugenis@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Andrey Konovalov <andreyknvl@google.com>
Subject: [PATCH v2 08/19] lib/stackdepot: rename next_pool_required to new_pool_required
Date: Wed, 13 Sep 2023 19:14:33 +0200	[thread overview]
Message-ID: <e074fa3f4962897b84afb3d65767f5fc3b5d1234.1694625260.git.andreyknvl@google.com> (raw)
In-Reply-To: <cover.1694625260.git.andreyknvl@google.com>

From: Andrey Konovalov <andreyknvl@google.com>

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.

Reviewed-by: Alexander Potapenko <glider@google.com>
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
---
 lib/stackdepot.c | 45 ++++++++++++++++++++++-----------------------
 1 file changed, 22 insertions(+), 23 deletions(-)

diff --git a/lib/stackdepot.c b/lib/stackdepot.c
index e85b658be050..e428f470faf6 100644
--- a/lib/stackdepot.c
+++ b/lib/stackdepot.c
@@ -93,12 +93,11 @@ static size_t pool_offset;
 static DEFINE_RAW_SPINLOCK(pool_lock);
 /*
  * Stack depot tries to keep an extra pool allocated even before it runs out
- * of space in the currently used pool.
- * This flag marks that this next extra pool needs to be allocated and
- * initialized. It has the value 0 when either the next pool is not yet
- * initialized or the limit on the number of pools is reached.
+ * of space in the currently used pool. This flag marks whether this extra pool
+ * needs to be allocated. It has the value 0 when either an extra pool is not
+ * yet allocated or if 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)
 {
@@ -219,18 +218,18 @@ int stack_depot_init(void)
 }
 EXPORT_SYMBOL_GPL(stack_depot_init);
 
-/* Keeps the preallocated memory to be used for the next stack depot pool. */
-static void depot_keep_next_pool(void **prealloc)
+/* Keeps the preallocated memory to be used for a new stack depot pool. */
+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.
 	 */
 	if (!next_pool_required)
 		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.
 	 */
 	if (pool_index + 1 < DEPOT_MAX_POOLS) {
@@ -239,12 +238,12 @@ 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
 	 * keeping another pool is not required.
 	 * smp_store_release pairs with smp_load_acquire in stack_depot_save.
 	 */
-	smp_store_release(&next_pool_required, 0);
+	smp_store_release(&new_pool_required, 0);
 }
 
 /* Updates refences to the current and the next stack depot pools. */
@@ -259,7 +258,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
 		 * stack_depot_fetch.
 		 */
@@ -268,12 +267,12 @@ static bool depot_update_pools(size_t required_size, void **prealloc)
 
 		/*
 		 * 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
 		 * stack_depot_save.
 		 */
 		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. */
@@ -284,9 +283,9 @@ static bool depot_update_pools(size_t required_size, void **prealloc)
 		return true;
 	}
 
-	/* Otherwise, try using the preallocated memory for the next pool. */
+	/* Otherwise, try using the preallocated memory for a new pool. */
 	if (*prealloc)
-		depot_keep_next_pool(prealloc);
+		depot_keep_new_pool(prealloc);
 	return true;
 }
 
@@ -297,7 +296,7 @@ depot_alloc_stack(unsigned long *entries, int size, u32 hash, void **prealloc)
 	struct stack_record *stack;
 	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))
 		return NULL;
 
@@ -429,13 +428,13 @@ depot_stack_handle_t __stack_depot_save(unsigned long *entries,
 		goto exit;
 
 	/*
-	 * Check if another stack pool needs to be initialized. If so, allocate
-	 * the memory now - we won't be able to do that under the lock.
+	 * 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.
 	 *
 	 * smp_load_acquire pairs with smp_store_release in depot_update_pools
-	 * and depot_keep_next_pool.
+	 * 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
 		 * requirements. Keep the flags related to allocation in atomic
@@ -468,9 +467,9 @@ depot_stack_handle_t __stack_depot_save(unsigned long *entries,
 	} else if (prealloc) {
 		/*
 		 * 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);
-- 
2.25.1



  parent reply	other threads:[~2023-09-13 17:16 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-13 17:14 [PATCH v2 00/19] stackdepot: allow evicting stack traces andrey.konovalov
2023-09-13 17:14 ` [PATCH v2 01/19] lib/stackdepot: check disabled flag when fetching andrey.konovalov
2023-09-13 17:14 ` [PATCH v2 02/19] lib/stackdepot: simplify __stack_depot_save andrey.konovalov
2023-09-13 17:14 ` [PATCH v2 03/19] lib/stackdepot: drop valid bit from handles andrey.konovalov
2023-09-13 17:14 ` [PATCH v2 04/19] lib/stackdepot: add depot_fetch_stack helper andrey.konovalov
2023-09-13 17:14 ` [PATCH v2 05/19] lib/stackdepot: use fixed-sized slots for stack records andrey.konovalov
2023-09-15  8:55   ` Marco Elver
2023-09-15 16:46     ` Andrey Konovalov
2023-09-13 17:14 ` [PATCH v2 06/19] lib/stackdepot: fix and clean-up atomic annotations andrey.konovalov
2023-10-06 16:14   ` Alexander Potapenko
2023-10-06 17:21     ` Alexander Potapenko
2023-10-23 16:15       ` Andrey Konovalov
2023-09-13 17:14 ` [PATCH v2 07/19] lib/stackdepot: rework helpers for depot_alloc_stack andrey.konovalov
2023-10-09  8:59   ` Alexander Potapenko
2023-10-09  9:35     ` Alexander Potapenko
2023-10-23 16:16     ` Andrey Konovalov
2023-09-13 17:14 ` andrey.konovalov [this message]
2023-09-13 17:14 ` [PATCH v2 09/19] lib/stackdepot: store next pool pointer in new_pool andrey.konovalov
2023-09-19 16:13   ` Alexander Potapenko
2023-09-13 17:14 ` [PATCH v2 10/19] lib/stackdepot: store free stack records in a freelist andrey.konovalov
2023-10-09  9:32   ` Alexander Potapenko
2023-09-13 17:14 ` [PATCH v2 11/19] lib/stackdepot: use read/write lock andrey.konovalov
2023-10-09  9:45   ` Alexander Potapenko
2023-10-23 16:16     ` Andrey Konovalov
2023-09-13 17:14 ` [PATCH v2 12/19] lib/stackdepot: use list_head for stack record links andrey.konovalov
2023-09-16 17:43   ` Anders Roxell
2023-09-16 20:04     ` Andrew Morton
2023-10-09 12:15       ` Alexander Potapenko
2023-10-23 16:17         ` Andrey Konovalov
2023-09-13 17:14 ` [PATCH v2 13/19] kmsan: use stack_depot_save instead of __stack_depot_save andrey.konovalov
2023-10-09 10:00   ` Alexander Potapenko
2023-09-13 17:14 ` [PATCH v2 14/19] lib/stackdepot, kasan: add flags to __stack_depot_save and rename andrey.konovalov
2023-09-15 20:31   ` Marco Elver
2023-09-15 23:42     ` Andrey Konovalov
2023-10-09 10:09   ` Alexander Potapenko
2023-10-23 16:17     ` Andrey Konovalov
2023-09-13 17:14 ` [PATCH v2 15/19] lib/stackdepot: add refcount for records andrey.konovalov
2023-10-09 11:40   ` Alexander Potapenko
2023-09-13 17:14 ` [PATCH v2 16/19] lib/stackdepot: allow users to evict stack traces andrey.konovalov
2023-09-13 17:14 ` [PATCH v2 17/19] kasan: remove atomic accesses to stack ring entries andrey.konovalov
2023-10-09 12:05   ` Alexander Potapenko
2023-10-23 16:17     ` Andrey Konovalov
2023-09-13 17:14 ` [PATCH v2 18/19] kasan: check object_size in kasan_complete_mode_report_info andrey.konovalov
2023-10-09 12:17   ` Alexander Potapenko
2023-09-13 17:14 ` [PATCH v2 19/19] kasan: use stack_depot_put for tag-based modes andrey.konovalov
2023-10-09 12:24   ` Alexander Potapenko
2023-10-23 16:17     ` Andrey Konovalov
2023-10-05 20:35 ` [PATCH v2 00/19] stackdepot: allow evicting stack traces Andrey Konovalov
2023-10-09 12:35   ` Marco Elver
2023-10-09 19:39     ` Andrey Konovalov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e074fa3f4962897b84afb3d65767f5fc3b5d1234.1694625260.git.andreyknvl@google.com \
    --to=andrey.konovalov@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=andreyknvl@gmail.com \
    --cc=andreyknvl@google.com \
    --cc=dvyukov@google.com \
    --cc=elver@google.com \
    --cc=eugenis@google.com \
    --cc=glider@google.com \
    --cc=kasan-dev@googlegroups.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=osalvador@suse.de \
    --cc=vbabka@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox