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]

 



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




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

  Powered by Linux