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