On 2020-01-12 15:57, Douglas Gilbert wrote: > Add ioctl(SG_IOSUBMIT_V3) and ioctl(SG_IORECEIVE_V3). These ioctls > are meant to be (almost) drop-in replacements for the write()/read() > async version 3 interface. They only accept the version 3 interface. > > See the webpage at: http://sg.danny.cz/sg/sg_v40.html > specifically the table in the section titled: "13 SG interface > support changes". > > If sgv3 is a struct sg_io_hdr object, suitably configured, then > res = write(sg_fd, &sgv3, sizeof(sgv3)); > and > res = ioctl(sg_fd, SG_IOSUBMIT_V3, &sgv3); > are equivalent. Dito for read() and ioctl(SG_IORECEIVE_V3). The Linux kernel already supports several interfaces for submitting I/O requests asynchronously, e.g. libaio and io_uring. Do we really need yet another interface for submitting I/O requests? Has it been considered to add SG I/O support to one of the existing asynchronous I/O request interfaces? Thanks, Bart.