Use the ib_dma_* helpers to skip the DMA translation instead. This removes the last user if dma_virt_ops and keeps the weird layering violation inside the RDMA core instead of burderning the DMA mapping subsystems with it. This also means the software RDMA drivers now don't have to mess with DMA parameters that are not relevant to them at all, and that in the future we can use PCI P2P transfers even for software RDMA, as there is no first fake layer of DMA mapping that the P2P DMA support. Link: https://lore.kernel.org/r/20201106181941.1878556-8-hch@lst.de Signed-off-by: Christoph Hellwig <hch@lst.de> Tested-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
28 lines
1.1 KiB
Plaintext
28 lines
1.1 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
config RDMA_RXE
|
|
tristate "Software RDMA over Ethernet (RoCE) driver"
|
|
depends on INET && PCI && INFINIBAND
|
|
depends on INFINIBAND_VIRT_DMA
|
|
select NET_UDP_TUNNEL
|
|
select CRYPTO_CRC32
|
|
help
|
|
This driver implements the InfiniBand RDMA transport over
|
|
the Linux network stack. It enables a system with a
|
|
standard Ethernet adapter to interoperate with a RoCE
|
|
adapter or with another system running the RXE driver.
|
|
Documentation on InfiniBand and RoCE can be downloaded at
|
|
www.infinibandta.org and www.openfabrics.org. (See also
|
|
siw which is a similar software driver for iWARP.)
|
|
|
|
The driver is split into two layers, one interfaces with the
|
|
Linux RDMA stack and implements a kernel or user space
|
|
verbs API. The user space verbs API requires a support
|
|
library named librxe which is loaded by the generic user
|
|
space verbs API, libibverbs. The other layer interfaces
|
|
with the Linux network stack at layer 3.
|
|
|
|
To configure and work with soft-RoCE driver please use the
|
|
following wiki page under "configure Soft-RoCE (RXE)" section:
|
|
|
|
https://github.com/linux-rdma/rdma-core/blob/master/Documentation/rxe.md
|