Skip to content

RFC mmc: Soft Command queue implementation for eMMC5.1 device

Chuanxiao Dong linux-mmc 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest5 patches 7 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5mmc: replace sbc to precmd and add postcmddrivers/mmc/card/block.c drivers/mmc/card/queue.h drivers/mmc/core/core.c +5 more+60 -550 replies
2/5mmc: host: add runtime PM for host class devdrivers/mmc/core/host.c drivers/mmc/host/sdhci-acpi.c drivers/mmc/host/sdhci-pci.c+14 -20 replies
3/5mmc: queue: change mqrq_cur and mqrq_pre to mq qdepthdrivers/mmc/card/block.c drivers/mmc/card/queue.c drivers/mmc/card/queue.h+128 -1230 replies
4/5mmc: core: add support for CMDQ feature in MMC Core stackdrivers/mmc/card/block.c drivers/mmc/card/queue.c drivers/mmc/card/queue.h +7 more+610 -230 replies
5/5mmc: sdhci: add SW CMDQ support for CHT SDHCI hostdrivers/mmc/host/sdhci.c include/linux/mmc/sdhci.h+108 -140 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC PATCH 0/5]mmc: Soft Command queue implementation for eMMC5.1 device

Hello,

Seems community already have some implementation for the eMMC5.1 device command queue feature, but that require the eMMC host controller to support CMDQ. In my platform, I don't have this kind of eMMC host controller but I have a Samsung eMMC5.1 device which can support the Command queue.

With this limitation, I have to let eMMC host controller to manually send the CMD44/45/13/46/47. So in this way, more commands are needed for an I/O request, more interrupts/schedule are needed in driver.

Even this way have some more software overhead, but it can still use the eMMC5.1 device Command queue feature. After test with the iozone command:
"iozone -zec -t 4 -i0 -i2 -F iozonefile1 iozonefile2 iozonefile3 iozonefile4 -+n -I -r 4k -s 500m -O -R -+r -+D" to test random performance, I saw a performance improvment for random read on my eMMC5.1 device:

Random read
SW CMDQ: 5544.6
Normal Read: 3993.05

So I want to send this serial patches as RFC patch for reviewing

Chuanxiao Dong (5):
mmc: replace sbc to precmd and add postcmd
mmc: host: add runtime PM for host class dev
mmc: queue: change mqrq_cur and mqrq_pre to mq qdepth
mmc: core: add support for CMDQ feature in MMC Core stack
mmc: sdhci: add SW CMDQ support for CHT SDHCI host

 drivers/mmc/card/block.c      |  538 ++++++++++++++++++++++++++++++++++++++---
 drivers/mmc/card/queue.c      |  213 ++++++++--------
 drivers/mmc/card/queue.h      |   14 +-
 drivers/mmc/core/core.c       |   78 +++++-
 drivers/mmc/core/host.c       |   14 ++
 drivers/mmc/core/mmc.c        |   43 +++-
 drivers/mmc/host/dw_mmc.c     |    8 +-
 drivers/mmc/host/mmci.c       |   14 +-
 drivers/mmc/host/omap_hsmmc.c |   18 +-
 drivers/mmc/host/sdhci-acpi.c |    1 -
 drivers/mmc/host/sdhci-pci.c  |    1 -
 drivers/mmc/host/sdhci.c      |  137 +++++++++--
 include/linux/mmc/card.h      |    3 +
 include/linux/mmc/core.h      |    5 +-
 include/linux/mmc/host.h      |    5 +
 include/linux/mmc/mmc.h       |   21 ++
 include/linux/mmc/pm.h        |    1 +
 include/linux/mmc/sdhci.h     |    1 +
 18 files changed, 909 insertions(+), 206 deletions(-)
Signature · 1 line
1.7.10.4