IB/qib: RDMA lkey/rkey validation is inefficient for large MRs
The current code loops during rkey/lkey validiation to isolate the MR for the RDMA, which is expensive when the current operation is inside a very large memory region. This fix optimizes rkey/lkey validation routines for user memory regions and fast memory regions. The MR entry can be isolated by shifts/mods instead of looping. The existing loop is preserved for phys memory regions for now. Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:

committed by
Roland Dreier

parent
7c3edd3ff3
commit
2a600f14d2
@@ -301,6 +301,7 @@ struct qib_mregion {
|
||||
int access_flags;
|
||||
u32 max_segs; /* number of qib_segs in all the arrays */
|
||||
u32 mapsz; /* size of the map array */
|
||||
u8 page_shift; /* 0 - non unform/non powerof2 sizes */
|
||||
atomic_t refcount;
|
||||
struct qib_segarray *map[0]; /* the segments */
|
||||
};
|
||||
|
Reference in New Issue
Block a user