SoftRoCE / rxe-dev

Development Repository for RXE
Other
128 stars 55 forks source link

IB/rxe: software access to umem without dma #50

Closed allenbh closed 7 years ago

allenbh commented 7 years ago

RXE uses ib_umem_get() to pin user pages. This has had the side effect of also dma mapping those pages. Since the RXE device is not a hardware device known to support dma highmem, dma mapping core assumes the mapping must use the swiotlb (bounce buffer), which is limited in size.

This patch adds IB_ACCESS_SOFTWARE to the access flags before calling ib_umem_get(). This avoids dma mapping the pages at all, which is unnecessary for RXE without any hardware to use the dma mapping. The result is that RXE is more efficient in not using the swiotlb, and now RXE can allocate memory regions larger than the swiotlb capacity.


This is an opportunity for code reuse, because another proposed use of IB_ACCESS_SOFTWARE can be seen here in NTRDMA. https://github.com/ntrdma/ntrdma/commit/d5b00f451c1b3a00a7b77aad377c0c40ff4016c9 https://github.com/ntrdma/ntrdma/commit/88a1f84bf4de56286150113b54323e06bd75b34a

This pull request is based on the v18 upstream submission, but it be more appropriate for the next/v19. Is there a public branch where you are preparing the next upstream submission? Or, if you are no longer accepting pull requests for RXE via github, would you please direct me to the mailing list you are using for the prep work. Thanks.

sbates130272 commented 7 years ago

Hi

Was there any action on this? I too am looking at submitting some RXE patches and would like to know if you have a for-next or other suitable repo can submit them against?

Stephen

allenbh commented 7 years ago

@sbates130272 it looks like the transition to upstream has happened, and only patches sent to the mailing list will get any attention now. I will close this.

This driver is in the rdma subsystem maintainer tree here: https://git.kernel.org/cgit/linux/kernel/git/dledford/rdma.git/tree/drivers/infiniband/sw/rxe

And also in Linus' tree here, to be released with v4.8: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/infiniband/sw/rxe

As per SubmittingPatches, patches should now be emailed to the rdma subsystem mailing list here: linux-rdma@vger.kernel.org

Relevant information from MAINTAINERS:

INFINIBAND SUBSYSTEM
M:  Doug Ledford <dledford@redhat.com>
M:  Sean Hefty <sean.hefty@intel.com>
M:  Hal Rosenstock <hal.rosenstock@gmail.com>
L:  linux-rdma@vger.kernel.org
W:  http://www.openfabrics.org/
Q:  http://patchwork.kernel.org/project/linux-rdma/list/
T:  git git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git
S:  Supported
F:  Documentation/infiniband/
F:  drivers/infiniband/
F:  include/uapi/linux/if_infiniband.h
F:  include/uapi/rdma/
F:  include/rdma/

SOFT-ROCE DRIVER (rxe)
M:  Moni Shoua <monis@mellanox.com>
L:  linux-rdma@vger.kernel.org
S:  Supported
W:  https://github.com/SoftRoCE/rxe-dev/wiki/rxe-dev:-Home
Q:  http://patchwork.kernel.org/project/linux-rdma/list/
F:  drivers/infiniband/sw/rxe/
F:  include/uapi/rdma/rdma_user_rxe.h
sbates130272 commented 7 years ago

Thanks for letting me know @allenbh. Will continue to conversation via the relevant kernel mailing lists....