[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1593614103-23574-1-git-send-email-pizhenwei@bytedance.com>
Date: Wed, 1 Jul 2020 22:35:03 +0800
From: zhenwei pi <pizhenwei@...edance.com>
To: adobriyan@...il.com
Cc: tglx@...utronix.de, kzak@...hat.com, linux-kernel@...r.kernel.org,
linux-fsdevel@...r.kernel.org, zhenwei pi <pizhenwei@...edance.com>
Subject: [PATCH] fs/proc: add short desc for /proc/softirqs
Only softirq name is not friendly to end-users, typically 'HI' is
difficult to understand. During developing irqtop/lsirq utilities
for util-linux, Karel Zak considered that we should give more
information to end-users. Discuss about this:
https://github.com/karelzak/util-linux/pull/1079
Add short desc for /proc/softirqs in this patch, then /proc/softirqs
gets more human-readable.
Signed-off-by: zhenwei pi <pizhenwei@...edance.com>
---
fs/proc/softirqs.c | 2 +-
include/linux/interrupt.h | 5 +++--
kernel/softirq.c | 12 ++++++++++++
3 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/fs/proc/softirqs.c b/fs/proc/softirqs.c
index 12901dc..fcd21f3 100644
--- a/fs/proc/softirqs.c
+++ b/fs/proc/softirqs.c
@@ -20,7 +20,7 @@ static int show_softirqs(struct seq_file *p, void *v)
seq_printf(p, "%12s:", softirq_to_name[i]);
for_each_possible_cpu(j)
seq_printf(p, " %10u", kstat_softirqs_cpu(i, j));
- seq_putc(p, '\n');
+ seq_printf(p, " %s\n", softirq_to_desc[i]);
}
return 0;
}
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 5db970b..1d51397 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -543,10 +543,11 @@ enum
#define SOFTIRQ_STOP_IDLE_MASK (~(1 << RCU_SOFTIRQ))
-/* map softirq index to softirq name. update 'softirq_to_name' in
- * kernel/softirq.c when adding a new softirq.
+/* map softirq index to softirq name. update 'softirq_to_name' &
+ * 'softirq_to_desc' in kernel/softirq.c when adding a new softirq.
*/
extern const char * const softirq_to_name[NR_SOFTIRQS];
+extern const char * const softirq_to_desc[NR_SOFTIRQS];
/* softirq mask and active fields moved to irq_cpustat_t in
* asm/hardirq.h to get better cache usage. KAO
diff --git a/kernel/softirq.c b/kernel/softirq.c
index c4201b7f..74eca3b 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -61,6 +61,18 @@ const char * const softirq_to_name[NR_SOFTIRQS] = {
"TASKLET", "SCHED", "HRTIMER", "RCU"
};
+const char * const softirq_to_desc[NR_SOFTIRQS] = {
+ "high priority tasklet softirq",
+ "timer softirq",
+ "network transmit softirq",
+ "network receive softirq",
+ "block device softirq",
+ "IO poll softirq",
+ "normal priority tasklet softirq",
+ "schedule softirq",
+ "high resolution timer softirq",
+ "RCU softirq"
+};
/*
* we cannot loop indefinitely here to avoid userspace starvation,
* but we also don't want to introduce a worst case 1/HZ latency
--
2.7.4
Powered by blists - more mailing lists