So here is a different approach to solve the early SRCU issue. Early initialized ssp's are reset on srcu_init() and their callbacks get requeued.
I expanded testing in the last patch. git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git rcu/dev HEAD: 0dc3551822c74a0f34783cbd64a9199c9758ec6d Thanks, Frederic --- Frederic Weisbecker (5): srcu: Unconditionally embed struct lockdep_map srcu: Initialize SRCU after timers srcu: Fix broken node geometry after early ssp init srcu: Queue a callback in case of early started poll srcu: Early test SRCU polling start include/linux/srcu.h | 6 +++ include/linux/srcutree.h | 4 +- init/main.c | 2 + kernel/rcu/rcu.h | 6 --- kernel/rcu/srcutree.c | 119 ++++++++++++++++++++++++++++++++++++++++++----- kernel/rcu/tiny.c | 1 - kernel/rcu/tree.c | 1 - kernel/rcu/update.c | 12 ++++- 8 files changed, 129 insertions(+), 22 deletions(-)