Linux-NVME Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv4 0/5] nvme-fc: FPIN link integrity handling
@ 2025-05-06 15:35 Hannes Reinecke
  2025-05-06 15:35 ` [PATCH 1/5] fc_els: use 'union fc_tlv_desc' Hannes Reinecke
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Hannes Reinecke @ 2025-05-06 15:35 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Keith Busch, Sagi Grimberg, linux-nvme, Hannes Reinecke

FPIN LI (link integrity) messages are received when the attached
fabric detects hardware errors. In response to these messages I/O
should be directed away from the affected ports, and only used
if the 'optimized' paths are unavailable.
Upon port reset the paths should be put back in service as the
affected hardware might have been replaced.
This patch adds a new controller flag 'NVME_CTRL_MARGINAL'
which will be checked during multipath path selection, causing the
path to be skipped when checking for 'optimized' paths. If no
optimized paths are available the 'marginal' paths are considered
for path selection alongside the 'non-optimized' paths.
It also introduces a new nvme-fc callback 'nvme_fc_fpin_rcv()' to
evaluate the FPIN LI TLV payload and set the 'marginal' state on
all affected rports.

Changes to the original submission:
- Changed flag name to 'marginal'
- Do not block marginal path; influence path selection instead
  to de-prioritize marginal paths

Changes to v2:
- Split off driver-specific modifications
- Introduce 'union fc_tlv_desc' to avoid casts

Changes to v3:
- Include reviews from Justin Tee
- Split marginal path handling patch

Hannes Reinecke (5):
  fc_els: use 'union fc_tlv_desc'
  nvme-fc: marginal path handling
  nvme-fc: nvme_fc_fpin_rcv() callback
  lpfc: enable FPIN notification for NVMe
  qla2xxx: enable FPIN notification for NVMe

 drivers/nvme/host/core.c         |   1 +
 drivers/nvme/host/fc.c           |  99 +++++++++++++++++++
 drivers/nvme/host/multipath.c    |  17 ++--
 drivers/nvme/host/nvme.h         |   6 ++
 drivers/scsi/lpfc/lpfc_els.c     |  84 ++++++++--------
 drivers/scsi/qla2xxx/qla_isr.c   |   3 +
 drivers/scsi/scsi_transport_fc.c |  27 +++--
 include/linux/nvme-fc-driver.h   |   3 +
 include/uapi/scsi/fc/fc_els.h    | 165 +++++++++++++++++--------------
 9 files changed, 266 insertions(+), 139 deletions(-)

-- 
2.35.3



^ permalink raw reply	[flat|nested] 11+ messages in thread
* Re: [PATCHv4 0/5] nvme-fc: FPIN link integrity handling
@ 2025-07-01  5:21 Muneendra Kumar M
  0 siblings, 0 replies; 11+ messages in thread
From: Muneendra Kumar M @ 2025-07-01  5:21 UTC (permalink / raw)
  To: hare; +Cc: hch, kbusch, sagi, linux-nvme

[-- Attachment #1: Type: text/plain, Size: 3756 bytes --]

Hi Hannes,
Thanks for the patch .
We have tested this patch and this is working as designed.
This functionality is a crucial enhancement for Fibre Channel solutions.
This feature perpetuates the capabilities available in dm for NVMe in
previous releases.
With this patch we have a solution for
https://lore.kernel.org/linux-nvme/20250506153507.83094-1-hare@kernel.org/
#r for both SCSI and NVMe.”

Tested-by: Muneendra Kumar <muneendra.kumar@broadcom.com>


Regards,
Muneendra.



>>From: Hannes Reinecke <hare@kernel.org>
>>To: Christoph Hellwig <hch@lst.de>
>>Cc: Keith Busch <kbusch@kernel.org>, Sagi Grimberg <sagi@grimberg.me>,
>>	linux-nvme@lists.infradead.org, Hannes Reinecke <hare@kernel.org>
>>Subject: [PATCHv4 0/5] nvme-fc: FPIN link integrity handling
>>Date: Tue,  6 May 2025 17:35:02 +0200	[thread overview]
>>Message-ID: <20250506153507.83094-1-hare@kernel.org> (raw)
>>
>>FPIN LI (link integrity) messages are received when the attached
>>fabric detects hardware errors. In response to these messages I/O
>>should be directed away from the affected ports, and only used
>>if the 'optimized' paths are unavailable.
>>Upon port reset the paths should be put back in service as the
>>affected hardware might have been replaced.
>>This patch adds a new controller flag 'NVME_CTRL_MARGINAL'
>>which will be checked during multipath path selection, causing the
>>path to be skipped when checking for 'optimized' paths. If no
>>optimized paths are available the 'marginal' paths are considered
>>for path selection alongside the 'non-optimized' paths.
>>It also introduces a new nvme-fc callback 'nvme_fc_fpin_rcv()' to
>>evaluate the FPIN LI TLV payload and set the 'marginal' state on
>>all affected rports.
>>
>>Changes to the original submission:
>>- Changed flag name to 'marginal'
>>- Do not block marginal path; influence path selection instead
>>  to de-prioritize marginal paths
>>
>>Changes to v2:
>>- Split off driver-specific modifications
>>- Introduce 'union fc_tlv_desc' to avoid casts
>>
>>Changes to v3:
>>- Include reviews from Justin Tee
>>- Split marginal path handling patch
>>
>>Hannes Reinecke (5):
>>  fc_els: use 'union fc_tlv_desc'
>>  nvme-fc: marginal path handling
>>  nvme-fc: nvme_fc_fpin_rcv() callback
>>  lpfc: enable FPIN notification for NVMe
>>  qla2xxx: enable FPIN notification for NVMe
>>
>> drivers/nvme/host/core.c         |   1 +
>> drivers/nvme/host/fc.c           |  99 +++++++++++++++++++
>> drivers/nvme/host/multipath.c    |  17 ++--
>> drivers/nvme/host/nvme.h         |   6 ++
>> drivers/scsi/lpfc/lpfc_els.c     |  84 ++++++++--------
>> drivers/scsi/qla2xxx/qla_isr.c   |   3 +
>> drivers/scsi/scsi_transport_fc.c |  27 +++--
>> include/linux/nvme-fc-driver.h   |   3 +
>> include/uapi/scsi/fc/fc_els.h    | 165 +++++++++++++++++--------------
>> 9 files changed, 266 insertions(+), 139 deletions(-)
>>
>>--
>>2.35.3

-- 
This electronic communication and the information and any files transmitted 
with it, or attached to it, are confidential and are intended solely for 
the use of the individual or entity to whom it is addressed and may contain 
information that is confidential, legally privileged, protected by privacy 
laws, or otherwise restricted from disclosure to anyone else. If you are 
not the intended recipient or the person responsible for delivering the 
e-mail to the intended recipient, you are hereby notified that any use, 
copying, distributing, dissemination, forwarding, printing, or copying of 
this e-mail is strictly prohibited. If you received this e-mail in error, 
please return the e-mail to the sender, delete it from your computer, and 
destroy any printed copy of it.

[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4207 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-07-02  4:38 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-06 15:35 [PATCHv4 0/5] nvme-fc: FPIN link integrity handling Hannes Reinecke
2025-05-06 15:35 ` [PATCH 1/5] fc_els: use 'union fc_tlv_desc' Hannes Reinecke
2025-05-06 21:51   ` Justin Tee
2025-05-06 15:35 ` [PATCH 2/5] nvme-fc: marginal path handling Hannes Reinecke
2025-05-06 15:35 ` [PATCH 3/5] nvme-fc: nvme_fc_fpin_rcv() callback Hannes Reinecke
2025-05-06 15:35 ` [PATCH 4/5] lpfc: enable FPIN notification for NVMe Hannes Reinecke
2025-05-06 21:50   ` Justin Tee
2025-05-07  5:59     ` Hannes Reinecke
2025-05-07 17:21       ` Justin Tee
2025-05-06 15:35 ` [PATCH 5/5] qla2xxx: " Hannes Reinecke
  -- strict thread matches above, loose matches on Subject: below --
2025-07-01  5:21 [PATCHv4 0/5] nvme-fc: FPIN link integrity handling Muneendra Kumar M

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox