diff options
author | Michael Wang <wangyun@linux.vnet.ibm.com> | 2012-10-08 04:59:16 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2012-11-08 14:55:41 -0500 |
commit | c25e557f5d49a7cb94fad473f5ced75b6c7ce094 (patch) | |
tree | f1d63b8bb4a410e69b3a6057c683db2863e9f4ba /kernel/rcutree_trace.c | |
parent | 42c3533eee88e012e1aa3c4d6d2cc53354130e24 (diff) |
rcu: split 'rcubarrier' to each flavor
This patch add new 'rcubarrier' to each flavor's folder, now we could use:
'cat /debugfs/rcu/rsp/rcubarrier'
to get the selected rsp info.
Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcutree_trace.c')
-rw-r--r-- | kernel/rcutree_trace.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/kernel/rcutree_trace.c b/kernel/rcutree_trace.c index 3312ed7e411e..65b6265531ff 100644 --- a/kernel/rcutree_trace.c +++ b/kernel/rcutree_trace.c | |||
@@ -103,6 +103,28 @@ static const struct file_operations rcubarrier_fops = { | |||
103 | .release = single_release, | 103 | .release = single_release, |
104 | }; | 104 | }; |
105 | 105 | ||
106 | static int new_show_rcubarrier(struct seq_file *m, void *v) | ||
107 | { | ||
108 | struct rcu_state *rsp = (struct rcu_state *)m->private; | ||
109 | seq_printf(m, "bcc: %d nbd: %lu\n", | ||
110 | atomic_read(&rsp->barrier_cpu_count), | ||
111 | rsp->n_barrier_done); | ||
112 | return 0; | ||
113 | } | ||
114 | |||
115 | static int new_rcubarrier_open(struct inode *inode, struct file *file) | ||
116 | { | ||
117 | return single_open(file, new_show_rcubarrier, inode->i_private); | ||
118 | } | ||
119 | |||
120 | static const struct file_operations new_rcubarrier_fops = { | ||
121 | .owner = THIS_MODULE, | ||
122 | .open = new_rcubarrier_open, | ||
123 | .read = seq_read, | ||
124 | .llseek = no_llseek, | ||
125 | .release = seq_release, | ||
126 | }; | ||
127 | |||
106 | #ifdef CONFIG_RCU_BOOST | 128 | #ifdef CONFIG_RCU_BOOST |
107 | 129 | ||
108 | static char convert_kthread_status(unsigned int kthread_status) | 130 | static char convert_kthread_status(unsigned int kthread_status) |
@@ -432,6 +454,11 @@ static int __init rcutree_trace_init(void) | |||
432 | rspdir, rsp, &rcu_pending_fops); | 454 | rspdir, rsp, &rcu_pending_fops); |
433 | if (!retval) | 455 | if (!retval) |
434 | goto free_out; | 456 | goto free_out; |
457 | |||
458 | retval = debugfs_create_file("rcubarrier", 0444, | ||
459 | rspdir, rsp, &new_rcubarrier_fops); | ||
460 | if (!retval) | ||
461 | goto free_out; | ||
435 | } | 462 | } |
436 | 463 | ||
437 | retval = debugfs_create_file("rcubarrier", 0444, rcudir, | 464 | retval = debugfs_create_file("rcubarrier", 0444, rcudir, |