diff options
| -rw-r--r-- | kernel/rcutree.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c index 5aab7dabd0d5..ff214118e4b8 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c | |||
| @@ -487,8 +487,11 @@ static void print_other_cpu_stall(struct rcu_state *rsp) | |||
| 487 | rcu_print_task_stall(rnp); | 487 | rcu_print_task_stall(rnp); |
| 488 | raw_spin_unlock_irqrestore(&rnp->lock, flags); | 488 | raw_spin_unlock_irqrestore(&rnp->lock, flags); |
| 489 | 489 | ||
| 490 | /* OK, time to rat on our buddy... */ | 490 | /* |
| 491 | 491 | * OK, time to rat on our buddy... | |
| 492 | * See Documentation/RCU/stallwarn.txt for info on how to debug | ||
| 493 | * RCU CPU stall warnings. | ||
| 494 | */ | ||
| 492 | printk(KERN_ERR "INFO: %s detected stalls on CPUs/tasks: {", | 495 | printk(KERN_ERR "INFO: %s detected stalls on CPUs/tasks: {", |
| 493 | rsp->name); | 496 | rsp->name); |
| 494 | rcu_for_each_leaf_node(rsp, rnp) { | 497 | rcu_for_each_leaf_node(rsp, rnp) { |
| @@ -517,6 +520,11 @@ static void print_cpu_stall(struct rcu_state *rsp) | |||
| 517 | unsigned long flags; | 520 | unsigned long flags; |
| 518 | struct rcu_node *rnp = rcu_get_root(rsp); | 521 | struct rcu_node *rnp = rcu_get_root(rsp); |
| 519 | 522 | ||
| 523 | /* | ||
| 524 | * OK, time to rat on ourselves... | ||
| 525 | * See Documentation/RCU/stallwarn.txt for info on how to debug | ||
| 526 | * RCU CPU stall warnings. | ||
| 527 | */ | ||
| 520 | printk(KERN_ERR "INFO: %s detected stall on CPU %d (t=%lu jiffies)\n", | 528 | printk(KERN_ERR "INFO: %s detected stall on CPU %d (t=%lu jiffies)\n", |
| 521 | rsp->name, smp_processor_id(), jiffies - rsp->gp_start); | 529 | rsp->name, smp_processor_id(), jiffies - rsp->gp_start); |
| 522 | trigger_all_cpu_backtrace(); | 530 | trigger_all_cpu_backtrace(); |
