softirqs.c 825 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // SPDX-License-Identifier: GPL-2.0
  2. #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. * /proc/softirqs ... display the number of softirqs
  9. */
  10. static int show_softirqs(struct seq_file *p, void *v)
  11. {
  12. int i, j;
  13. seq_puts(p, " ");
  14. for_each_possible_cpu(i)
  15. seq_printf(p, "CPU%-8d", i);
  16. seq_putc(p, '\n');
  17. for (i = 0; i < NR_SOFTIRQS; i++) {
  18. seq_printf(p, "%12s:", softirq_to_name[i]);
  19. for_each_possible_cpu(j)
  20. seq_printf(p, " %10u", kstat_softirqs_cpu(i, j));
  21. seq_putc(p, '\n');
  22. }
  23. return 0;
  24. }
  25. static int __init proc_softirqs_init(void)
  26. {
  27. struct proc_dir_entry *pde;
  28. pde = proc_create_single("softirqs", 0, NULL, show_softirqs);
  29. pde_make_permanent(pde);
  30. return 0;
  31. }
  32. fs_initcall(proc_softirqs_init);