On 8/23/18 5:00 PM, Bart Van Assche wrote: > Hello, > > The code on the master branch of my fio repository on github has been > updated again. The changes compared to the previous version are: > * A new job option has been added, namely zonemode. zonemode=zbd has to be > specified when filename refers to a zoned block device. zonesize has a new > meaning for zonemode=zbd. When both zonemode and zonesize have been > specified and filename refers to a regular block device the I/O pattern > the same as for a zoned block device (at least if all write pointers of the > zoned block device are reset before fio is started). This behavior change > was requested by Jens. > * A subtle bug has been fixed that caused I/O against a zoned block device to > stop early if multiple jobs were doing random writes to the same LBA range > and with the random map enabled. > * The zonemode=zbd do_verify=1 combination no longer causes fio to report > verify errors when run against the conventional zones of a zoned block > device. > * The code for skipping offline zones should now work. Offline zones were not > skipped in previous versions. I have not yet tested this code - testing this > change requires access to a real or simulated openchannel SSD. > * Several new unit tests have been added to t/zbc/test-zbc-support. > > See also https://github.com/axboe/fio/pull/585. I'm going to reply here, since I generally hate github review for anything but the simplest of things. I think this is starting to look good. For the filesetup.c changes, I think that this: + if (o->zone_mode == ZONE_MODE_NONE && o->zone_size) + o->zone_mode = ZONE_MODE_STRIDED; belongs in fixup_options()zbd_init() should not be something that is unconditionally called. Only do it if ZONE_MODE_ZBD is set and make that explicit. Also kill zbd querying in zbd_init() if we haven't asked for it. Can you git send-email the series to me and the list? I'll take a closer look. -- Jens Axboe