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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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:Alex.Lemberg@xxxxxxxxxxx]
> Sent: Thursday, April 02, 2015 4:57 PM
> To: Dong, Chuanxiao; linux-mmc@xxxxxxxxxxxxxxx
> Cc: Yuliy Izrailov
> Subject: RE: [PATCH 0/5] mmc: Soft Command queue implementation for
> eMMC5.1 device
> 
> Hi Chuanxiao,
> 
> 
> > -----Original Message-----
> > From: linux-mmc-owner@xxxxxxxxxxxxxxx [mailto:linux-mmc-
> > owner@xxxxxxxxxxxxxxx] On Behalf Of Chuanxiao Dong
> > Sent: Tuesday, March 17, 2015 1:10 PM
> > To: linux-mmc@xxxxxxxxxxxxxxx
> > 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 majordomo@xxxxxxxxxxxxxxx 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux