SGL support of driver
Christoph Hellwig
hch at infradead.org
Mon Jul 27 09:57:56 PDT 2015
On Mon, Jul 27, 2015 at 04:50:25PM +0000, Keith Busch wrote:
> The Linux driver never recieves an IO vector that requires double
> buffering though, and usually not physically contiguous. I'm not sure
> there is a case to support SGL in the linux-nvme driver. Maybe if it's
> tied to block integrity extensions with interleaved metadata formats,
> but it'd be odd to find a device that implements SGL but not separate
> metadata.
That's because it asks never to get one..
vectored direct I/O is a case where NVMe currently has to split
while most other block devices can handle it in a single I/O. For
some database workloads this does make a significant difference, and
it's even more interesting for providing atomicy to userspace using
a future O_ATOMIC.
It also requires pagecache I/O to be split into multiple commands
where other block devices can handle it a lot more efficiently.
More information about the Linux-nvme
mailing list