On Tue, Mar 21, 2023 at 12:24:51PM +0900, Damien Le Moal wrote: > On 3/21/23 11:17, Ming Lei wrote: > > On Tue, Mar 21, 2023 at 10:46:30AM +0900, Damien Le Moal wrote: > >> On 3/21/23 09:44, Ming Lei wrote: > >>> On Mon, Mar 20, 2023 at 04:32:57PM -0700, Bart Van Assche wrote: > >>>> On 3/20/23 16:28, Ming Lei wrote: > >>>>> On Fri, Mar 17, 2023 at 04:45:46PM -0700, Bart Van Assche wrote: > >>>>>> Thanks for having taken a look. This patch series is intended for > >>>>>> REQ_OP_WRITE requests and not for REQ_OP_ZONE_APPEND requests. > >>>>> > >>>>> But you are talking about host-managed zoned device, and the write > >>>>> should have to be zone append, right? > >>>> > >>>> Hi Ming, > >>>> > >>>> The use case I'm looking at is Android devices with UFS storage. UFS is > >>>> based on SCSI and hence only REQ_OP_WRITE is supported natively. There is a > >>>> REQ_OP_ZONE_APPEND emulation in drivers/scsi/sd_zbc.c but it restricts the > >>>> queue depth to one. > >>> > >>> But is this UFS one host-managed zoned device? If yes, this "REQ_OP_WRITE" > >>> still should have been handled as REQ_OP_ZONE_APPEND? Otherwise, I don't > >>> think it is host-managed, and your patch isn't needed too. > >> > >> Ming, > >> > >> Both regular writes and zone append writes are supported by host managed > >> devices. For ZNS, zone append write is natively supported as a different > >> command. For SCSI & ATA (and UFS) devices, zone append write is emulated in the > >> sd driver using the regular write command because the SCSI and ATA standards do > >> not define a zone append write command. > > > > Thanks for the clarification. > > > >> > >> For BIO splitting, splitting a regular write is fine as the resulting fragments > >> are sequential writes, so all fine. But zone append splitting is not allowed as > > > > The current bio split code may not make sequential write requests, and > > looks Bart is trying to address it. Then looks scsi zdc emulation still > > requires sequential writes aiming to same zone. > > Split does create sequential writes, always, but the processing order may not be > sequential in case of plugging. However, writes to sequential zones are never > plugs so reordering due to plugging does not affect zoned devices. If it is true, I am wondering why Bart sent the patch of 'block: Split and submit bios in LBA order'? > > > > > But I guess it is hard to maintain bio order, especially md/dm is > > involved. > > It is not that hard once you get rid of plugging, which we did. So far, with > everything we support, we are not detecting any issues and we test weekly, every rc. I see, but I meant current->bio_list, see the following bio order issue: https://lore.kernel.org/linux-block/1609233522-25837-1-git-send-email-dannyshih@xxxxxxxxxxxx/ Thanks, Ming