mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Michael Wu <michael@allwinnertech.com>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: axboe@kernel.dk, adrian.hunter@intel.com, avri.altman@wdc.com,
	kch@nvidia.com, beanhuo@micron.com, swboyd@chromium.org,
	digetx@gmail.com, bigeasy@linutronix.de, CLoehle@hyperstone.com,
	cjb@laptop.org, arnd@arndb.de, andreiw@motorola.com,
	tgih.jun@samsung.com, jh80.chung@samsung.com,
	linus.walleij@linaro.org, linux-mmc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	allwinner-opensource-support@allwinnertech.com
Subject: Re: [PATCH v2] mmc: block: enable cache-flushing when mmc cache is on
Date: Tue, 19 Apr 2022 22:59:48 +0800	[thread overview]
Message-ID: <5cfbdc20-fafa-18b5-71ef-0ce8b91566a7@allwinnertech.com> (raw)
In-Reply-To: <CAPDyKFq4yowT_t_y_fg9vqgyr=qVykWeOux8H6CGZDyn0M5JhQ@mail.gmail.com>

On 04/04/2022 19:52, Ulf Hansson wrote:
> On Thu, 31 Mar 2022 at 09:32, Michael Wu <michael@allwinnertech.com> wrote:
>>
>> The mmc core enables cache by default. But it only enables
>> cache-flushing when host supports cmd23 and eMMC supports
>> reliable-write.
>> For hosts which do not support cmd23 or eMMCs which do not support
>> reliable-write, the cache can not be flushed by `sync` command.
>> This may leads to cache data lost.
>> This patch enables cache-flushing as long as cache is enabled,
>> no matter host supports cmd23 and/or eMMC supports reliable write
>> or not.
>> For SD cards, backwards compatibility is guaranteed. Newer components
>> like SD5.0 which have cache are also supported in advance, which means
>> this patch will also be applicable if SD5.0 cache is added to the mmc
>> core in the future.
> 
> SD 5.0 cache support was added in the commit 130206a615a9 below. No
> need to resend, I will take care of updating the commit message.
> >>
>> Fixes: f4c5522b0a88 ("mmc: Reliable write support.")
>> Fixes: 881d1c25f765 ("mmc: core: Add cache control for eMMC4.5 device")
>> Fixes: 130206a615a9 ("mmc: core: Add support for cache ctrl for SD cards")
>> Fixes: d0c97cfb81eb ("mmc: core: Use CMD23 for multiblock transfers when we can.")
>> Fixes: e9d5c746246c ("mmc/block: switch to using blk_queue_write_cache()")
> 
> I will have a look at the above to see what makes sense to add - and
> then I will add a stable tag too.
> 
Dear Ulf,
Thank you for your effort. I saw this patch which was taken care by you 
on the mainline [commit 08ebf903af57], and also the commits in 
stable-queque by Greg-KH. I guess this means this patch is accepted/closed.
I'm so happy and want to say thank you for all the help. Next time I'm 
sure I'll do it better :)

-- 
Best Regards,
Michael Wu

>>
>> Reviewed-by: Avri Altman <Avri.Altman@wdc.com>
>> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
>>
>> Signed-off-by: Michael Wu <michael@allwinnertech.com>
> 
> Thanks, applied for fixes!
> 
> Kind regards
> Uffe
> 
> 
>> ---
>>   drivers/mmc/core/block.c | 12 +++++++++---
>>   1 file changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
>> index 4e67c1403cc9..ec76ed82abb9 100644
>> --- a/drivers/mmc/core/block.c
>> +++ b/drivers/mmc/core/block.c
>> @@ -2350,6 +2350,8 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card,
>>          struct mmc_blk_data *md;
>>          int devidx, ret;
>>          char cap_str[10];
>> +       bool cache_enabled = false;
>> +       bool fua_enabled = false;
>>
>>          devidx = ida_simple_get(&mmc_blk_ida, 0, max_devices, GFP_KERNEL);
>>          if (devidx < 0) {
>> @@ -2429,13 +2431,17 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card,
>>                          md->flags |= MMC_BLK_CMD23;
>>          }
>>
>> -       if (mmc_card_mmc(card) &&
>> -           md->flags & MMC_BLK_CMD23 &&
>> +       if (md->flags & MMC_BLK_CMD23 &&
>>              ((card->ext_csd.rel_param & EXT_CSD_WR_REL_PARAM_EN) ||
>>               card->ext_csd.rel_sectors)) {
>>                  md->flags |= MMC_BLK_REL_WR;
>> -               blk_queue_write_cache(md->queue.queue, true, true);
>> +               fua_enabled = true;
>> +               cache_enabled = true;
>>          }
>> +       if (mmc_cache_enabled(card->host))
>> +               cache_enabled  = true;
>> +
>> +       blk_queue_write_cache(md->queue.queue, cache_enabled, fua_enabled);
>>
>>          string_get_size((u64)size, 512, STRING_UNITS_2,
>>                          cap_str, sizeof(cap_str));
>> --
>> 2.29.0
>>

      reply	other threads:[~2022-04-19 15:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-31  7:32 Michael Wu
2022-04-04 11:52 ` Ulf Hansson
2022-04-19 14:59   ` Michael Wu [this message]

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=5cfbdc20-fafa-18b5-71ef-0ce8b91566a7@allwinnertech.com \
    --to=michael@allwinnertech.com \
    --cc=CLoehle@hyperstone.com \
    --cc=adrian.hunter@intel.com \
    --cc=allwinner-opensource-support@allwinnertech.com \
    --cc=andreiw@motorola.com \
    --cc=arnd@arndb.de \
    --cc=avri.altman@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=beanhuo@micron.com \
    --cc=bigeasy@linutronix.de \
    --cc=cjb@laptop.org \
    --cc=digetx@gmail.com \
    --cc=jh80.chung@samsung.com \
    --cc=kch@nvidia.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=swboyd@chromium.org \
    --cc=tgih.jun@samsung.com \
    --cc=ulf.hansson@linaro.org \
    /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

all inboxes | Powered by JetHome®