diff options
Diffstat (limited to 'kernel/rcutree_trace.c')
| -rw-r--r-- | kernel/rcutree_trace.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/kernel/rcutree_trace.c b/kernel/rcutree_trace.c index c90d2a917def..107997ecdeeb 100644 --- a/kernel/rcutree_trace.c +++ b/kernel/rcutree_trace.c | |||
| @@ -316,6 +316,26 @@ static const struct file_operations rcuhier_fops = { | |||
| 316 | .release = single_release, | 316 | .release = single_release, |
| 317 | }; | 317 | }; |
| 318 | 318 | ||
| 319 | static int new_show_rcuhier(struct seq_file *m, void *v) | ||
| 320 | { | ||
| 321 | struct rcu_state *rsp = (struct rcu_state *)m->private; | ||
| 322 | print_one_rcu_state(m, rsp); | ||
| 323 | return 0; | ||
| 324 | } | ||
| 325 | |||
| 326 | static int new_rcuhier_open(struct inode *inode, struct file *file) | ||
| 327 | { | ||
| 328 | return single_open(file, new_show_rcuhier, inode->i_private); | ||
| 329 | } | ||
| 330 | |||
| 331 | static const struct file_operations new_rcuhier_fops = { | ||
| 332 | .owner = THIS_MODULE, | ||
| 333 | .open = new_rcuhier_open, | ||
| 334 | .read = seq_read, | ||
| 335 | .llseek = no_llseek, | ||
| 336 | .release = seq_release, | ||
| 337 | }; | ||
| 338 | |||
| 319 | static void show_one_rcugp(struct seq_file *m, struct rcu_state *rsp) | 339 | static void show_one_rcugp(struct seq_file *m, struct rcu_state *rsp) |
| 320 | { | 340 | { |
| 321 | unsigned long flags; | 341 | unsigned long flags; |
| @@ -494,6 +514,10 @@ static int __init rcutree_trace_init(void) | |||
| 494 | if (!retval) | 514 | if (!retval) |
| 495 | goto free_out; | 515 | goto free_out; |
| 496 | 516 | ||
| 517 | retval = debugfs_create_file("rcuhier", 0444, | ||
| 518 | rspdir, rsp, &new_rcuhier_fops); | ||
| 519 | if (!retval) | ||
| 520 | goto free_out; | ||
| 497 | } | 521 | } |
| 498 | 522 | ||
| 499 | retval = debugfs_create_file("rcubarrier", 0444, rcudir, | 523 | retval = debugfs_create_file("rcubarrier", 0444, rcudir, |
