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