IB/qib: RCU locking for MR validation
Profiling indicates that MR validation locking is expensive. The MR table is largely read-only and is a suitable candidate for RCU locking. The patch uses RCU locking during validation to eliminate one lock/unlock during that validation. Reviewed-by: Mike Heinz <michael.william.heinz@intel.com> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:

committed by
Roland Dreier

parent
6a82649f21
commit
8aac4cc3a9
@@ -2066,7 +2066,9 @@ int qib_register_ib_device(struct qib_devdata *dd)
|
||||
ret = -ENOMEM;
|
||||
goto err_lk;
|
||||
}
|
||||
memset(dev->lk_table.table, 0, lk_tab_size);
|
||||
RCU_INIT_POINTER(dev->dma_mr, NULL);
|
||||
for (i = 0; i < dev->lk_table.max; i++)
|
||||
RCU_INIT_POINTER(dev->lk_table.table[i], NULL);
|
||||
INIT_LIST_HEAD(&dev->pending_mmaps);
|
||||
spin_lock_init(&dev->pending_lock);
|
||||
dev->mmap_offset = PAGE_SIZE;
|
||||
|
Reference in New Issue
Block a user