Thread (11 messages) 11 messages, 4 authors, 2017-02-20

Re: Some throughput tests with MQ and BFQ on MMC/SD

From: Adrian Hunter <adrian.hunter@intel.com>
Date: 2017-02-20 08:03:35
Also in: linux-mmc

On 17/02/17 15:22, Linus Walleij wrote:
On Fri, Feb 17, 2017 at 12:53 PM, Ziji Hu [off-list ref] wrote:
quoted
        I would like to suggest that you should try the multiple thread
        test mode of iozone, since you are testing *Multi* Queue.
Good point. This target has only 2 CPUs but still, maybe it performs!
quoted
        Besides, it seems that your eMMC transfer speed is quite low.
        It is normal that read speed can reach more than 100MB/s in HS400.
        Could you try a higher speed mode? The test result might be
        limited by the bus clock frequency.
The iozone tests are done on an SDcard. And I only did read tests on
the eMMC I have.

It's because I'm afriad of wearing out my eMMC :(

But OK I'll just take the risk and run iozone on the eMMC.
quoted
        Actually I have been following your thread for some time.
        But currently I'm a little confused.
        May I know the purpose of your patch?
Ulf describes it: we want to switch MMC/SD to MQ.

To me, there are two reasons for that (no secret agendas...)

1. To get away from the legacy codebase in the old block layer.
   Christoph and Jens have been very clear stating that the old block
   layer is in maintenance mode and should be phased out, and they
   asked explicitly for out help to do so. Currently
   MMC/SD is a big fat roadblock to these plans so it is win-win for
   MMC/SD and the block layer if we can just switch over to MQ.

2. My colleague Paolo Valente is working on the next generation
  block scheduler BFQ which has very promising potential for
  interactive loads. (Like taking a backup of your harddrive while
  playing 1080p video let's say.) Since the
  old block layer is no longer maintained, this scheduler will only
  be merged and made available for systems deploying MQ. He's
  already working full steam on that.

I would like to make 1+2 happen in the next merge window
ultimately, but yeah, maybe I'm overly optimistic. But I will sure
try.

Maybe I should add:

3. MQ is a better and future-proof fit for command queueing.
MQ is not better - it is just different.  Because mmc devices do not have
multiple hardware queues, blk-mq essentially offers nothing but a different
way of doing the same thing.  And there are problems, such as blk-mq assumes
that the primary arbiter of whether a request can be issued is the queue
depth.  As I wrote here:
  https://marc.info/?l=linux-mmc&m=148336571720463&w=2
that is not the case for mmc, even with command queuing.

Also I wouldn't be surprise if BFQ needs some changes to work well with
command queuing.

It would be better if blk-mq support was experimental until we can see how
well it works in practice.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help