mmc: remove bondage between REQ_META and reliable write
authorLuca Porzio <lporzio@micron.com>
Tue, 10 Nov 2015 06:30:40 +0000 (14:30 +0800)
committerShawn Lin <shawn.lin@rock-chips.com>
Tue, 10 Nov 2015 06:32:20 +0000 (14:32 +0800)
commitc79431c702e4c6dfe0398eb57967187e8868cc51
tree4aae1db030ec483834a1b25f7ff9fc0673833b2c
parentdc2d0dc624949716581da15f560c06e3f071a637
mmc: remove bondage between REQ_META and reliable write

Anytime a write operation is performed with Reliable Write flag enabled,
the eMMC device is enforced to bypass the cache and do a write to the
underling NVM device by Jedec specification; this causes a performance
penalty since write operations can't be optimized by the device cache.

In our tests, we replayed a typical mobile daily trace pattern and found
~9% overall time reduction in trace replay by using this patch. Also the
write ops within 4KB~64KB chunk size range get a 40~60% performance
improvement by using the patch (as this range of write chunks are the ones
affected by REQ_META).

This patch has been discussed in the Mobile & Embedded Linux Storage Forum
and it's the results of feedbacks from many people. We also checked with
fsdevl and f2fs mailing list developers that this change in the usage of
REQ_META is not affecting FS behavior and we got positive feedbacks.
Reporting here the feedbacks:
http://comments.gmane.org/gmane.linux.file-systems/97219
http://thread.gmane.org/gmane.linux.file-systems.f2fs/3178/focus=3183

Change-Id: I2143841c439b47d6ce161ff3ad05277ea867f51b
Signed-off-by: Bruce Ford <bford@micron.com>
Signed-off-by: Luca Porzio <lporzio@micron.com>
Fixes: ce39f9d17c14 ("mmc: support packed write command for eMMC4.5 devices")
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
drivers/mmc/card/block.c