On 2022/06/16 4:38, Bart Van Assche wrote: > On 6/15/22 00:21, Damien Le Moal wrote: >> On 6/15/22 14:49, Christoph Hellwig wrote: >>> On Tue, Jun 14, 2022 at 04:56:52PM -0700, Bart Van Assche wrote: >>>> The performance penalty of zone locking is not acceptable for our use case. >>>> Does this mean that zone locking needs to be preserved for AHCI but not for >>>> UFS? >>> >>> It means you use case needs to use zone append, and we need to make sure >>> it is added to SCSI assuming your are on SCSI based on your other comments. >> >> For scsi, we already have the zone append emulation in the sd driver which >> issues regular writes together with taking the zone lock. So UFS has zone >> append, not as a native command though. But if for UFS device there are no >> issue of command reordering underneath sd, then the zone append emulation >> can be done without taking the zone write lock, which would result in the >> same performance as what a native zone append command would give. >> >> At least for the short term, that could be a good solution until native >> zone append is added to zbc specs. That last part may face a lot of >> pushback because of the difficulty of having that same command on ATA side. > > Is there more information available about the difficulties of defining a > ZONE APPEND command for ATA? It seems to me that there is enough space > available in the ATA Status Return Descriptor to report the LBA back to > the host? Unfortunately no, there is not enough space. See table 354 of ACS-5 specifications for the normal output of NCQ commands: 1B error, 1B status and 4B sactive field. That is all you get. No room for an LBA. And even worse: sata IO does not define any FIS to do that (return an LBA). So adding zone append to ATA without relying on an extra command to get the written LBA (similarly to how you get sense data from ATA drives using an extra command) would need both ATA/ACS changes *and* SATA-IO changes, which mean that all HBAs/AHCI/SATA adapters existing today would not work. But in the context of UFS only, it should be possible to add zone append to ZBC without going into ZAC. Since we have zone append emulation already, that would not break anything in Linux stack. > > Thanks, > > Bart. -- Damien Le Moal Western Digital Research