From: Tejun Heo <tj@kernel.org>
To: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Cc: linux-ide@vger.kernel.org, linux-block@vger.kernel.org,
Jens Axboe <axboe@kernel.dk>,
"Maciej S . Szmigiero" <mail@maciej.szmigiero.name>,
Hannes Reinecke <hare@suse.de>, Christoph Hellwig <hch@lst.de>,
Niklas Cassel <niklas.cassel@wdc.com>
Subject: Re: [PATCH v7 0/7] Improve libata support for FUA
Date: Fri, 6 Jan 2023 08:03:38 -1000 [thread overview]
Message-ID: <Y7hiemMjV5y/ToIF@slm.duckdns.org> (raw)
In-Reply-To: <b5c57ca5-49b0-b9c6-4a65-a8867a74e950@opensource.wdc.com>
Hello,
On Fri, Jan 06, 2023 at 03:51:48PM +0900, Damien Le Moal wrote:
> OK. Granted. But for this particular case, scsi & nvme subsystem do not
> treat FUA as "optional". If it is supported, it will be used even though
> you are correct that we can work without it. I do not think we should
> treat ATA devices any differently.
What matters isn't that they have a featured with the same name but the
actual circumstances. e.g. for nvme, FUA has been there from the beginning
and we used it from the beginning so we know that they're safe. For ATA,
it's something added later on and we know that there are a bunch of devices
which choke on it and we don't know whether anyone else is using it at any
scale.
> > On a quick glance, there are some uses of REQ_FUA w/o REQ_PREFLUSH which
> > indicates that there can be actual gains to be had. However, ext4 AFAICS
> > always pairs PREFLUSH w/ FUA, so a lot of use cases won't see any gain while
> > taking on the possible risk of being exposed to FUA commands.
>
> Yes. Most FSes will do PREFLUSH | FUA. For the risk, see above.
Someone should benchmark it but it's likelyt that PREFLUSH | FUA vs.
PREFLUSH | WRITE | POSTFLUSH isn't gonna show any meaningful difference in
any realistic scenario. The main gain of NCQ'd FUA is that we don't have to
drain the in-flight commands but PREFLUSH needs that anyway.
> > I feel rather uneasy about enabling FUA by default given history. We can
> > improve its chances by restricting it to newer devices and maybe even just
> > hard disks, but it kinda comes back to the root question of why. Why would
> > we want to do this? What are the benefits? Right now, there are a bunch of
> > really tricky cons and not whole lot on the pro column.
>
> OK. But again, why treat ATA devices differently from scsi/nvme/ufs ?
> These have FUA used by default if it is supported.
This part hopefully is answered above.
> We can take a big hammer here and start with enabling only ACS-5 and
> above for now. That will represent the set of devices that are in
> development right now, and only a few already released (I have some in
> my test boxes and they are not even a few months old...).
All that said, yeah, if we restrict it to only the newest devices, they're
more likely to be well behaved and a lot more visible when they misbehave.
That sounds reasonable to me.
Thanks.
--
tejun
next prev parent reply other threads:[~2023-01-06 18:03 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-03 5:19 [PATCH v7 0/7] Improve libata support for FUA Damien Le Moal
2023-01-03 5:19 ` [PATCH v7 1/7] block: add a sanity check for non-write flush/fua bios Damien Le Moal
2023-01-03 8:05 ` Niklas Cassel
2023-01-03 12:46 ` Damien Le Moal
2023-01-03 13:02 ` Niklas Cassel
2023-01-04 14:23 ` Ming Lei
2023-01-05 3:54 ` Damien Le Moal
2023-01-03 5:19 ` [PATCH v7 2/7] ata: libata: Introduce ata_ncq_supported() Damien Le Moal
2023-01-03 5:19 ` [PATCH v7 3/7] ata: libata: Rename and cleanup ata_rwcmd_protocol() Damien Le Moal
2023-01-03 5:19 ` [PATCH v7 4/7] ata: libata: cleanup fua support detection Damien Le Moal
2023-01-03 5:19 ` [PATCH v7 5/7] ata: libata: Fix FUA handling in ata_build_rw_tf() Damien Le Moal
2023-01-03 5:19 ` [PATCH v7 6/7] ata: libata: blacklist FUA support for known buggy drives Damien Le Moal
2023-01-03 5:19 ` [PATCH v7 7/7] ata: libata: Enable fua support by default Damien Le Moal
2023-01-04 16:49 ` [PATCH v7 0/7] Improve libata support for FUA Tejun Heo
2023-01-05 3:43 ` Damien Le Moal
2023-01-05 18:15 ` Tejun Heo
2023-01-06 6:51 ` Damien Le Moal
2023-01-06 18:03 ` Tejun Heo [this message]
2023-01-10 13:23 ` 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=Y7hiemMjV5y/ToIF@slm.duckdns.org \
--to=tj@kernel.org \
--cc=axboe@kernel.dk \
--cc=damien.lemoal@opensource.wdc.com \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=linux-block@vger.kernel.org \
--cc=linux-ide@vger.kernel.org \
--cc=mail@maciej.szmigiero.name \
--cc=niklas.cassel@wdc.com \
/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