lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 17 Mar 2022 10:14:43 +0100
From:   Ulf Hansson <ulf.hansson@...aro.org>
To:     Adrian Hunter <adrian.hunter@...el.com>
Cc:     Christian Löhle <CLoehle@...erstone.com>,
        Avri Altman <avri.altman@....com>,
        Michael Wu <michael@...winnertech.com>,
        "beanhuo@...ron.com" <beanhuo@...ron.com>,
        "porzio@...il.com" <porzio@...il.com>,
        "linux-mmc@...r.kernel.org" <linux-mmc@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        allwinner-opensource-support 
        <allwinner-opensource-support@...winnertech.com>
Subject: Re: [PATCH] mmc: block: enable cache-flushing when mmc cache is on

On Wed, 16 Mar 2022 at 17:08, Adrian Hunter <adrian.hunter@...el.com> wrote:
>
> On 16.3.2022 16.46, Christian Löhle wrote:
> >> So we are not going to let the block layer know about SD cache?
> >> Or is it a separate change?
> >
> > I have some code for this laying around, but as it requires reading, parsing and writing Function Registers,
> > in particular PEH, it's a lot of boilerplate code to get the functionality, but I'll clean it up and send a patch in the coming weeks.
> >
>
> We have the sd cache flush.  We would presumably just need to call blk_queue_write_cache()
> for the !mmc_card_mmc(card) case e.g.
>
>         if (mmc_has_reliable_write(card)) {
>                 md->flags |= MMC_BLK_REL_WR;
>                 enable_fua = true;
>         }
>
>         if (mmc_cache_enabled(card->host))
>                 enable_cache = true;
>
>         blk_queue_write_cache(md->queue.queue, enable_cache, enable_fua);

To me, this seems like the most reasonable thing to do.

However, I have to admit that it's not clear to me, if there was a
good reason to why commit f4c5522b0a88 ("mmc: Reliable write
support.") also added support for REQ_FLUSH (write back cache) and why
not only REQ_FUA. I assumed this was wrong too, right?

When it comes to patches for stable kernels. mmc_cache_enabled() was
introduced quite recently in v5.13, so for older kernels that call
needs to be replaced with something else.

In any case, the relevant commits that can be considered as needs to
be fixed seems like these:
commit f4c5522b0a88 ("mmc: Reliable write support.")
commit 881d1c25f765 ("mmc: core: Add cache control for eMMC4.5 device")
commit 130206a615a9 ("mmc: core: Add support for cache ctrl for SD cards")

[...]

Kind regards
Uffe

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