[ofa-general] iSER data corruption issues

Talpey, Thomas Thomas.Talpey at netapp.com
Thu Oct 4 04:55:28 PDT 2007


At 11:09 PM 10/3/2007, Roland Dreier wrote:
>...  It just keeps a list of FMRs that are available to remap, and
>batches up the unregistration.  It is true that an R_Key may remain
>valid after an FMR is unmapped, but that's the whole point of FMRs: if
>you don't batch up the real flushing to amortize the cost, they're no
>better than regular MRs really.

This is an aside, but in my experience the FMR is actually a win even if
it's invalidated after each use. In testing with NFS/RDMA, I believe that
direct FMR manipulation via ib_map_phys_mr()/ib_unmap_fmr() was worth
somewhere on the order of 35% over straight ib_reg_phys_mr()/ib_dereg_mr().
I can only assume this was because the TPT-entry setup (ib_alloc_fmr())
is avoided on a per-I/O basis.

As for the pools not invalidating the R_key/handle. Speaking as a storage
provider, we take data integrity darn seriously. It's my opinion that a
dynamic registration scheme that doesn't include per-I/O protection is
pretty much not the point of dynamic registration. In many environments
however, the performance tradeoff is important - this is why I prefer an
all-physical scheme to FMRs, even though it requires additional RDMA ops
to handle the resulting extra scatter/gather.

Additionally, FMRs don't provide byte-range protection granularity,
and they're not supported by iWARP hardware (plus they're buggy
as heck on early Tavors, etc). So I didn't make them a default.

Tom.



More information about the general mailing list