[Openib-windows] [PATCH] MT23108: Fix large buffer memoryregistration

Fabian Tillier ftillier at silverstorm.com
Thu May 11 08:58:32 PDT 2006


Hi Guy,

On 5/11/06, Guy Corem <guyc at voltaire.com> wrote:
>
> I'm worried about the following line:
> new_iobuf->va = va;

That line is fine - the MR starts at va, though the underlying pages
that make up the MR started at va & (PAGE_SIZE - 1).  The VA here is
what ends up being used as the starting address, rightfully so.  The
fact that the VA and base address of the first page of the MR might
not be the same is OK.

So we want an MR with va and size.  We need to pin down all the pages
spanned by this range, with each page referenced only once.

So we round down the starting address and round up the size to page
boundaries, and use these rounded values to pin the memory (since
pinning works on whole pages).  I didn't see any place where the
starting VA in the MDL was used, only the page array, used in
MOSAL_iobuf_get_tpt.

Maybe this doesn't help?  What exactly worries you?  Is there
something that doesn't look right?

- Fab



More information about the ofw mailing list