Hi Alex, > -----Original Message----- > From: linux-mmc-owner@xxxxxxxxxxxxxxx > [mailto:linux-mmc-owner@xxxxxxxxxxxxxxx] On Behalf Of Alex Lemberg > Sent: Monday, April 06, 2015 9:48 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: Dong, Chuanxiao [mailto:chuanxiao.dong@xxxxxxxxx] > > Sent: Thursday, April 02, 2015 1:52 PM > > To: Alex Lemberg; linux-mmc@xxxxxxxxxxxxxxx > > Cc: Yuliy Izrailov > > Subject: RE: [PATCH 0/5] mmc: Soft Command queue implementation for > > eMMC5.1 device > > > > 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. > > Right, but there is a case for context switch: > > > > > + do { > > + id = find_first_bit(&slots, mq->qdepth); > > + if (id < mq->qdepth) { > > + areq = &mq->mqrq[id].mmc_active; > > What if host->areq will be changed as the result of completion interrupt, in > parallel or just before this if condition? Host->areq will be changed after this "if", in function "mmc_execute_cmdq".They are synchronize. Except "mmc_execute_cmdq", host->areq is changed nowhere. Thanks Chuanxiao > > > + 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 -- 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