From: Arnd Bergmann <arnd@kernel.org>
To: "Petr Mladek" <pmladek@suse.com>,
"Thomas Weißschuh" <thomas.weissschuh@linutronix.de>,
"John Ogness" <john.ogness@linutronix.de>
Cc: Arnd Bergmann <arnd@arndb.de>,
Steven Rostedt <rostedt@goodmis.org>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
linux-kernel@vger.kernel.org
Subject: [PATCH] printk: kunit: support offstack cpumask
Date: Fri, 20 Jun 2025 21:25:20 +0200 [thread overview]
Message-ID: <20250620192554.2234184-1-arnd@kernel.org> (raw)
From: Arnd Bergmann <arnd@arndb.de>
For large values of CONFIG_NR_CPUS, the newly added kunit test fails
to build:
kernel/printk/printk_ringbuffer_kunit_test.c: In function 'test_readerwriter':
kernel/printk/printk_ringbuffer_kunit_test.c:279:1: error: the frame size of 1432 bytes is larger than 1280 bytes [-Werror=frame-larger-than=]
Change this to use cpumask_var_t and allocate it dynamically when
CONFIG_CPUMASK_OFFSTACK is set.
Fixes: 5ea2bcdfbf46 ("printk: ringbuffer: Add KUnit test")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
kernel/printk/printk_ringbuffer_kunit_test.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/kernel/printk/printk_ringbuffer_kunit_test.c b/kernel/printk/printk_ringbuffer_kunit_test.c
index 4081ae051d8e..9f79bc91246e 100644
--- a/kernel/printk/printk_ringbuffer_kunit_test.c
+++ b/kernel/printk/printk_ringbuffer_kunit_test.c
@@ -227,9 +227,12 @@ static void test_readerwriter(struct kunit *test)
struct prbtest_thread_data *thread_data;
struct prbtest_data *test_data;
struct task_struct *thread;
- cpumask_t test_cpus;
+ cpumask_var_t test_cpus;
int cpu, reader_cpu;
+ if (alloc_cpumask_var(&test_cpus, GFP_KERNEL))
+ return;
+
cpus_read_lock();
/*
* Failure of KUNIT_ASSERT() kills the current task
@@ -237,15 +240,15 @@ static void test_readerwriter(struct kunit *test)
* Instead use a snapshot of the online CPUs.
* If they change during test execution it is unfortunate but not a grave error.
*/
- cpumask_copy(&test_cpus, cpu_online_mask);
+ cpumask_copy(test_cpus, cpu_online_mask);
cpus_read_unlock();
/* One CPU is for the reader, all others are writers */
- reader_cpu = cpumask_first(&test_cpus);
- if (cpumask_weight(&test_cpus) == 1)
+ reader_cpu = cpumask_first(test_cpus);
+ if (cpumask_weight(test_cpus) == 1)
kunit_warn(test, "more than one CPU is recommended");
else
- cpumask_clear_cpu(reader_cpu, &test_cpus);
+ cpumask_clear_cpu(reader_cpu, test_cpus);
/* KUnit test can get restarted more times. */
prbtest_prb_reinit(&test_rb);
@@ -258,7 +261,7 @@ static void test_readerwriter(struct kunit *test)
kunit_info(test, "running for %lu ms\n", runtime_ms);
- for_each_cpu(cpu, &test_cpus) {
+ for_each_cpu(cpu, test_cpus) {
thread_data = kunit_kmalloc(test, sizeof(*thread_data), GFP_KERNEL);
KUNIT_ASSERT_NOT_NULL(test, thread_data);
thread_data->test_data = test_data;
@@ -276,6 +279,8 @@ static void test_readerwriter(struct kunit *test)
prbtest_reader(test_data, runtime_ms);
kunit_info(test, "completed test\n");
+
+ free_cpumask_var(test_cpus);
}
static struct kunit_case prb_test_cases[] = {
--
2.39.5
next reply other threads:[~2025-06-20 19:25 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-20 19:25 Arnd Bergmann [this message]
2025-06-20 19:28 ` [PATCH] printk: kunit: support offstack cpumask Arnd Bergmann
2025-06-23 6:03 ` Thomas Weißschuh
2025-06-23 10:38 ` Petr Mladek
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=20250620192554.2234184-1-arnd@kernel.org \
--to=arnd@kernel.org \
--cc=arnd@arndb.de \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
--cc=thomas.weissschuh@linutronix.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.