Thread (15 messages) 15 messages, 6 authors, 2021-04-20

Re: [PATCH v2 3/3] zonefs: fix synchronous write to sequential zone files

From: Damien Le Moal <hidden>
Date: 2021-04-20 01:35:28
Also in: dm-devel, linux-fsdevel, linux-nvme, linux-scsi

On 2021/04/20 10:20, Douglas Gilbert wrote:
On 2021-04-19 2:45 a.m., Christoph Hellwig wrote:
quoted
On Sat, Apr 17, 2021 at 11:33:23AM +0900, Damien Le Moal wrote:
quoted
Synchronous writes to sequential zone files cannot use zone append
operations if the underlying zoned device queue limit
max_zone_append_sectors is 0, indicating that the device does not
support this operation. In this case, fall back to using regular write
operations.
Zone append is a mandatory feature of the zoned device API.
So a hack required for ZNS and not needed by ZBC and ZAC becomes
a "mandatory feature" in a Linux API. Like many hacks, that one might
come back to bite you :-)
Zone append is not a hack in ZNS. It is a write interface that fits very well
with the multi-queue nature of NVMe. The "hack" is the emulation in scsi.

We decided on having this mandatory for zoned devices (all types) to make sure
that file systems do not have to implement different IO paths for sequential
writing to zones. Zone append does simplify a lot of things and allows to get
the best performance from ZNS drives. Zone write locking/serialization of writes
per zones using regular writes is much harder to implement, make a mess of the
file system code, and would kill write performance on ZNS.


-- 
Damien Le Moal
Western Digital Research
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help