[PATCH] ring-buffer: make the const read-only 'type' static

Colin Ian King posted 1 patch 2 months, 3 weeks ago
kernel/trace/ring_buffer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] ring-buffer: make the const read-only 'type' static
Posted by Colin Ian King 2 months, 3 weeks ago
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
Re: [PATCH] ring-buffer: make the const read-only 'type' static
Posted by David Laight 2 months, 2 weeks ago
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
Re: [PATCH] ring-buffer: make the const read-only 'type' static
Posted by Steven Rostedt 2 months, 3 weeks ago
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
Re: [PATCH] ring-buffer: make the const read-only 'type' static
Posted by Christophe JAILLET 2 months, 2 weeks ago
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