Re: [PATCH v2 00/26] IB: Optimize DMA mapping

From: Bart Van Assche
Date: Fri Jan 13 2017 - 15:36:47 EST


On Fri, 2017-01-13 at 18:27 +0000, Estrin, Alex wrote:
> This series applied to 4.10-rc3 breaks hfi1 sdma engines.
> [   34.712343] hfi1 0000:82:00.0: hfi1_0: SDMA (0) engine error: 0x21
> state s50_HwHaltWait
> [   34.722752] hfi1 0000:82:00.0: hfi1_0: SDMA (0) descq_head: 0
> descq_tail: 3 freecnt: 2044 FLE 0
> [   34.733933] hfi1 0000:82:00.0: hfi1_0: SDMA sdmadesc[0]: flags:--F-
> addr:0x00008808248c8000 gen:0 len:36 bytes
> [   34.746595] hfi1 0000:82:00.0: hfi1_0:       desc0:0x80248808248c8000
> desc1 0x0000000000000000
> [   34.757218] hfi1 0000:82:00.0: hfi1_0:       aidx: 0 amode: 0 alen: 0
> [   34.765448] hfi1 0000:82:00.0: hfi1_0: SDMA sdmadesc[1]: flags:----
> addr:0x0000880829fd5000 gen:0 len:24 bytes
> [   34.778184] hfi1 0000:82:00.0: hfi1_0:       desc0:0x0018880829fd5000
> desc1 0x0000000000000000
> [   34.788941] hfi1 0000:82:00.0: hfi1_0: SDMA sdmadesc[2]: flags:-H-L
> addr:0x0000880829fd5018 gen:0 len:440 bytes
> [   34.801849] hfi1 0000:82:00.0: hfi1_0:       desc0:0x41b8880829fd5018
> desc1 0x0000000000000001
> ...etc
>
> BTW, what was the base for this series, as 19/26 did not apply cleanly to
> 4.10-rc3?

Hello Alex,

Sorry for this. Can you check whether the patch below fixes this regression?

diff --git a/drivers/infiniband/sw/rdmavt/vt.c
b/drivers/infiniband/sw/rdmavt/vt.c
index 6a81b179f631..f7fcd015ec09 100644
--- a/drivers/infiniband/sw/rdmavt/vt.c
+++ b/drivers/infiniband/sw/rdmavt/vt.c
@@ -778,8 +778,7 @@ int rvt_register_device(struct rvt_dev_info *rdi)
  }
 
  /* DMA Operations */
- if (rdi->ibdev.dma_device->dma_ops == NULL)
- set_dma_ops(rdi->ibdev.dma_device, &dma_virt_ops);
+ set_dma_ops(rdi->ibdev.dma_device, &dma_virt_ops);
 
  /* Protection Domain */
  spin_lock_init(&rdi->n_pds_lock);
-- 
2.11.0

I will make sure that this series applies cleanly on top of v4.10-rc3 when I
repost it.

Bart.