Re: [PATCH v1 0/3] introduce priority-based shutdown support

From: Ulf Hansson
Date: Thu Nov 30 2023 - 04:57:47 EST


On Fri, 24 Nov 2023 at 15:53, Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> wrote:
>
> Hi,
>
> This patch series introduces support for prioritized device shutdown.
> The main goal is to enable prioritization for shutting down specific
> devices, particularly crucial in scenarios like power loss where
> hardware damage can occur if not handled properly.
>
> Oleksij Rempel (3):
> driver core: move core part of device_shutdown() to a separate
> function
> driver core: introduce prioritized device shutdown sequence
> mmc: core: increase shutdown priority for MMC devices
>
> drivers/base/core.c | 157 +++++++++++++++++++++++++++--------------
> drivers/mmc/core/bus.c | 2 +
> include/linux/device.h | 51 ++++++++++++-
> kernel/reboot.c | 4 +-
> 4 files changed, 157 insertions(+), 57 deletions(-)
>

Sorry for joining the discussions a bit late! Besides the valuable
feedback that you already received from others (which indicates that
we have quite some work to do in the commit messages to better explain
and justify these changes), I wanted to share my overall thoughts
around this.

So, I fully understand the reason behind the $subject series, as we
unfortunately can't rely on flash-based (NAND/NOR) storage devices
being 100% tolerant to sudden-power failures. Besides for the reasons
already discussed in the thread, the robustness simply depends on the
"quality" of the FTL (flash translation layer) and the NAND/NOR/etc
device it runs.

For example, back in the days when Android showed up, we were testing
YAFFS and UBIFS on rawNAND, which failed miserably after just a few
thousands of power-cycles. It was even worse with ext3/4 on the early
variants of eMMC devices, as those survived only a few hundreds of
power-cycles. Now, I assume this has improved a lot over the years,
but I haven't really verified this myself.

That said, for eMMC and other flash-based storage devices, industrial
or not, I think it would make sense to try to notify the device about
the power-failure, if possible. This would add another level of
mitigation, I think.

>From an implementation point of view, it looks to me that the approach
in the $subject series has some potential. Although, rather than
diving into the details, I will defer to review the next version.

Kind regards
Uffe