On 10/20/23 09:25, Keith Busch wrote:
The legacy block request layer didn't have a tag resource shared among multiple request queues. Each queue had their own mempool for allocating requests. The mempool, I think, would always guarantee everyone could get at least one request.
I think that the above is irrelevant in this context. As an example, SCSI devices have always shared a pool of tags across multiple logical
units. This behavior has not been changed by the conversion of the SCSI core from the legacy block layer to blk-mq. For other (hardware) block devices it didn't matter either that there was no upper limit to the number of requests the legacy block layer could allocate. All hardware block devices I know support fixed size queues for queuing requests to the block device. Bart.