linux_dsm_epyc7002/drivers/infiniband/hw/hfi1
Kaike Wan 838b6fd2d9 IB/hfi1: TID RDMA RcvArray programming and TID allocation
TID entries are used by hfi1 hardware to receive data payload from
incoming packets directly into a user buffer and thus avoid data copying
by software. This patch implements the functions for TID allocation,
freeing, and programming TID RcvArray entries in hardware for kernel
clients. TID entries are managed via lists of TID groups similar to PSM.
Furthermore, to track TID resource allocation for each request, software
flows are also allocated and freed as needed. Since software flows
consume large amount of memory for tracking TID allocation and freeing,
it is generally desirable to allocate them dynamically in the send queue
and only for TID RDMA requests, but pre-allocate them for receive queue
because the send queue could have thousands of entries while the receive
queue has only a limited number of entries.

Signed-off-by: Mitko Haralanov <mitko.haralanov@intel.com>
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Kaike Wan <kaike.wan@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2019-02-05 17:53:55 -05:00
..
affinity.c IB/hfi1: Make the MSIx resource allocation a bit more flexible 2018-09-01 08:13:38 -04:00
affinity.h IB/{hfi1, rdmavt, qib}: Implement CQ completion vector support 2018-05-09 15:53:30 -04:00
aspm.h
chip_registers.h IB/hfi1: Dump pio info for non-user send contexts 2018-12-06 19:49:47 -07:00
chip.c IB/hfi1: Add OPFN helper functions for TID RDMA feature 2019-01-31 11:36:05 -05:00
chip.h IB/hfi1: Add OPFN helper functions for TID RDMA feature 2019-01-31 11:36:05 -05:00
common.h IB/hfi1: TID RDMA flow allocation 2019-02-05 17:53:54 -05:00
debugfs.c infiniband: hfi1: no need to check return value of debugfs_create functions 2019-01-24 09:22:29 -07: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: Consider LMC in 16B/bypass ingress packet check 2018-12-06 19:50:09 -07:00
efivar.c
efivar.h
eprom.c
eprom.h
exp_rcv.c IB/hfi1: Cleanup of exp_rcv 2018-05-24 09:39:25 -06:00
exp_rcv.h IB/hfi1: Cleanup of exp_rcv 2018-05-24 09:39:25 -06:00
fault.c infiniband: hfi1: no need to check return value of debugfs_create functions 2019-01-24 09:22:29 -07:00
fault.h IB/hfi1: Rework fault injection machinery 2018-05-09 15:53:30 -04:00
file_ops.c IB/hfi1: Move URGENT IRQ enable to hfi1_rcvctrl() 2018-09-01 08:13:38 -04:00
firmware.c
hfi.h IB/hfi1: TID RDMA RcvArray programming and TID allocation 2019-02-05 17:53:55 -05:00
init.c IB/hfi1: TID RDMA RcvArray programming and TID allocation 2019-02-05 17:53:55 -05:00
intr.c
iowait.c IB/hfi1: Add static trace for iowait 2018-09-30 19:21:12 -06:00
iowait.h IB/hfi1: Prepare resource waits for dual leg 2018-09-30 19:21:12 -06: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 IB/hfi1: Convert PortXmitWait/PortVLXmitWait counters to flit times 2018-02-01 15:43:30 -07:00
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 static trace for OPFN 2019-01-31 11:37:40 -05:00
opfn.h IB/hfi1: OPFN interface 2019-01-31 11:36:05 -05:00
pcie.c First merge window pull request 2018-10-26 07:38:19 -07:00
pio_copy.c
pio.c cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -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 IB/{hfi1, rdmavt}: Fix memory leak in hfi1_alloc_devdata() upon failure 2018-05-03 15:24:48 -04:00
platform.h
qp.c IB/hfi1: TID RDMA flow allocation 2019-02-05 17:53:54 -05:00
qp.h IB/hfi1: TID RDMA flow allocation 2019-02-05 17:53:54 -05:00
qsfp.c IB/{hfi1, rdmavt}: Fix memory leak in hfi1_alloc_devdata() upon failure 2018-05-03 15:24:48 -04:00
qsfp.h
rc.c IB/hfi: Move RC functions into a header file 2019-02-05 17:51:09 -05:00
rc.h IB/hfi: Move RC functions into a header file 2019-02-05 17:51:09 -05:00
ruc.c IB/hfi1: OPFN support discovery 2019-01-31 11:36:04 -05:00
sdma_txreq.h
sdma.c cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -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 IB/hfi1: TID RDMA RcvArray programming and TID allocation 2019-02-05 17:53:55 -05:00
tid_rdma.h IB/hfi1: TID RDMA RcvArray programming and TID allocation 2019-02-05 17:53:55 -05:00
trace_ctxts.h treewide: remove large struct-pass-by-value from tracepoint arguments 2018-03-28 22:55:18 +02:00
trace_dbg.h IB/{hfi1, rdmavt, qib}: Implement CQ completion vector support 2018-05-09 15:53:30 -04:00
trace_ibhdrs.h IB/hfi1: Add 16B Management Packet trace support 2018-05-24 09:39:25 -06: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
trace_rx.h IB/hfi1: Add static trace for OPFN 2019-01-31 11:37:40 -05:00
trace_tid.h IB/hfi1: Add static trace for OPFN 2019-01-31 11:37:40 -05:00
trace_tx.h
trace.c IB/hfi1: Add 16B Management Packet trace support 2018-05-24 09:39:25 -06: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 IB/{hfi1, qib, rvt} Cleanup open coded sge usage 2019-01-30 14:22:32 -05: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
user_sdma.c IB/hfi1: Reduce lock contention on iowait_lock for sdma and pio 2018-12-06 20:15:36 -07: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 IB/hfi1: Fix incorrect mixing of ERR_PTR and NULL return values 2018-06-26 14:35:55 -06:00
verbs_txreq.h IB/hfi1: Prepare resource waits for dual leg 2018-09-30 19:21:12 -06:00
verbs.c IB/hfi1: TID RDMA RcvArray programming and TID allocation 2019-02-05 17:53:55 -05:00
verbs.h IB/hfi1: TID RDMA RcvArray programming and TID allocation 2019-02-05 17:53:55 -05:00
vnic_main.c IB/hfi1: Limit VNIC use of SDMA engines to the available count 2018-12-06 19:50:08 -07:00
vnic_sdma.c IB/hfi1: Reduce lock contention on iowait_lock for sdma and pio 2018-12-06 20:15:36 -07:00
vnic.h