[ofa-general] fmr pool free_list empty

Roland Dreier rdreier at cisco.com
Mon Feb 25 15:02:40 PST 2008


Ugh.

 > Looking at the FMR dirty list unmapping code in
 > ib_fmr_batch_release(), there is a section that pulls all the dirty
 > entries onto a list that it will later unmap and put back on the
 > free list.

 > But it also plans to unmap all the free entries that have ever been
 > remapped:

Yes, this came from a3cd7d90 ("IB/fmr_pool: ib_fmr_pool_flush() should
flush all dirty FMRs").  That solved a real problem for Olaf, because
otherwise dirty FMRs with not at the max map count might never get
invalidated.  It's not exactly an optimization but rather a
correctness issue, because RDS relies on killing mapping eventually.

On the other hand, this behavior clearly does lead to the possibility
of leaving the free list temporarily empty for stupid reasons.

I don't see a really good way to fix this at the momemnt, need to
meditate a little.

 - R.



More information about the general mailing list