kernel/trace/ring_buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Don't populate the read-only 'type' on the stack at run time,
instead make it static.
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
kernel/trace/ring_buffer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index 00fc38d70e86..39aa1f50274f 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -4118,7 +4118,7 @@ EXPORT_SYMBOL_GPL(ring_buffer_unlock_commit);
static const char *show_irq_str(int bits)
{
- const char *type[] = {
+ static const char * type[] = {
".", // 0
"s", // 1
"h", // 2
--
2.50.0
On Mon, 14 Jul 2025 17:08:58 +0100 Colin Ian King <colin.i.king@gmail.com> wrote: > Don't populate the read-only 'type' on the stack at run time, > instead make it static. > > Signed-off-by: Colin Ian King <colin.i.king@gmail.com> > --- > kernel/trace/ring_buffer.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c > index 00fc38d70e86..39aa1f50274f 100644 > --- a/kernel/trace/ring_buffer.c > +++ b/kernel/trace/ring_buffer.c > @@ -4118,7 +4118,7 @@ EXPORT_SYMBOL_GPL(ring_buffer_unlock_commit); > > static const char *show_irq_str(int bits) > { > - const char *type[] = { > + static const char * type[] = { Better would be: static const char type[][4] = { David > ".", // 0 > "s", // 1 > "h", // 2
On Mon, 14 Jul 2025 17:08:58 +0100 Colin Ian King <colin.i.king@gmail.com> wrote: > Don't populate the read-only 'type' on the stack at run time, > instead make it static. Hmm, why not? -- Steve
Le 14/07/2025 à 18:15, Steven Rostedt a écrit : > On Mon, 14 Jul 2025 17:08:58 +0100 > Colin Ian King <colin.i.king@gmail.com> wrote: > >> Don't populate the read-only 'type' on the stack at run time, >> instead make it static. > > Hmm, why not? > > -- Steve > > This is more efficient because there is no need to copy things on the stack at run-time. It also makes binary slightly smaller. On my x86_64, with allmodconfig: Before: ====== 229194 924492 35104 1188790 1223b6 kernel/trace/ring_buffer.o After: ===== 228873 924268 35040 1188181 122155 kernel/trace/ring_buffer.o CJ
© 2016 - 2025 Red Hat, Inc.