Hi Paul, On Thu, Jun 30, 2016 at 6:52 PM, Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote: > On Thu, Jun 30, 2016 at 05:53:42PM +0200, Geert Uytterhoeven wrote: >> +void rcu_dump_rcu_sched_tree(void) >> +{ >> + struct rcu_head rh; >> + unsigned long flags; >> + >> + rcu_dump_rcu_node_tree(&rcu_sched_state); /* Initial state. */ >> + local_irq_save(flags); >> + // call_rcu(&rh, do_nothing_cb); >> + local_irq_restore(flags); >> + // schedule_timeout_uninterruptible(5 * HZ); /* Or whatever delay. */ >> + rcu_dump_rcu_node_tree(&rcu_sched_state); /* GP state. */ >> + //synchronize_sched(); /* Probably hangs. */ >> + //rcu_barrier(); /* Drop RCU's references to rh before return. */ >> +} >> >> When enabling any of the 4 commented-out lines in rcu_dump_rcu_sched_tree(), >> it will lock up. > > OK, but that includes schedule_timeout_uninterruptible(5 * HZ), right? Yes it does. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds