On Mon, Oct 17, 2022 at 08:21:36AM -0700, Paul E. McKenney wrote: > The main reason for having multiple srcu_struct structures is to > prevent the readers from one from holding up the updaters from another. > Except that by waiting for the multiple grace periods, you are losing > that property anyway, correct? Or is this code waiting on only a small > fraction of the srcu_struct structures associated with blk_queue? There are a few places that do this. SCSI and MMC could probably switch to this scheme or at least and open coded version of it (if we move to a per_tagsect srcu_struct open coding it might be a better idea anyway). del_gendisk is one where we have to go one queue at a time, and that might actually matter for a device removal. elevator_switch is another one, there is a variant for it that works on the whole tagset, but also those that don't.