Re: [PATCH v6 0/4] Add MMC software queue support

From: Christoph Hellwig
Date: Wed Nov 27 2019 - 04:00:43 EST


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.