On Tue, Nov 21, 2023 at 03:46:43PM +0100, Peter Zijlstra wrote: > Why is this such a hard question? Anyway, recapping from IRC: preemptible, SRCU: counter-array based, GP advances by increasing array index and waiting for previous index to drop to 0. notably, a GP can pass while a task is preempted but not within a critical section. SRCU has smp_mb() in the critical sections to improve GP. tasks: waits for every task to pass schedule() ensures that any pieces of text rendered unreachable before, is actually unused after. tasks-rude: like tasks, but different? build to handle tracing while rcu-idle, even though that was already deemed bad? tasks-tracing-rcu: extention of tasks to have critical-sections ? Should this simply be tasks? Can someone complete, please?