Is it really safe to use workqueues to drive expedited grace periods?

From: Paul E. McKenney
Date: Fri Feb 10 2017 - 20:28:28 EST


So RCU's expedited grace periods have been using workqueues for a
little while, and things seem to be working. But as usual, I worry...
Is this use subject to some sort of deadlock where RCU's workqueue cannot
start running until after a grace period completes, but that grace
period is the one needing the workqueue? Note that there are ways to
set up your kernel so that all RCU grace periods are expedited.

Should I be worried? If not, what prevents this from being a problem,
especially given that workqueue handlers are allowed to wait for RCU
grace periods to complete?

Thanx, Paul