Thanks Alex for review.
>From my understanding, if host->areq == areq, then means the areq is the
>current running request. By this way, driver will clear the executable ready
>bit in slots and continue to find the next one. So the task with the same ID
>won't be executed at the same time.
+ do {
+ id = find_first_bit(&slots, mq->qdepth);
+ if (id < mq->qdepth) {
+ areq = &mq->mqrq[id].mmc_active;
+ if (host->areq == areq)
+ goto next;
.....
......
+next:
+ __clear_bit(id, &slots);
+ } while (status);
I also prepared patch set v1, which won't send CMD13 to poll cmdq ready during
a cmdq request is executing by CMD46/47. Will send them out later.
Thanks
Chuanxiao
> -----Original Message-----
> From: Alex Lemberg [mailto:[email protected]]
> Sent: Thursday, April 02, 2015 4:57 PM
> To: Dong, Chuanxiao; [email protected]
> Cc: Yuliy Izrailov
> Subject: RE: [PATCH 0/5] mmc: Soft Command queue implementation for
> eMMC5.1 device
>
> Hi Chuanxiao,
>
>
> > -----Original Message-----
> > From: [email protected] [mailto:linux-mmc-
> > [email protected]] On Behalf Of Chuanxiao Dong
> > Sent: Tuesday, March 17, 2015 1:10 PM
> > To: [email protected]
> > Subject: [PATCH 0/5] mmc: Soft Command queue implementation for
> > eMMC5.1 device
> >
> > Hello
> >
> > This serial of patches can implement the eMMC5.1 device command queue
> > feature even a host controller doesn't support CMDQ. Several weeks ago
> > I submitted RFC patches for review and collected some review comments.
> > Right now these comments are fixed thus I submit again as the offical
> > patches. Please have a review.
>
> Thanks for sending the new patch.
> We have reviewed and see issues still exists like in previous patch version.
> The driver flow where request with the same TID is executed right after
> completing its data transfer, is still possible.
> We suspect that the new solution is not covering the case of driver thread
> context switch, Specifically the following condition in block.c:
>
> + if (host->areq == areq)
> + goto next;
>
>
> Thanks,
> Alex
>
> >
> > 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 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 | 85 ++++++-
> > drivers/mmc/core/host.c | 13 +
> > drivers/mmc/core/mmc.c | 37 ++-
> > 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 +++++++++--
> > drivers/mmc/host/sdhci.h | 1 +
> > 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 +
> > 18 files changed, 911 insertions(+), 204 deletions(-)
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-mmc"
> > in the body of a message to [email protected] More majordomo
> > info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html