Jack Morgenstein wrote:
As long as the underlying mpt index is not played with,
there is no requirement that the sequence bits start from 0. Its just
sufficient to guarantee that the same (full) key not be allocated twice
before performing an unmap/SYNC_TPT.

Index: ofed_kernel/drivers/infiniband/hw/mthca/mthca_mr.c
===================================================================
--- ofed_kernel.orig/drivers/infiniband/hw/mthca/mthca_mr.c 2008-02-21 
10:32:50.000000000 +0200
+++ ofed_kernel/drivers/infiniband/hw/mthca/mthca_mr.c 2008-02-21 
12:22:54.393777000 +0200

@@ -839,11 +839,6 @@ void mthca_arbel_fmr_unmap(struct mthca_
if (!fmr->maps)
return;
- key = arbel_key_to_hw_index(fmr->ibmr.lkey);
- key &= dev->limits.num_mpts - 1;
- key = adjust_key(dev, key);
- fmr->ibmr.lkey = fmr->ibmr.rkey = arbel_hw_index_to_key(key);
-
fmr->maps = 0;
*(u8 *) fmr->mem.arbel.mpt = MTHCA_MPT_STATUS_SW;
==============================================================

This can be done for mlx4 (mlx4_fmr_unmap) and tavor (mthca_tavor_fmr_unmap) as 
well.

As far as I understand under Sinai you must issue an adjust_key call when the key is about to wraparound, correct?

Or.

commit 608d8268be392444f825b4fc8fc7c8b509627129
Author: Michael S. Tsirkin <[EMAIL PROTECTED]>
Date:   Mon Apr 16 17:04:55 2007 +0300

    IB/mthca: Fix data corruption after FMR unmap on Sinai

    In mthca_arbel_fmr_unmap(), the high bits of the key are masked off.
    This gets rid of the effect of adjust_key(), which makes sure that
    bits 3 and 23 of the key are equal when the Sinai throughput
    optimization is enabled, and so it may happen that an FMR will end up
    with bits 3 and 23 in the key being different.  This causes data
    corruption, because when enabling the throughput optimization, the
    driver promises the HCA firmware that bits 3 and 23 of all memory keys
    will always be equal.

    Fix by re-applying adjust_key() after masking the key.

    Thanks to Or Gerlitz for reproducing the problem, and Ariel Shahar for
    help in debug.

    Signed-off-by: Michael S. Tsirkin <[EMAIL PROTECTED]>
    Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>


_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to