Root/
1 | #include <linux/init.h> |
2 | #include <linux/kernel_stat.h> |
3 | #include <linux/proc_fs.h> |
4 | #include <linux/seq_file.h> |
5 | |
6 | /* |
7 | * /proc/softirqs ... display the number of softirqs |
8 | */ |
9 | static int show_softirqs(struct seq_file *p, void *v) |
10 | { |
11 | int i, j; |
12 | |
13 | seq_printf(p, " "); |
14 | for_each_possible_cpu(i) |
15 | seq_printf(p, "CPU%-8d", i); |
16 | seq_printf(p, "\n"); |
17 | |
18 | for (i = 0; i < NR_SOFTIRQS; i++) { |
19 | seq_printf(p, "%8s:", softirq_to_name[i]); |
20 | for_each_possible_cpu(j) |
21 | seq_printf(p, " %10u", kstat_softirqs_cpu(i, j)); |
22 | seq_printf(p, "\n"); |
23 | } |
24 | return 0; |
25 | } |
26 | |
27 | static int softirqs_open(struct inode *inode, struct file *file) |
28 | { |
29 | return single_open(file, show_softirqs, NULL); |
30 | } |
31 | |
32 | static const struct file_operations proc_softirqs_operations = { |
33 | .open = softirqs_open, |
34 | .read = seq_read, |
35 | .llseek = seq_lseek, |
36 | .release = single_release, |
37 | }; |
38 | |
39 | static int __init proc_softirqs_init(void) |
40 | { |
41 | proc_create("softirqs", 0, NULL, &proc_softirqs_operations); |
42 | return 0; |
43 | } |
44 | module_init(proc_softirqs_init); |
45 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9