linux/drivers/infiniband/hw/hfi1
Mike Marciniszyn 4c4b1996b5 IB/hfi1: Fix WQ_MEM_RECLAIM warning
The work_item cancels that occur when a QP is destroyed can elicit the
following trace:

 workqueue: WQ_MEM_RECLAIM ipoib_wq:ipoib_cm_tx_reap [ib_ipoib] is flushing !WQ_MEM_RECLAIM hfi0_0:_hfi1_do_send [hfi1]
 WARNING: CPU: 7 PID: 1403 at kernel/workqueue.c:2486 check_flush_dependency+0xb1/0x100
 Call Trace:
  __flush_work.isra.29+0x8c/0x1a0
  ? __switch_to_asm+0x40/0x70
  __cancel_work_timer+0x103/0x190
  ? schedule+0x32/0x80
  iowait_cancel_work+0x15/0x30 [hfi1]
  rvt_reset_qp+0x1f8/0x3e0 [rdmavt]
  rvt_destroy_qp+0x65/0x1f0 [rdmavt]
  ? _cond_resched+0x15/0x30
  ib_destroy_qp+0xe9/0x230 [ib_core]
  ipoib_cm_tx_reap+0x21c/0x560 [ib_ipoib]
  process_one_work+0x171/0x370
  worker_thread+0x49/0x3f0
  kthread+0xf8/0x130
  ? max_active_store+0x80/0x80
  ? kthread_bind+0x10/0x10
  ret_from_fork+0x35/0x40

Since QP destruction frees memory, hfi1_wq should have the WQ_MEM_RECLAIM.

The hfi1_wq does not allocate memory with GFP_KERNEL or otherwise become
entangled with memory reclaim, so this flag is appropriate.

