On 9/28/2015 11:57 PM, Bart Van Assche wrote:
On 09/24/2015 12:37 AM, Sagi Grimberg wrote:
On 9/23/2015 12:21 AM, Bart Van Assche wrote:
On 09/17/2015 02:42 AM, Sagi Grimberg wrote:
+            } else if (last_page_off + dma_len < mr->page_size) {
+                /* chunk this fragment with the last */
+                last_end_dma_addr += dma_len;
+                last_page_off += dma_len;
+                mr->length += dma_len;
+                continue;

Shouldn't this code update last_page_addr ?

Actually I think it doesn't since it is only relevant for the else
statement where we are passing the page_size boundary.

Hello Sagi,

Suppose that the following sg-list is passed to this function as {
offset, length } pairs and that this list has not been coalesced by the
DMA mapping code: [ { 0, page_size / 4 }, { page_size / 4, page_size / 4
}, { 2 * page_size / 4, page_size / 2 } ]. I think the algorithm in
patch 01/24 will map the above sample sg-list onto two pages. Shouldn't
that sg-list be mapped onto one page instead ?

It seems to... In order to get that correct we'd need to change the
condition to (last_page_off + dma_len <= mr->page_size)

I'll change for v2.

Thanks.

Sagi.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to