[PATCH v2 1/2] blk-mq: add tagset quiesce interface
Christoph Hellwig
hch at lst.de
Mon Oct 17 22:19:56 PDT 2022
On Mon, Oct 17, 2022 at 03:41:15PM -0700, Paul E. McKenney wrote:
> Then the big question is "how long do the SRCU readers run?"
>
> If all of the readers ran for exactly the same duration, there would be
> little point in having more than one srcu_struct.
The SRCU readers are the I/O dispatch, which will have quite similar
runtimes for the different queues.
> If the kernel knew up front how long the SRCU readers for a given entry
> would run, it could provide an srcu_struct structure for each duration.
> For a (fanciful) example, you could have one srcu_struct structure for
> SSDs, another for rotating rust, a third for LAN-attached storage, and
> a fourth for WAN-attached storage. Maybe a fifth for lunar-based storage.
All the different request_queues in a tag_set are for the same device.
There might be some corner cases like storare arrays where they have
different latencies. But we're not even waiting for the I/O completion
here, this just protects the submission.
> Does that help, or am I off in the weeds here?
I think this was very helpful, and at least to be moving the srcu_struct
to the tag_set sounds like a good idea to explore.
Ming, anything I might have missed?
More information about the Linux-nvme
mailing list