Fixes: 0a226edd20 ("staging/rdma/hfi1: Use parallel workqueue for SDMA engines")
Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-05-06 12:57:45 -03:00
..
affinity.c mm: replace all open encodings for NUMA_NO_NODE 2019-03-05 21:07:14 -08:00
affinity.h
aspm.h
chip_registers.h IB/hfi1: Add selected Rcv counters 2019-04-24 11:48:10 -03:00
chip.c IB/hfi1: Add selected Rcv counters 2019-04-24 11:48:10 -03:00
chip.h IB/hfi1: Add selected Rcv counters 2019-04-24 11:48:10 -03:00
common.h IB/hfi1: Remove reference to RHF.VCRCErr 2019-04-24 11:48:11 -03:00
debugfs.c IB/hfi1: Add debugfs to control expansion ROM write protect 2019-04-24 11:26:41 -03:00
debugfs.h infiniband: hfi1: drop crazy DEBUGFS_SEQ_FILE_CREATE() macro 2019-01-24 09:22:29 -07:00
device.c
device.h
driver.c IB/hfi1: Remove reference to RHF.VCRCErr 2019-04-24 11:48:11 -03:00
efivar.c
efivar.h
eprom.c
eprom.h
exp_rcv.c IB/hfi1: Remove WARN_ON when freeing expected receive groups 2019-04-03 15:27:30 -03:00
exp_rcv.h
fault.c infiniband: hfi1: no need to check return value of debugfs_create functions 2019-01-24 09:22:29 -07:00
fault.h
file_ops.c IB/hfi1: Remove overly conservative VM_EXEC flag check 2019-01-21 14:20:08 -07:00
firmware.c
hfi.h hfi1: Convert hfi1_unit_table to XArray 2019-04-01 13:27:35 -03:00
init.c IB/hfi1: Fix WQ_MEM_RECLAIM warning 2019-05-06 12:57:45 -03:00
intr.c
iowait.c IB/hfi1: Prioritize the sending of ACK packets 2019-02-05 18:07:44 -05:00
iowait.h IB/hfi1: Prioritize the sending of ACK packets 2019-02-05 18:07:44 -05:00
Kconfig
mad.c RDMA: Mark if create address handle is in a sleepable context 2018-12-19 16:17:19 -07:00
mad.h
Makefile IB/hfi1: OPFN interface 2019-01-31 11:36:05 -05:00
mmu_rb.c mm/mmu_notifier: use structure for invalidate_range_start/end callback 2018-12-28 12:11:50 -08:00
mmu_rb.h
msix.c IB/hfi1: Rework the IRQ API to be more flexible 2018-09-01 08:13:38 -04:00
msix.h IB/hfi1: Make the MSIx resource allocation a bit more flexible 2018-09-01 08:13:38 -04:00
opa_compat.h
opfn.c IB/hfi1: Add TID RDMA retry timer 2019-02-05 18:07:43 -05:00
opfn.h IB/hfi1: Make opfn.h self sufficient 2019-04-24 11:31:49 -03:00
pcie.c First merge window pull request 2018-10-26 07:38:19 -07:00
pio_copy.c
pio.c IB/hfi1: Prioritize the sending of ACK packets 2019-02-05 18:07:44 -05:00
pio.h IB/hfi1: Reduce lock contention on iowait_lock for sdma and pio 2018-12-06 20:15:36 -07:00
platform.c
platform.h
qp.c Merge HFI1 updates into k.o/for-next 2019-04-03 15:28:05 -03:00
qp.h IB/hfi1: Add the dual leg code 2019-02-05 18:07:44 -05:00
qsfp.c
qsfp.h
rc.c IB/{rdmavt, qib, hfi1}: Use new routine to release reference counts 2019-04-24 11:31:49 -03:00
rc.h IB/hfi1: Delay the release of destination mr for TID RDMA WRITE DATA 2019-04-03 15:27:30 -03:00
ruc.c IB/{rdmavt, hfi1): Miscellaneous comment fixes 2019-04-24 11:31:48 -03:00
sdma_txreq.h IB/hfi1: Prioritize the sending of ACK packets 2019-02-05 18:07:44 -05:00
sdma.c IB/hfi1: Prioritize the sending of ACK packets 2019-02-05 18:07:44 -05:00
sdma.h IB/hfi1: Reduce lock contention on iowait_lock for sdma and pio 2018-12-06 20:15:36 -07:00
sysfs.c RDMA: Introduce and use rdma_device_to_ibdev() 2019-01-14 13:12:03 -07:00
tid_rdma.c Merge branch 'rdma_mmap' into rdma.git for-next 2019-04-24 16:20:34 -03:00
tid_rdma.h IB/hfi1: Unify the software PSN check for TID RDMA READ/WRITE 2019-04-03 15:27:30 -03:00
trace_ctxts.h
trace_dbg.h IB/hfi1: Fix two format strings 2019-03-28 11:03:49 -03:00
trace_ibhdrs.h IB/hfi1: Add static trace for TID RDMA WRITE protocol 2019-02-05 18:07:44 -05:00
trace_iowait.h IB/hfi1: Add static trace for iowait 2018-09-30 19:21:12 -06:00
trace_misc.h
trace_mmu.h
trace_rc.h IB/hfi1: Add static trace for TID RDMA READ protocol 2019-02-05 17:53:56 -05:00
trace_rx.h IB/hfi1: Add static trace for OPFN 2019-01-31 11:37:40 -05:00
trace_tid.h IB/hfi1: Unify the software PSN check for TID RDMA READ/WRITE 2019-04-03 15:27:30 -03:00
trace_tx.h IB/hfi1: Add static trace for TID RDMA WRITE protocol 2019-02-05 18:07:44 -05:00
trace.c IB/hfi1: Add static trace for TID RDMA WRITE protocol 2019-02-05 18:07:44 -05:00
trace.h IB/hfi1: Add static trace for OPFN 2019-01-31 11:37:40 -05:00
uc.c IB/hfi1: OPFN support discovery 2019-01-31 11:36:04 -05:00
ud.c Linux 5.0-rc5 2019-02-04 14:53:42 -07:00
user_exp_rcv.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
user_exp_rcv.h IB/hfi1: TID RDMA RcvArray programming and TID allocation 2019-02-05 17:53:55 -05:00
user_pages.c drivers/IB,hfi1: do not se mmap_sem 2019-02-07 12:54:02 -07:00
user_sdma.c IB/hfi1: Prioritize the sending of ACK packets 2019-02-05 18:07:44 -05:00
user_sdma.h IB/hfi1: Right size user_sdma sequence numbers and related variables 2018-09-11 10:05:17 -06:00
verbs_txreq.c
verbs_txreq.h IB/hfi1: Prioritize the sending of ACK packets 2019-02-05 18:07:44 -05:00
verbs.c hfi1: Convert hfi1_unit_table to XArray 2019-04-01 13:27:35 -03:00
verbs.h IB/hfi1: Add running average for adaptive pio 2019-03-26 09:33:21 -03:00
vnic_main.c hfi1: Convert vesw_idr to XArray 2019-03-29 14:51:50 -03:00
vnic_sdma.c IB/hfi1: Prioritize the sending of ACK packets 2019-02-05 18:07:44 -05:00
vnic.h