On 09/15/2017 12:06 PM, Damien Le Moal wrote: > The zoned I/O scheduler is mostly identical to mq-deadline and retains > the same configuration attributes. The main difference is that the > zoned scheduler will ensure that at any time at most one write request > per sequential zone is in flight (has been dispatched to the disk) in > order to protect against potential sequential write reordering > resulting from the concurrent execution of request dispatch by multiple > contexts. > > This is achieved similarly to the legacy SCSI I/O path by write locking > zones when a write requests is issued. Subsequent writes to the same > zone have to wait for the completion of the previously issued write > before being in turn dispatched to the disk. This ensures that > sequential writes are processed in the correct order without needing > any modification to the execution model of blk-mq. In addition, this > also protects against write reordering at the HBA level (e.g. AHCI). > > Signed-off-by: Damien Le Moal <damien.lemoal@xxxxxxx> > --- > Documentation/block/zoned-iosched.txt | 48 ++ > block/Kconfig.iosched | 12 + > block/Makefile | 1 + > block/zoned-iosched.c | 925 ++++++++++++++++++++++++++++++++++ > 4 files changed, 986 insertions(+) > create mode 100644 Documentation/block/zoned-iosched.txt > create mode 100644 block/zoned-iosched.c > Reviewed-by: Hannes Reinecke <hare@xxxxxxxx> Cheers, Hannes -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@xxxxxxx +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg)