android_kernel_asus_sm8350/net/smc
Hans Wippel c6ba7c9ba4 net/smc: add base infrastructure for SMC-D and ISM
SMC supports two variants: SMC-R and SMC-D. For data transport, SMC-R
uses RDMA devices, SMC-D uses so-called Internal Shared Memory (ISM)
devices. An ISM device only allows shared memory communication between
SMC instances on the same machine. For example, this allows virtual
machines on the same host to communicate via SMC without RDMA devices.

This patch adds the base infrastructure for SMC-D and ISM devices to
the existing SMC code. It contains the following:

* ISM driver interface:
  This interface allows an ISM driver to register ISM devices in SMC. In
  the process, the driver provides a set of device ops for each device.
  SMC uses these ops to execute SMC specific operations on or transfer
  data over the device.

* Core SMC-D link group, connection, and buffer support:
  Link groups, SMC connections and SMC buffers (in smc_core) are
  extended to support SMC-D.

* SMC type checks:
  Some type checks are added to prevent using SMC-R specific code for
  SMC-D and vice versa.

To actually use SMC-D, additional changes to pnetid, CLC, CDC, etc. are
required. These are added in follow-up patches.

Signed-off-by: Hans Wippel <hwippel@linux.ibm.com>
Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
Suggested-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-06-30 20:42:25 +09:00
..
af_smc.c net/smc: add base infrastructure for SMC-D and ISM 2018-06-30 20:42:25 +09:00
Kconfig net/smc: remove Kconfig warning 2017-07-29 11:22:58 -07:00
Makefile net/smc: add base infrastructure for SMC-D and ISM 2018-06-30 20:42:25 +09:00
smc_cdc.c net/smc: urgent data support 2018-05-23 16:02:35 -04:00
smc_cdc.h net/smc: urgent data support 2018-05-23 16:02:35 -04:00
smc_clc.c net/smc: rename connection index to RMBE index 2018-05-18 13:15:01 -04:00
smc_clc.h net/smc: rename connection index to RMBE index 2018-05-18 13:15:01 -04:00
smc_close.c net/smc: simplify wait when closing listen socket 2018-03-15 09:49:13 -04:00
smc_close.h net/smc: replace sock_put worker by socket refcounting 2018-01-26 10:41:56 -05:00
smc_core.c net/smc: add base infrastructure for SMC-D and ISM 2018-06-30 20:42:25 +09:00
smc_core.h net/smc: add base infrastructure for SMC-D and ISM 2018-06-30 20:42:25 +09:00
smc_diag.c net/smc: add base infrastructure for SMC-D and ISM 2018-06-30 20:42:25 +09:00
smc_ib.c net/smc: add pnetid support 2018-06-30 20:42:25 +09:00
smc_ib.h net/smc: add pnetid support 2018-06-30 20:42:25 +09:00
smc_ism.c net/smc: add base infrastructure for SMC-D and ISM 2018-06-30 20:42:25 +09:00
smc_ism.h net/smc: add base infrastructure for SMC-D and ISM 2018-06-30 20:42:25 +09:00
smc_llc.c net/smc: drop messages when link state is inactive 2018-05-16 11:49:20 -04:00
smc_llc.h net/smc: use a workqueue to defer llc send 2018-05-16 11:49:19 -04:00
smc_pnet.c net/smc: add pnetid support 2018-06-30 20:42:25 +09:00
smc_pnet.h net/smc: add pnetid support 2018-06-30 20:42:25 +09:00
smc_rx.c net/smc: urgent data support 2018-05-23 16:02:35 -04:00
smc_rx.h smc: add support for splice() 2018-05-04 11:45:06 -04:00
smc_tx.c net/smc: optimize consumer cursor updates 2018-06-30 20:42:25 +09:00
smc_tx.h net/smc: urgent data support 2018-05-23 16:02:35 -04:00
smc_wr.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
smc_wr.h net/smc: pay attention to MAX_ORDER for CQ entries 2018-03-14 13:40:44 -04:00
smc.h net/smc: determine port attributes independent from pnet table 2018-06-30 20:42:25 +09:00