Messages in this thread | | | Date | Wed, 11 Jun 2014 10:54:52 -0600 | From | Jens Axboe <> | Subject | Re: [PATCH v7] NVMe: conversion to blk-mq |
| |
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.
| |