Commit | Line | Data |
---|---|---|
b2441318 | 1 | // SPDX-License-Identifier: GPL-2.0 |
d3d64df2 KK |
2 | #include <linux/init.h> |
3 | #include <linux/kernel_stat.h> | |
4 | #include <linux/proc_fs.h> | |
5 | #include <linux/seq_file.h> | |
ef1d6178 | 6 | #include "internal.h" |
d3d64df2 KK |
7 | |
8 | /* | |
9 | * /proc/softirqs ... display the number of softirqs | |
10 | */ | |
11 | static int show_softirqs(struct seq_file *p, void *v) | |
12 | { | |
13 | int i, j; | |
14 | ||
9d6de12f | 15 | seq_puts(p, " "); |
d3d64df2 KK |
16 | for_each_possible_cpu(i) |
17 | seq_printf(p, "CPU%-8d", i); | |
9d6de12f | 18 | seq_putc(p, '\n'); |
d3d64df2 KK |
19 | |
20 | for (i = 0; i < NR_SOFTIRQS; i++) { | |
19cd56c4 | 21 | seq_printf(p, "%12s:", softirq_to_name[i]); |
d3d64df2 KK |
22 | for_each_possible_cpu(j) |
23 | seq_printf(p, " %10u", kstat_softirqs_cpu(i, j)); | |
9d6de12f | 24 | seq_putc(p, '\n'); |
d3d64df2 KK |
25 | } |
26 | return 0; | |
27 | } | |
28 | ||
d3d64df2 KK |
29 | static int __init proc_softirqs_init(void) |
30 | { | |
ef1d6178 AD |
31 | struct proc_dir_entry *pde; |
32 | ||
33 | pde = proc_create_single("softirqs", 0, NULL, show_softirqs); | |
34 | pde_make_permanent(pde); | |
d3d64df2 KK |
35 | return 0; |
36 | } | |
abaf3787 | 37 | fs_initcall(proc_softirqs_init); |