Thread (50 messages) 50 messages, 3 authors, 2017-11-28

Re: [PATCH V14 00/24] mmc: Add Command Queue support

From: Ulf Hansson <hidden>
Date: 2017-11-28 19:15:42
Also in: linux-mmc, lkml

Linus, Adrian,

On 28 November 2017 at 10:42, Linus Walleij [off-list ref] wrote:
On Tue, Nov 21, 2017 at 2:42 PM, Adrian Hunter [off-list ref] wrote:
quoted
Here is V14 of the hardware command queue patches without the software
command queue patches, now using blk-mq and now with blk-mq support for
non-CQE I/O.

V14 includes a number of fixes to existing code, changes to default to
blk-mq, and adds patches to remove legacy code.
I have looked over the code, I was unable to find a good mergebase to apply
it on (I guess it is based on linux-next at some date in the past) so mostly
I just looked at it overall, and I can solidly say that this patch series:

Acked-by: Linus Walleij <redacted>
Great, thanks!
I gave some more explicit review on some initial patches that I think
should go in as fixes.
Thanks, and already taken care of.
I do not expect it to perform any less than the previous iteration on my
systems where it was already performing well and Bartlomiej also has
confirmed that the patch set works for him.

Ulf: I suggest this be applied (+/- some rebasing) early for v4.15.
Yes, I am up for that!

I have now also completed my review of the series and in the end, most
of my comments turned out to be of minor issues, hopefully easily
addressed.
I am positively convinced that we can make things work on top of this.
quoted
HW CMDQ offers 25% - 50% better random multi-threaded I/O.  I see a slight
2% drop in sequential read speed but no change to sequential write.
Fully acceptable I think.
quoted
Non-CQE blk-mq showed a 3% decrease in sequential read performance.  This
seemed to be coming from the inferior latency of running work items compared
with a dedicated thread.  Hacking blk-mq workqueue to be unbound reduced the
performance degradation from 3% to 1%.
Also acceptable I think.
quoted
While we should look at changing blk-mq to give better workqueue performance,
a bigger gain is likely to be made by adding a new host API to enable the
next already-prepared request to be issued directly from within ->done()
callback of the current request.
I assume that is taken care of by adding the new host cap
(MMC_CAP_DIRECT_COMPLETE).

So, then it's just a matter of adopting all host drivers, and when we
are done with that, we can remove that cap. :-)
I agree.

Yours,
Linus Walleij
I am awaiting a re-based v15 version - and eager to apply it! :-)

Thanks and kind regards
Uffe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help