linux/drivers/nvme/host
Dean Balandin 35155e2626 nvme-tcp-offload: Add IO level implementation
In this patch, we present the IO level functionality.
The nvme-tcp-offload shall work on the IO-level, meaning the
nvme-tcp-offload ULP module shall pass the request to the nvme-tcp-offload
vendor driver and shall expect for the request completion.
No additional handling is needed in between, this design will reduce the
CPU utilization as we will describe below.

The nvme-tcp-offload vendor driver shall register to nvme-tcp-offload ULP
with the following IO-path ops:
 - send_req - in order to pass the request to the handling of the offload
   driver that shall pass it to the vendor specific device
 - poll_queue

The vendor driver will manage the context from which the request will be
executed and the request aggregations.
Once the IO completed, the nvme-tcp-offload vendor driver shall call
command.done() that shall invoke the nvme-tcp-offload ULP layer for
completing the request.

This patch also add support for the nvme-tcp-offload timeout and
nvme-tcp-offload ASYNC flow.

Acked-by: Igor Russkikh <irusskikh@marvell.com>
Signed-off-by: Dean Balandin <dbalandin@marvell.com>
Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com>
Signed-off-by: Omkar Kulkarni <okulkarni@marvell.com>
Signed-off-by: Michal Kalderon <mkalderon@marvell.com>
Signed-off-by: Ariel Elior <aelior@marvell.com>
Signed-off-by: Shai Malin <smalin@marvell.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-06-03 14:11:21 -07:00
..
Kconfig nvme-tcp-offload: Add nvme-tcp-offload - NVMeTCP HW offload ULP 2021-06-03 14:11:21 -07:00
Makefile nvme-tcp-offload: Add nvme-tcp-offload - NVMeTCP HW offload ULP 2021-06-03 14:11:21 -07:00
core.c nvme-multipath: fix double initialization of ANA state 2021-05-11 18:30:45 +02:00
fabrics.c nvme-fabrics: Expose nvmf_check_required_opts() globally 2021-06-03 14:11:21 -07:00
fabrics.h nvme-fabrics: Expose nvmf_check_required_opts() globally 2021-06-03 14:11:21 -07:00
fault_inject.c nvme: enable to inject errors into admin commands 2019-06-21 11:15:50 +02:00
fc.c nvme-fc: clear q_live at beginning of association teardown 2021-05-19 08:40:24 +02:00
fc.h nvme-fc: Update header and host for common definitions for LS handling 2020-05-09 16:18:33 -06:00
hwmon.c nvme-hwmon: Return error code when registration fails 2021-03-05 13:41:03 +01:00
ioctl.c nvme: fix controller ioctl through ns_head 2021-05-04 09:35:47 +02:00
lightnvm.c for-5.13/drivers-2021-04-27 2021-04-28 14:39:37 -07:00
multipath.c nvmet: use new ana_log_size instead the old one 2021-05-13 16:33:32 +02:00
nvme.h nvme-multipath: fix double initialization of ANA state 2021-05-11 18:30:45 +02:00
pci.c nvme-pci: fix controller reset hang when racing with nvme_timeout 2021-05-04 09:35:50 +02:00
rdma.c nvme: move the fabrics queue ready check routines to core 2021-05-04 09:35:49 +02:00
tcp-offload.c nvme-tcp-offload: Add IO level implementation 2021-06-03 14:11:21 -07:00
tcp-offload.h nvme-tcp-offload: Add IO level implementation 2021-06-03 14:11:21 -07:00
tcp.c nvme-tcp: rerun io_work if req_list is not empty 2021-05-19 08:33:42 +02:00
trace.c nvme: add tracing of zns commands 2021-02-02 10:26:12 +01:00
trace.h nvme-trace: print result and status in hex format 2019-06-21 11:12:37 +02:00
zns.c nvme: let namespace probing continue for unsupported features 2021-04-15 08:12:56 +02:00