SRCU's data structures are shown in
Figure ,
and are depicted schematically in
Figure
.
The completed field is a count of the number of grace periods
since the struct srcu was initialized, and as shown in the
diagram, its low-order bit is used to index the
struct srcu_struct_array.
The per_cpu_ref field points to the array, and the
mutex field is used to permit but one synchronize_srcu() at
a time to proceed.