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 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 VFC_NOOP command, which the driver recognizes and ignores (patch 2) - fabric login, to login separately to the fabric through messages exchanged with VIOS rather than doing fabric login through the existing NPIV login (patch 3) - defining the asynchronous sub-queue CRQ (patch 4) - allocating the asynchronous sub-queue (patch 5) - register and use the asynchronous sub-queue (patch 6) 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 <[email protected]> --- 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/[email protected] --- Dave Marquardt (7): ibmvfc: add basic FPIN support ibmvfc: Add NOOP command support ibmvfc: make ibmvfc login to fabric ibmvfc: define asynchronous sub-queue ibmvfc: allocate asynchronous sub-queue ibmvfc: register and use asynchronous sub-queue ibmvfc: handle extended FPIN events drivers/scsi/Kconfig | 10 + drivers/scsi/ibmvscsi/Makefile | 1 + drivers/scsi/ibmvscsi/ibmvfc.c | 702 ++++++++++++++++++++++++++++++++--- drivers/scsi/ibmvscsi/ibmvfc.h | 94 ++++- drivers/scsi/ibmvscsi/ibmvfc_kunit.c | 243 ++++++++++++ 5 files changed, 992 insertions(+), 58 deletions(-) --- base-commit: 0600eec09ad6cc5ba3ca78aceb6fa8dcbad010bb change-id: 20260407-ibmvfc-fpin-support-b9b575cd2da1 Best regards, -- Dave Marquardt <[email protected]>
