[openib-general] failure to create an FMR mapping 1K pages on memfree

Bernadat, Philippe philippe_bernadat at hp.com
Tue Feb 27 00:33:11 PST 2007


Roland is right, I checked were mthca_fmr_alloc() was failing.
Mtts is one page of pointers, so max is 512.
Does work with 512.
I checked, mthca_alloc_fmr returns EINVAL, then ib_create_fmr_pool
returns ENOMEM.

So this isn't a hardware limitation since the Voltaire Stack managed to
handle 1024 pages on the same board.
Is there a way to fix OFED ? 

Philippe

> -----Original Message-----
> From: Roland Dreier [mailto:rdreier at cisco.com] 
> Sent: Tuesday, February 27, 2007 5:33 AM
> To: Or Gerlitz
> Cc: Bernadat, Philippe; openib
> Subject: Re: failure to create an FMR mapping 1K pages on memfree
> 
>  > I have got a report on failure to create FMR mapping 1K 
> pages (that is
>  > 4MB) on memfree.
>  >
>  > I don't have the exact details (ie if Arbel/Sinai / what FW  / etc)
>  > nor which exact check fails in
>  > mthca_fmr_alloc, but what's clear is that the latter 
> function returns
>  > -ENOMEM when attr.max_pages is 1024 and it works fine when
>  > attr.max_pages is 256.
>  >
>  > Is this failure clear to you? if yes, does a HW or FW 
> limit is being
>  > hit or its a driver design issue?
> 
> Is it really returning -ENOMEM?  It seems much more likely that you
> are hitting the code
> 
> 	/* For Arbel, all MTTs must fit in the same page. */
> 	if (mthca_is_memfree(dev) &&
> 	    mr->attr.max_pages * sizeof *mr->mem.arbel.mtts > PAGE_SIZE)
> 		return -EINVAL;
> 
> I guess you could call this limit a driver design issue.
> 
>  - R.
> 




More information about the general mailing list