[PATCH v3 03/13] mpt3sas: SGL to PRP Translation for I/Os to NVMe devices

Martin K. Petersen martin.petersen at oracle.com
Tue Aug 8 09:12:13 PDT 2017


Suganath,

> +	/*
> +	 ** Below code detects gaps/holes in IO data buffers.
> +	 ** What does holes/gaps mean?
> +	 ** Any SGE except first one in a SGL starts at non NVME page size
> +	 ** aligned address OR Any SGE except last one in a SGL ends at
> +	 ** non NVME page size boundary.
> +	 **
> +	 ** Driver has already informed block layer by setting boundary rules
> +	 ** for bio merging done at NVME page size boundary calling kernel API
> +	 ** blk_queue_virt_boundary inside slave_config.
> +	 ** Still there is possibility of IO coming with holes to driver because
> +	 ** of IO merging done by IO scheduler.

All this SGL to PRP code needs to go.

If you are seeing anything that's not a valid PRP after setting the
queue virt boundary then there's a block layer bug that needs to be
debugged and fixed. Regardless of whether you are using an I/O scheduler
or not.

-- 
Martin K. Petersen	Oracle Linux Engineering



More information about the Linux-nvme mailing list