linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Adrian Hunter <adrian.hunter@nokia.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: John Stultz <john.stultz@linaro.org>,
	linux-mmc@vger.kernel.org, David Ding <david.j.ding@motorola.com>,
	Chris Ball <cjb@laptop.org>, Dima Zavin <dima@android.com>,
	Bentao Zou <bzou1@motorola.com>, San Mehat <san@google.com>
Subject: Re: [PATCH 1/6] mmc: block: Resume multi-block reads after transient read errors.
Date: Wed, 27 Apr 2011 11:16:23 +0300	[thread overview]
Message-ID: <4DB7D0D7.2000402@nokia.com> (raw)
In-Reply-To: <201104261519.26622.arnd@arndb.de>

On 26/04/11 16:19, Arnd Bergmann wrote:
> On Saturday 23 April 2011, John Stultz wrote:
>> From: David Ding<david.j.ding@motorola.com>
>>
>> CC: Chris Ball<cjb@laptop.org>
>> CC: Arnd Bergmann<arnd@arndb.de>
>> CC: Dima Zavin<dima@android.com>
>> Signed-off-by: Bentao Zou<bzou1@motorola.com>
>> Signed-off-by: David Ding<david.j.ding@motorola.com>
>> Signed-off-by: San Mehat<san@google.com>
>> Signed-off-by: John Stultz<john.stultz@linaro.org>
>
> The disable_multi logic was introduced in 6a79e391 "mmc_block: ensure
> all sectors that do not have errors are read" by Adrian Hunter. Maybe
> he can comment on this.
>
> My impression is that the code makes more sense without this
> add-on patch, because the flag is set for exactly one request
> and makes mmc_blk_issue_rw_rq issue all blocks in that request
> one by one up to the first error, while after the patch,
> we would read one sector, then read the remaining request at
> once, fail, and read the next sector, and so on.
>
> If the problem is transient read errors, a better solution might
> be to retry the entire request before doing it one sector at a time.

Having to guess what the patch is for is pretty sad.  Is writing
commit messages so hard.

The word "transient" suggests the errors might disappear, in which case
the entire read should be retried some number of times.

The big problem with reading 1 sector at a time is that it
can be quite slow (orders of magnitude slower).  Possibly
this patch is aimed at that.  Somewhere there is a patch to
change the retries from 1 sector at a time to 1 segment
at a time, which helps a bit.  Possibly it would help to bisect
the number sectors/segments. i.e.

	read error
		read half of the number of sectors/segments
		that were read last time (but always read at
		least 1)
	no read error
		read all the remaining sectors/segments

This patch does the second half of that approach.

>
>>   drivers/mmc/card/block.c |    2 ++
>>   1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
>> index 61d233a..edac9ac 100644
>> --- a/drivers/mmc/card/block.c
>> +++ b/drivers/mmc/card/block.c
>> @@ -440,6 +440,8 @@ static int mmc_blk_issue_rw_rq(struct mmc_queue *mq, struct request *req)
>>   				continue;
>>   			}
>>   			status = get_card_status(card, req);
>> +		} else if (disable_multi == 1) {
>> +			disable_multi = 0;
>>   		}
>>
>>   		if (brq.cmd.error) {
>> --
>> 1.7.3.2.146.gca209
>>
>>
>
>


  reply	other threads:[~2011-04-27  8:17 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-23  1:01 [PATCH 0/6] Trivial MMC patches from Android John Stultz
2011-04-23  1:01 ` [PATCH 1/6] mmc: block: Resume multi-block reads after transient read errors John Stultz
2011-04-26 13:19   ` Arnd Bergmann
2011-04-27  8:16     ` Adrian Hunter [this message]
2011-04-27  8:42       ` Andrei Warkentin
2011-04-23  1:01 ` [PATCH 2/6] mmc_block: Allow more than 8 partitions per card John Stultz
2011-04-26 13:22   ` Arnd Bergmann
2011-04-26 16:10     ` Colin Cross
2011-04-26 16:13       ` Arnd Bergmann
2011-04-23  1:01 ` [PATCH 3/6] sdhci: Always pass clock request value zero to set_clock host op John Stultz
2011-04-23  1:01 ` [PATCH 4/6] mmc: sd: Add new CONFIG_MMC_PARANOID_SD_INIT for enabling retries during SD detection John Stultz
2011-04-26 13:35   ` Arnd Bergmann
2011-04-23  1:01 ` [PATCH 5/6] mmc: sd: When resuming, try a little harder to init the card John Stultz
2011-04-26 13:39   ` Arnd Bergmann
2011-04-23  1:01 ` [PATCH 6/6] mmc: sd: Add retries in re-detection John Stultz
2011-04-26 13:42   ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DB7D0D7.2000402@nokia.com \
    --to=adrian.hunter@nokia.com \
    --cc=arnd@arndb.de \
    --cc=bzou1@motorola.com \
    --cc=cjb@laptop.org \
    --cc=david.j.ding@motorola.com \
    --cc=dima@android.com \
    --cc=john.stultz@linaro.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=san@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).