On Tue, Nov 26, 2019 at 12:17:15PM +0100, Hannes Reinecke wrote: > Aligning with the 'traditional' linux way for partition handling is > definitely the way to go IMO; otherwise you'll end up having to worry > about resource allocation between distinct queues (like you have to do > now), and will be having a hard time trying to map it properly to the > underlying hardware abstraction in blk-mq. Sorry, but this is complete bullshit. Except for the very unfortunate name MMC partitions have nothing to do with partitions. They are a concept roughly equivalent to SCSI logical units and nvme namespace, just with a pretty idiotic design decision that only allows I/O to one of them at a time. The block layer way to deal with them is to use a shared tagset for multiple request queues, which doesn't use up a whole lot of resources. The only hard part is the draining when switching between partitions, and there is no really nice way to deal with that. If requests are batched enough we could just drain and switch every time an other partition access comes in. Especially so if people only use partitions for boot partitions and other rarely used areas. If that doesn't work out we'll just have to reject other partition access and then use a timer and/or counter to eventually switch and provide basic fairness.