Re: [PATCH 2/2] ata: allow enabling FUA support in Kconfig

From: Maciej S. Szmigiero
Date: Thu Oct 06 2022 - 09:06:53 EST


On 6.10.2022 01:38, Damien Le Moal wrote:
On 9/27/22 04:51, Maciej S. Szmigiero wrote:
From: "Maciej S. Szmigiero" <maciej.szmigiero@xxxxxxxxxx>

Currently, if one wants to make use of FUA support in libata it is
necessary to provide an explicit kernel command line parameter in order to
enable it (for drives that report such support).

In terms of Git archaeology: FUA support was enabled by default in early
libata versions but was disabled soon after.
Since then there were a few attempts to enable this support by default:
[1] (for NCQ drives only), [2] (for all drives).
However, the second change had to be reverted after a report came of
an incompatibility with the HDD in 2011 Mac Mini.

Enabling FUA avoids having to emulate it by issuing an extra drive cache
flush for every request that have this flag set.
Since FUA support is required by the ATA/ATAPI spec for any drive that
supports LBA48 and so these days should be pretty widespread let's provide
an ability to enable it by default in Kconfig.

This can be done by adding "libata.fua=1" to the CONFIG_CMDLINE option. So
I do not see the need to add yet another config option.

A specific Kconfig option is more structured than a free-form
CONFIG_CMDLINE (which is also technically a per-arch option, but seems
to be widely supported across arches).

That's why there is a lot (100+) of similar Kconfig default-changing
options, a quick sample of these (in no particular order):
SOUND_OSS_CORE_PRECLAIM, SND_INTEL_BYT_PREFER_SOF, LSM,
SECURITY_SELINUX_CHECKREQPROT_VALUE, SECURITY_LOADPIN_ENFORCE,
SECURITY_APPARMOR_DEBUG_MESSAGES, IP_VS_TAB_BITS, IP_SET_MAX,
MAC80211_HAS_RC, SLUB_DEBUG_ON, KFENCE_SAMPLE_INTERVAL, PRINTK_TIME,
DEBUG_OBJECTS_ENABLE_DEFAULT, RCU_NOCB_CPU_DEFAULT_ALL, ...

libata currently has only one similar option: SATA_MOBILE_LPM_POLICY,
so it's not like a person performing kernel configuration is
overloaded with questions here.

But at the same time, I respect your decision as a maintainer of
this code.


Patch 1 looks good. I will queue it up once rc1 is out.

Thanks,
Maciej