How to Celebrate The Second Heisenbug Hunt?

I haven't yet decided, but the possibilities include:

  1. Test the full set of configurations for extended time periods. Perhaps something to do over the US Thanksgiving holiday. (Done.)
  2. Validate the tracing data that RCU provides via debugfs. (Done.)
  3. Modify kernel/rcutree.h to allow a four-level rcu_node hierarchy, then run one on a 16-CPU machine. The idea here would be to flush out any race conditions that might be provoked by the taller hierarchy. (Done.)
  4. Make use of the stutter and shuffle capabilties within rcutorture. (Done.)
  5. Create a new rcutorture option to invoke force_quiescent_state() more frequently, on the order of microseconds rather than milliseconds, as suggested by Josh Triplett.
  6. Implement expedited preemptible RCU grace periods, and see if these provoke additional bugs. Currently “expedited” preemptible RCU grace periods just invoke the normal RCU grace period. (Done.)
  7. Inspect the code, producing low-level documentation in the process.

But what would you do?