On 06/10/2014 03:33 PM, Matthew Wilcox wrote: > On Tue, Jun 10, 2014 at 03:21:18PM -0600, Keith Busch wrote: >> Yeah, nvme_setup_prps is probably the least readable code in this driver. >> Maybe some comments are in order here... >> >> There are two rules for an SGL to be mappable to a PRP: >> >> 1. Every element must have zero page offset, except the first. >> >> 2. Every element must end on a page boundary, except the last. > > Or to put it another way, NVMe PRPs only support I/Os that describe a > single range of virtual memory.
OK, so essentially any single request must be a virtually contig piece of memory. Is there any size limitations to how big this contig segment can be? I think this is unique requirement, at least I haven't seen other pieces of hardware have it. But it would be pretty trivial to add a setting to limit merges based on virtually contig, similarly to what is done for number of physical segments. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

