On Tue, Mar 8, 2016 at 9:14 PM, Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx> wrote: > This patch series adds a performance improvement to user SDMA transfers from > PSM applications by caching user buffer pages after pinning them. Subsequent > uses of the same user buffer will not incur the cost of pinning the same pages > again. Additionally, the cost of unpinning the same pages is avoided. Buffer > pages are unpinned when the context is torn down or when the driver determines > that the buffer should be evicted from the cache. Cache evictions happen when > there is a request for a new, uncached buffer and the current size of the cache > has reached a pre-defined limit. If indeed there's a need for such a pin down cache, it should have been implemented in the IB core, b/c both the problem and the solution are generic and have nothing to do with certain device driver. The problem is that you are bypassing the IB core altogether with a proprietary character device in the hfi1 driver which managed to snick in even in the presence of reviewer comments during the submission. Doug, what do you suggest here? Or. > Mitko Haralanov (16): > IB/hfi1: Re-factor MMU notification code > IB/hfi1: Allow MMU function execution in IRQ context > IB/hfi1: Prevent NULL pointer dereference > IB/hfi1: Allow remove MMU callbacks to free nodes > IB/hfi1: Remove the use of add/remove RB function pointers > IB/hfi1: Notify remove MMU/RB callback of calling context > IB/hfi1: Use interval RB trees > IB/hfi1: Add MMU tracing > IB/hfi1: Remove compare callback > IB/hfi1: Add filter callback > IB/hfi1: Adjust last address values for intervals > IB/hfi1: Implement SDMA-side buffer caching > IB/hfi1: Add pin query function > IB/hfi1: Specify mm when releasing pages > IB/hfi1: Switch to using the pin query function > IB/hfi1: Add SDMA cache eviction algorithm > > > drivers/infiniband/hw/hfi1/Makefile | 2 > drivers/infiniband/hw/hfi1/file_ops.c | 1 > drivers/infiniband/hw/hfi1/hfi.h | 16 + > drivers/infiniband/hw/hfi1/mmu_rb.c | 292 +++++++++++++++++++++++ > drivers/infiniband/hw/hfi1/mmu_rb.h | 73 ++++++ > drivers/infiniband/hw/hfi1/trace.c | 1 > drivers/infiniband/hw/hfi1/trace.h | 1 > drivers/infiniband/hw/hfi1/user_exp_rcv.c | 362 ++++++++--------------------- > drivers/infiniband/hw/hfi1/user_pages.c | 63 ++++- > drivers/infiniband/hw/hfi1/user_sdma.c | 319 +++++++++++++++++--------- > drivers/infiniband/hw/hfi1/user_sdma.h | 4 > 11 files changed, 747 insertions(+), 387 deletions(-) > create mode 100644 drivers/infiniband/hw/hfi1/mmu_rb.c > create mode 100644 drivers/infiniband/hw/hfi1/mmu_rb.h -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html