OK, here's a modified version of the patch to support both mem full/free HCAs, in the memfree case the code relies on this quote from the (section 4.2 pp 45) memfree PRM:

"A memory key is composed of two fields, a 24-bit index and an 8-bit key. The key field is an arbitrarily chosen number. The index field is unique number used as an index to an MPT table entry, ..."

Or.

implement max_map_per_fmr device attribute for mthca

Signed-off-by: Or Gerlitz <[EMAIL PROTECTED]>

Index: hw/mthca/mthca_provider.c
===================================================================
--- hw/mthca/mthca_provider.c   (revision 7031)
+++ hw/mthca/mthca_provider.c   (working copy)
@@ -116,6 +116,15 @@ static int mthca_query_device(struct ib_
        props->max_total_mcast_qp_attach = props->max_mcast_qp_attach *
                                           props->max_mcast_grp;

+ /* on memfull HCA an FMR can be remapped 2^B - 1 times where B < 32 is + * the number of bits which are not used for MPT addressing, on memfree
+        * HCA B=8 so an FMR can be remapped 255 times.
+        */
+       if(!mthca_is_memfree(mdev))
+ props->max_map_per_fmr = (1 << (32 - + long_log2(mdev->limits.num_mpts))) - 1;
+       else
+               props->max_map_per_fmr = (1 << 8) - 1;
        err = 0;
  out:
        kfree(in_mad);


_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

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

Reply via email to