All of lore.kernel.org
 help / color / mirror / Atom feed
From: Damien Le Moal <damien.lemoal@opensource.wdc.com>
To: Hannes Reinecke <hare@suse.de>,
	linux-ide@vger.kernel.org,
	"Maciej S . Szmigiero" <mail@maciej.szmigiero.name>
Subject: Re: [PATCH 2/3] ata: libata: allow toggling fua parameter at runtime
Date: Fri, 21 Oct 2022 17:48:18 +0900	[thread overview]
Message-ID: <aa11cbe5-ef78-e760-762a-13bf846e405f@opensource.wdc.com> (raw)
In-Reply-To: <ac069cbd-1a90-4d60-3eef-d1d58def73b0@suse.de>

On 10/21/22 17:45, Hannes Reinecke wrote:
> On 10/21/22 10:00, Damien Le Moal wrote:
>> On 10/21/22 15:50, Damien Le Moal wrote:
>>> On 10/21/22 15:21, Hannes Reinecke wrote:
>>>> On 10/21/22 07:38, Damien Le Moal wrote:
>>>>> From: "Maciej S. Szmigiero" <maciej.szmigiero@oracle.com>
>>>>>
>>>>> Currently, the libata.fua parameter isn't runtime-writable, so a
>>>>> system restart is required in order to toggle it.
>>>>> This unnecessarily complicates testing how drives behave with FUA on and
>>>>> off.
>>>>>
>>>>> Let's make this parameter R/W instead, like many others in the kernel.
>>>>>
>>>>> Example usage:
>>>>> Disable the parameter:
>>>>> echo 0 >/sys/module/libata/parameters/fua
>>>>>
>>>>> Revalidate disk cache settings:
>>>>> F=/sys/class/scsi_disk/0\:0\:0\:0/cache_type; echo `cat $F` >$F
>>>>>
>>>>> [Damien]
>>>>> Enabling fua support by setting libata.fua to 1 will have no effect if
>>>>> the libata module is loaded with libata.force=[ID]nofua, which disables
>>>>> fua support for the ata device(s) identified with ID or all ata devices
>>>>> if no ID is specified.
>>>>>
>>>>> Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
>>>>> Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
>>>>> ---
>>>>>    drivers/ata/libata-core.c | 2 +-
>>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
>>>>> index 6008f7ed1c42..1bb9616b10d9 100644
>>>>> --- a/drivers/ata/libata-core.c
>>>>> +++ b/drivers/ata/libata-core.c
>>>>> @@ -128,7 +128,7 @@ module_param(atapi_passthru16, int, 0444);
>>>>>    MODULE_PARM_DESC(atapi_passthru16, "Enable ATA_16 passthru for ATAPI devices (0=off, 1=on [default])");
>>>>>    
>>>>>    int libata_fua = 0;
>>>>> -module_param_named(fua, libata_fua, int, 0444);
>>>>> +module_param_named(fua, libata_fua, int, 0644);
>>>>>    MODULE_PARM_DESC(fua, "FUA support (0=off [default], 1=on)");
>>>>>    
>>>>>    static int ata_ignore_hpa;
>>>> Hmm. I guess you'll need to revalidate the drive when changing that; but
>>>> this can be done in a later patch.
>>>
>>> Well, this is not sysfs, we cannot do this automatically easily...
>>> And thinking about it now that you mention it, going from fua=1 to fua=0
>>> can actually cause problems. The reverse not, since scsi side would still
>>> see fua=0 until revalidation.
>>>
>>> So... Unless we find a way to link the param write to reavlidation, we
>>> should actually not allow this.
>>> Maciej ? Thoughts ?
>>
>> I looked at this a little more. We could define the operations (struct
>> kernel_param_ops) manually together with the fua parameter declaration,
>> but that would be really ugly...
>>
>> Given that we are switching to fua=1 by default, do you still need a
>> dynamic argument ? I am now thinking that this patch should be dropped.
>>
> I'd kill it, and let users it handle via blacklist flags only.

Yep, with the default set to 1 that is the goal. I kept the fua module
parameter for backward compatibility, in case some setups out there use
it. But the force=[ID]nofua or force=[ID]fua module parameters should be
the preferred way to control this now.

> 
> Cheers,
> 
> Hannes

-- 
Damien Le Moal
Western Digital Research


  reply	other threads:[~2022-10-21  8:49 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-21  5:38 [PATCH 0/3] Improve libata support for FUA Damien Le Moal
2022-10-21  5:38 ` [PATCH 1/3] ata: libata: cleanup fua handling Damien Le Moal
2022-10-21  6:20   ` Hannes Reinecke
2022-10-21  5:38 ` [PATCH 2/3] ata: libata: allow toggling fua parameter at runtime Damien Le Moal
2022-10-21  6:21   ` Hannes Reinecke
2022-10-21  6:50     ` Damien Le Moal
2022-10-21  8:00       ` Damien Le Moal
2022-10-21  8:45         ` Hannes Reinecke
2022-10-21  8:48           ` Damien Le Moal [this message]
2022-10-21  5:38 ` [PATCH 3/3] ata: libata: Enable fua support by default Damien Le Moal
2022-10-21  6:22   ` Hannes Reinecke
2022-10-21 21:02 ` [PATCH 0/3] Improve libata support for FUA Maciej S. Szmigiero
2022-10-21 22:45   ` Damien Le Moal
2022-10-22 13:50     ` Hannes Reinecke
2022-10-23  0:27       ` Damien Le Moal

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=aa11cbe5-ef78-e760-762a-13bf846e405f@opensource.wdc.com \
    --to=damien.lemoal@opensource.wdc.com \
    --cc=hare@suse.de \
    --cc=linux-ide@vger.kernel.org \
    --cc=mail@maciej.szmigiero.name \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.