IB/mthca: Add module parameter for number of MTTs per segment
The current MTT allocator uses kmalloc() to allocate a buffer for its buddy allocator, and thus is limited in the amount of MTT segments that it can control. As a result, the size of memory that can be registered is limited too. This patch uses a module parameter to control the number of MTT entries that each segment represents, allowing more memory to be registered with the same number of segments. Signed-off-by: Eli Cohen <eli@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
@@ -94,7 +94,7 @@ s64 mthca_make_profile(struct mthca_dev *dev,
|
||||
profile[MTHCA_RES_RDB].size = MTHCA_RDB_ENTRY_SIZE;
|
||||
profile[MTHCA_RES_MCG].size = MTHCA_MGM_ENTRY_SIZE;
|
||||
profile[MTHCA_RES_MPT].size = dev_lim->mpt_entry_sz;
|
||||
profile[MTHCA_RES_MTT].size = MTHCA_MTT_SEG_SIZE;
|
||||
profile[MTHCA_RES_MTT].size = dev->limits.mtt_seg_size;
|
||||
profile[MTHCA_RES_UAR].size = dev_lim->uar_scratch_entry_sz;
|
||||
profile[MTHCA_RES_UDAV].size = MTHCA_AV_SIZE;
|
||||
profile[MTHCA_RES_UARC].size = request->uarc_size;
|
||||
@@ -232,7 +232,7 @@ s64 mthca_make_profile(struct mthca_dev *dev,
|
||||
dev->limits.num_mtt_segs = profile[i].num;
|
||||
dev->mr_table.mtt_base = profile[i].start;
|
||||
init_hca->mtt_base = profile[i].start;
|
||||
init_hca->mtt_seg_sz = ffs(MTHCA_MTT_SEG_SIZE) - 7;
|
||||
init_hca->mtt_seg_sz = ffs(dev->limits.mtt_seg_size) - 7;
|
||||
break;
|
||||
case MTHCA_RES_UAR:
|
||||
dev->limits.num_uars = profile[i].num;
|
||||
|
Reference in New Issue
Block a user