[PATCH v5 0/7] scsi: ibmvfc: make ibmvfc support FPIN messages
From: Dave Marquardt via B4 Relay <devnull+davemarq.linux.ibm.com@kernel.org>
Date: 2026-08-06 15:17:40
Also in:
b4-sent, linux-scsi, lkml
This patch series adds FPIN (fabric performance impact notification) support to the ibmvfc (IBM Virtual Fibre Channel) driver. This comes in three flavors: - basic, to recognize existing FPIN messages from the virtual I/O server (VIOS) (patch 1) - full, supporting additional FPIN information and using its own asynchronous sub-queue and interrupt (patches 3-6) - extended, supporting FC-LS-5 (patch 7) Full and extended FPIN support requires a new asynchronous sub-queue with its own interrupt. The asynchronous sub-queue support requires ibmvfc to also support a new IBMVFC_NOOP command, which the driver recognizes and ignores (patch 2) All three modes convert an incoming FPIN message from VIOS to an FC extended link service message, in some cases using default values for information not provided by the VIOS FPIN message but expected in the FC ELS message. This FC ELS message is passed to fc_host_rcv_fpin for updating statistics and sending the information upstream by netlink multicast, where it may be read by listeners including the DM multipath daemon "multipathd." Signed-off-by: Dave Marquardt <redacted> --- Changes in v5: - Incorporate changes for NVME-over-FC. - Removed now redundant fabric login patch. - Link to v4: https://patch.msgid.link/20260710-ibmvfc-fpin-support-v4-0-ef031ac19520@linux.ibm.com Changes in v4: - Refactored channel registration - Check whether async work queue is allocated before using or freeing - Fixed work queue allocation/destruction - Skip basic KUnit test when there are no ibmvfc devices available - Fix target not found condition in ibmvfc_process_async_work - Link to v3: https://patch.msgid.link/20260702-ibmvfc-fpin-support-v3-0-d95b9547cf88@linux.ibm.com Changes in v3: - Fixed latent bug, exposed by VFC_NOOP, related to dataless CRQs and events - Fixed FPIN TLV descriptor length calculations - Use safe list walker to walk targets in ibmvfc_process_async_work - Added write memory barriers after clearing CRQ valid field - Use per-vhost work queue for FPIN work - Link to v2: https://patch.msgid.link/20260608-ibmvfc-fpin-support-v2-0-d41f540fba5c@linux.ibm.com Highlights of changes in v2: - Refactored mostly common FPIN conversion routines and async event processing into single routines with wrappers for differences. - Moved FPIN processing to a work queue to avoid conflicts with fc_host_fpin_rcv and memory allocation - Set descriptor sizes correctly - Use target WWPN for basic FPIN descriptor - Split patch 4 into 3 patches, for definition, allocation, and use of the asynchronous sub-queue for events - Link to v1: https://patch.msgid.link/20260408-ibmvfc-fpin-support-v1-0-52b06c464e03@linux.ibm.com --- Dave Marquardt (7): scsi: ibmvfc: add basic FPIN support scsi: ibmvfc: Add NOOP command support scsi: ibmvfc: define asynchronous sub-queue scsi: ibmvfc: allocate asynchronous sub-queue scsi: ibmvfc: extend async event handlers to handle async sub queue events scsi: ibmvfc: register and use asynchronous sub-queue for events scsi: ibmvfc: handle extended FPIN events drivers/scsi/Kconfig | 10 + drivers/scsi/ibmvscsi/Makefile | 1 + drivers/scsi/ibmvscsi/ibmvfc-core.c | 643 ++++++++++++++++++++++++++++++++--- drivers/scsi/ibmvscsi/ibmvfc.h | 70 ++++ drivers/scsi/ibmvscsi/ibmvfc_kunit.c | 240 +++++++++++++ 5 files changed, 915 insertions(+), 49 deletions(-) --- base-commit: 9c632ff7d7fcec167659cd7060e4491412c747da change-id: 20260407-ibmvfc-fpin-support-b9b575cd2da1 Best regards, -- Dave Marquardt [off-list ref]