Skip to content

(was Re: [ofa-general] fmr pool free_list empty)

Pete Wyckoff linux-scsi lkml 1 version Applied

Status from this message: thanks, applied

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 7 repliesApplied

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/2Revert "IB/fmr_pool: ib_fmr_pool_flush() should flush all dirty FMRs"drivers/infiniband/core/fmr_pool.c+6 -154 replies
2/2ib fmr pool: flush used clean entriesdrivers/infiniband/core/fmr_pool.c+16 -13 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/2] (was Re: [ofa-general] fmr pool free_list empty)

[email protected] wrote on Mon, 25 Feb 2008 15:02 -0800:

Quoted 1 line

Ugh.

[pw wrote:]

Quoted 14 lines
Quoted 7 lines

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.

Quoted 5 lines

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.

Adding CCs in case some iser users are not on the openfabrics list. Original message is here:
http://lists.openfabrics.org/pipermail/general/2008-February/047111.html

This quoted commit is a regression for iSER. Not sure if it causes problems for the other FMR user, SRP. It went in after v2.6.24. Following this mail are two patches. One to revert the change, and one to attempt to do Olaf's patch in such a way that it does not cause problems for other FMR users.

I haven't tested the patches with RDS. It apparently isn't in the tree yet. In fact, there are no users of ib_flush_fmr_pool() in the tree, which is the only function affected by the second patch. But iSER is working again in my scenario.

As a side note, I don't remember seeing this patch on the openfabrics mailing list. Perhaps I missed it. Sometimes these sorts of interactions can be spotted if proposed changes get wider attention.

		-- Pete