]> www.infradead.org Git - users/jedix/linux-maple.git/commit
sparc64/mlx4_core: relaxed order for mlx4_core dma mappings
authorShamir Rabinovitch <shamir.rabinovitch@oracle.com>
Tue, 14 Mar 2017 16:35:27 +0000 (09:35 -0700)
committerAllen Pais <allen.pais@oracle.com>
Tue, 6 Jun 2017 10:35:45 +0000 (16:05 +0530)
commit3b203bd4ede677a52318b8c68dc55f476a5d742e
tree869b1c826c8bfd1d236fda490dc3535ee8a21feb
parent4a6a3b533d573809f5f772ec7c849c3da5383908
sparc64/mlx4_core: relaxed order for mlx4_core dma mappings

SPARC PCI require relaxed order PCI transactions from the HCA to the
host memory to enable maximum performance. CX3 is not capable of setting
the relaxed order for the PCI transactions. Only mlx4_core driver can set
relaxed order on the right DMA mappings. Fix it!

This is temporary fix only for UEK4. Upstream changed the way the IB
subsystem work with DMA and upstreaming of this fix requires first to
fix net-next tree panic when rdma service is started (Orabug 25760394)
and only then upstreaming the fix for the SPARC/CX3 performance issue.
This cannot be done in short time and require back-port of lots of
upstream code introduced with upstream commit: "Merge tag
'for-next-dma_ops' of
git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma".

The current decision is to limit the change to mlx4 drivers and the ULPs
that use it. This patch only override the mlx4 DMA functions as opposed
for doing this from ib_verbs DMA functions.

This patch is already used in UEK2/SPARC and was proven as working under
all the product testing and so it is ported as-is.

Orabug: 25723815

Cc: Yuval Shaia <yuval.shaia@oracle.com>
Cc: Govinda Tatti <govinda.tatti@oracle.com>
Cc: chris hyser <chris.hyser@oracle.com>
Reviewed-by: HÃ¥kon Bugge <haakon.bugge@oracle.com>
Signed-off-by: tndave <tushar.n.dave@oracle.com>
Signed-off-by: Shamir Rabinovitch <shamir.rabinovitch@oracle.com>
Signed-off-by: Allen Pais <allen.pais@oracle.com>
drivers/infiniband/core/umem.c
drivers/infiniband/hw/mlx4/Makefile
drivers/infiniband/hw/mlx4/dma.c [new file with mode: 0644]
drivers/infiniband/hw/mlx4/dma.h [new file with mode: 0644]
drivers/infiniband/hw/mlx4/main.c
include/rdma/ib_verbs.h