On 2022/10/17 21:42, Christoph Hellwig wrote:
On Mon, Oct 17, 2022 at 03:39:06PM +0200, Christoph Hellwig wrote:
Having to allocate a struct rcu_synchronize for each of the potentially
many queues here is a bit sad.
Pull just explained the start_poll_synchronize_rcu interfaces at ALPSS
last week, so I wonder if something like that would also be feasible
for SRCU, as that would come in really handy here.
Alternatively I wonder if we could simply use a single srcu_struct
in the tag_set instead of one per-queue. That would potentially
increase the number of read side critical sections
blk_mq_wait_quiesce_done would have to wait for in tagsets with
multiple queues, but I wonder how much overhead that would be in
practive.
Now we submit request based on queues, maybe it is difficult to use
a single srcu_struct in the tag instead of one per-queue.
Using start_poll_synchronize_rcu still need a unsigned long array.
.