mirror_ubuntu-kernels/drivers/infiniband/hw/hfi1
Gary Leshner 7f90a5a069 IB/{rdmavt, hfi1}: Implement creation of accelerated UD QPs
Adds capability to create a qpn to be recognized as an accelerated
UD QP for ipoib.

This is accomplished by reserving 0x81 in byte[0] of the qpn as the
prefix for these qp types and reserving qpns between 0x810000 and
0x81ffff.

The hfi1 capability mask already contained a flag for the VNIC netdev.
This has been renamed and extended to include both VNIC and ipoib.

The rvt code to allocate qps now recognizes this flag and sets 0x81
into byte[0] of the qpn.

The code to allocate qpns is modified to reset the qpn numbering when it
is detected that a value is located in byte[0] for a UD QP and it is a
qpn being requested for net dev use. If it is a regular UD QP then it is
allowable to have bits set in byte[0] of the qpn and provide the
previously normal behavior.

The code to free the qpn now checks for the AIP prefix value of 0x81 and
removes it from the qpn before being freed so that the lower 16 bit
number can be reused.

This patch requires minor changes in the IB core and ipoib to facilitate
the creation of accelerated UP QPs.

Link: https://lore.kernel.org/r/20200511160607.173205.11757.stgit@awfm-01.aw.intel.com
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Gary Leshner <Gary.S.Leshner@intel.com>
Signed-off-by: Kaike Wan <kaike.wan@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2020-05-21 11:23:54 -03:00
..
affinity.c RDMA/hfi1: Fix memory leak in _dev_comp_vect_mappings_create 2020-02-11 11:35:45 -04:00
affinity.h IB/{hfi1, rdmavt, qib}: Implement CQ completion vector support 2018-05-09 15:53:30 -04:00
aspm.c IB/hfi1: Reduce excessive aspm inlines 2019-06-28 22:34:26 -03:00
aspm.h IB/hfi1: Reduce excessive aspm inlines 2019-06-28 22:34:26 -03:00
chip_registers.h IB/hfi1: Add RcvShortLengthErrCnt to hfi1stats 2020-01-10 10:57:17 -04:00
chip.c IB/hfi1: Remove module parameter for KDETH qpns 2020-05-21 11:23:54 -03:00
chip.h IB/hfi1: Add RcvShortLengthErrCnt to hfi1stats 2020-01-10 10:57:17 -04:00
common.h IB/hfi1: Remove module parameter for KDETH qpns 2020-05-21 11:23:54 -03:00
debugfs.c IB/hfi1: List all receive contexts from debugfs 2020-01-03 16:44:50 -04: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: Add software counter for ctxt0 seq drop 2020-01-10 10:57:17 -04:00
efivar.c infiniband: hfi1: Use EFI GetVariable only when available 2020-02-23 21:59:42 +01:00
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 IB/hfi1: Cleanup of exp_rcv 2018-05-24 09:39:25 -06:00
fault.c IB/hfi1: Use scnprintf() for avoiding potential buffer overflow 2020-03-26 15:06:14 -03:00
fault.h IB/hfi1: Rework fault injection machinery 2018-05-09 15:53:30 -04:00
file_ops.c IB/hfi1: Remove module parameter for KDETH qpns 2020-05-21 11:23:54 -03:00
firmware.c IB/hfi1: Fix infinite loop in 8051 command error path 2018-01-05 13:34:55 -05:00
hfi.h IB/hfi1: Remove module parameter for KDETH qpns 2020-05-21 11:23:54 -03:00
init.c IB/hfi1: Remove kobj from hfi1_devdata 2020-03-18 19:53:47 -03:00
intr.c
iowait.c IB/hfi1: Don't cancel unused work item 2020-01-03 16:41:51 -04:00
iowait.h IB/hfi1: Prioritize the sending of ACK packets 2019-02-05 18:07:44 -05:00
ipoib_main.c IB/hfi1: Add the transmit side of a datagram ipoib RDMA netdev 2020-05-21 11:23:54 -03:00
ipoib_tx.c IB/hfi1: Add functions to transmit datagram ipoib packets 2020-05-21 11:23:54 -03:00
ipoib.h IB/hfi1: Add the transmit side of a datagram ipoib RDMA netdev 2020-05-21 11:23:54 -03:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
mad.c RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
mad.h RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
Makefile IB/hfi1: Add the transmit side of a datagram ipoib RDMA netdev 2020-05-21 11:23:54 -03: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: Fix logical condition in msix_request_irq 2020-01-25 15:33:53 -04:00
msix.h IB/hfi1: Decouple IRQ name from type 2020-01-10 10:57:17 -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 remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
pio_copy.c
pio.c Linux 5.2-rc6 2019-06-28 21:18:23 -03:00
pio.h RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
platform.c IB/hfi1: remove redundant assignment to variable ret 2019-11-25 10:31:47 -04:00
platform.h
qp.c IB/{rdmavt, hfi1, qib}: Add helpers to hide SWQE WR details 2019-06-28 22:34:26 -03:00
qp.h IB/hfi1: Add the dual leg code 2019-02-05 18:07:44 -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/hfi1: use true,false for bool variable 2020-01-03 19:13:59 -04: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 RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
sdma.h RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
sysfs.c IB/hfi1: Call kobject_put() when kobject_init_and_add() fails 2020-03-27 13:13:36 -03:00
tid_rdma.c IB/hfi1: Remove module parameter for KDETH qpns 2020-05-21 11:23:54 -03:00
tid_rdma.h IB/hfi1: Calculate flow weight based on QP MTU for TID RDMA 2019-11-06 13:15:36 -04:00
trace_ctxts.h IB/hfi1: Add accessor API routines to access context members 2020-01-03 16:44:49 -04:00
trace_dbg.h IB/hfi1: Fix two format strings 2019-03-28 11:03:49 -03:00
trace_ibhdrs.h IB/hfi1: Add missing INVALIDATE opcodes for trace 2019-06-28 22:34:26 -03: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 fast and slow handlers for receive context 2020-01-10 10:57:16 -04:00
trace_tid.h ftrace: Rework event_create_dir() 2019-11-27 07:44:25 +01:00
trace_tx.h ftrace: Rework event_create_dir() 2019-11-27 07:44:25 +01:00
trace.c IB/hfi1: Add functions to transmit datagram ipoib packets 2020-05-21 11:23:54 -03:00
trace.h IB/hfi1: Add static trace for OPFN 2019-01-31 11:37:40 -05:00
uc.c IB/{hfi1, qib, rdmavt}: Put qp in error state when cq is full 2019-06-28 22:34:26 -03:00
ud.c IB/{rdmavt, hfi1, qib}: Add helpers to hide SWQE WR details 2019-06-28 22:34:26 -03:00
user_exp_rcv.c IB/hfi1: Close window for pq and request coliding 2020-02-11 11:41:31 -04:00
user_exp_rcv.h RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00
user_pages.c mm, tree-wide: rename put_user_page*() to unpin_user_page*() 2020-01-31 10:30:38 -08:00
user_sdma.c IB/hfi1: Ensure pq is not left on waitlist 2020-03-23 21:57:57 -03:00
user_sdma.h IB/hfi1: Remove unused define 2019-07-22 16:10:48 -03:00
verbs_txreq.c IB/hfi1: Silence txreq allocation warnings 2019-06-17 21:15:40 -04:00
verbs_txreq.h IB/hfi1: Silence txreq allocation warnings 2019-06-17 21:15:40 -04:00
verbs.c IB/{rdmavt, hfi1}: Implement creation of accelerated UD QPs 2020-05-21 11:23:54 -03:00
verbs.h treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
vnic_main.c IB/hfi1: Add accessor API routines to access context members 2020-01-03 16:44:49 -04:00
vnic_sdma.c net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
vnic.h