[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 08 Aug 2017 12:12:13 -0400
From: "Martin K. Petersen" <martin.petersen@...cle.com>
To: Suganath Prabu S <suganath-prabu.subramani@...adcom.com>
Cc: JBottomley@...allels.com, jejb@...nel.org, hch@...radead.org,
martin.petersen@...cle.com, linux-scsi@...r.kernel.org,
Sathya.Prakash@...adcom.com, kashyap.desai@...adcom.com,
linux-kernel@...r.kernel.org, chaitra.basappa@...adcom.com,
sreekanth.reddy@...adcom.com, linux-nvme@...ts.infradead.org
Subject: Re: [PATCH v3 03/13] mpt3sas: SGL to PRP Translation for I/Os to NVMe devices
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
Powered by blists - more mailing lists