[openib-general] [PATCH 1/2] mthca support for max_map_per_fmr device attribute

Or Gerlitz ogerlitz at voltaire.com
Wed May 24 01:46:19 PDT 2006


Roland Dreier wrote:
>     Or> When "requests" come fast enough, there's a window in time
>     Or> when there's an unmapping of N FMRs running at batch, but out
>     Or> of the remaining N FMRs some are already dirty and can't be
>     Or> used to serve a credit. So the app fails temporally... So,
>     Or> setting the watermark to 0.5N might solve this, but since
>     Or> enlarging the number of remaps is trivial, i'd like to do it
>     Or> first.
> 
> I don't quite understand how increasing the max remap count really
> helps you that much.  Increasing it would just make this failure less
> frequent, but it would still occur, right?

Increasing the max remap count --really-- helps me b/c it takes >> time 
for free FMRs to become dirty, and this window is enough for the batch 
unmap to complete, so practically there are always free N FMRs with the 
scheme suggested above (allocate 2N with watermark at N, publish N to 
upper layers)

Indeed, the code can not --count-- on that, so when iSER get -EAGAIN 
return code from ib_fmr_pool_map_phys() it would try later. The current 
retry scheme is just trying over and over (you can not see it easily 
from the iser code, its related to the interaction with libiscsi), i 
have on my TODO an item to register a flush callback with the pool, 
suspend the iser TX flow when getting EAGAIN from fmr_map and resume TX 
from the flush callback.

Or.




More information about the general mailing list