Re: [RFC PATCH v4 08/27] nvme-tcp-offload: Add nvme-tcp-offload - NVMeTCP HW offload ULP
From: Shai Malin <hidden>
Date: 2021-05-03 15:46:52
Also in:
linux-nvme
On 5/1/21 3:18 PM, Hannes Reinecke wrote:
On 4/29/21 9:09 PM, Shai Malin wrote:quoted
This patch will present the structure for the NVMeTCP offload common layer driver. This module is added under "drivers/nvme/host/" and future offload drivers which will register to it will be placed under "drivers/nvme/hw". This new driver will be enabled by the Kconfig "NVM Express over Fabrics TCP offload commmon layer". In order to support the new transport type, for host mode, no change is needed. Each new vendor-specific offload driver will register to this ULP during its probe function, by filling out the nvme_tcp_ofld_dev->ops and nvme_tcp_ofld_dev->private_data and calling nvme_tcp_ofld_register_dev with the initialized struct. The internal implementation: - tcp-offload.h: Includes all common structs and ops to be used and shared by offload drivers. - tcp-offload.c: Includes the init function which registers as a NVMf transport just like any other transport. Acked-by: Igor Russkikh <redacted> Signed-off-by: Dean Balandin <redacted> Signed-off-by: Prabhakar Kushwaha <redacted> Signed-off-by: Omkar Kulkarni <redacted> Signed-off-by: Michal Kalderon <mkalderon@marvell.com> Signed-off-by: Ariel Elior <redacted> Signed-off-by: Shai Malin <redacted> --- drivers/nvme/host/Kconfig | 16 +++ drivers/nvme/host/Makefile | 3 + drivers/nvme/host/tcp-offload.c | 126 +++++++++++++++++++ drivers/nvme/host/tcp-offload.h | 206 ++++++++++++++++++++++++++++++++ 4 files changed, 351 insertions(+) create mode 100644 drivers/nvme/host/tcp-offload.c create mode 100644 drivers/nvme/host/tcp-offload.hIt will be tricky to select the correct transport eg when traversing the discovery log page; the discovery log page only knows about 'tcp' (not 'tcp_offload'), so the offload won't be picked up. But that can we worked on / fixed later on, as it's arguably a policy decision.
I agree that we should improve the policy decision and allow additional capabilities and it may be discussed as a new NVMe TPAR.
Reviewed-by: Hannes Reinecke <hare@suse.de>
Thanks.
Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@suse.de +49 911 74053 688 SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer