On Fri, Jun 14, 2019 at 01:28:47AM +0530, Kashyap Desai wrote: > Is there any changes in API blk_queue_virt_boundary? I could not find > relevant code which account for this. Can you help ? > Which git repo shall I use for testing ? That way I can confirm, I didn't > miss relevant changes. Latest mainline plus the series (which is about to get resent). blk_queue_virt_boundary now forced an unlimited max_hw_sectors as that is how PRP-like schemes work, to work around a block driver merging bug. But we also need to communicate that limit to the DMA layer so that we don't set a smaller iommu segment size limitation. > >From your above explanation, it means (after this patch) max segment size > of the MR controller will be set to 4K. > Earlier it is possible to receive single SGE of 64K datalength (Since max > seg size was 64K), but now the same buffer will reach the driver having 16 > SGEs (Each SGE will contain 4K length). No, there is no more limit for the size of the segment at all, as for PRPs each PRP is sort of a segment from the hardware perspective. We just require the segments to not have gaps, as PRPs don't allow for that. That being said I think these patches are wrong for the case of megaraid or mpt having both NVMe and SAS/ATA devices behind a single controller. Is that a valid configuration?