From: John Meneghini <jmeneghi@redhat.com>
To: Muneendra Kumar M <muneendra.kumar@broadcom.com>,
Hannes Reinecke <hare@suse.de>
Cc: Bryan Gurney <bgurney@redhat.com>,
linux-nvme@lists.infradead.org, kbusch@kernel.org, hch@lst.de,
sagi@grimberg.me, axboe@kernel.dk, james.smart@broadcom.com,
dick.kennedy@broadcom.com, linux-scsi@vger.kernel.org,
njavali@marvell.com, muneendra737@gmail.com,
Howard Johnson <howard.johnson@broadcom.com>
Subject: Re: [PATCH v7 0/6] nvme-fc: FPIN link integrity handling
Date: Fri, 11 Jul 2025 12:49:22 -0400 [thread overview]
Message-ID: <06f27533-ea9b-4ee1-96ed-12ddda271a76@redhat.com> (raw)
In-Reply-To: <CAJtR8wVupqRK3t0+7shrNCTZ9qZC7gHAR2X8Ov0AR-RJamxcWg@mail.gmail.com>
Adding Howard Johnson.
On 7/11/25 4:54 AM, Muneendra Kumar M wrote:
> >>But that's precisely it, isn't it?
> >>If it's a straight error the path/controller is being reset, and
> >>really there's nothing for us to be done.
> >>If it's an FPIN LI _without_ any performance impact, why shouldn't
> >>we continue to use that path? Would there be any impact if we do?
> >>And if it's an FPIN LI with _any_ sort of performance impact
> >>(or a performance impact which might happen eventually) the
> >>current approach of steering away I/O should be fine.
> [Muneendra]
>
> With FPIN/LinkIntegrity (LI) - there is still connectivity, but the FPIN is identifying the link to the target (could be multiple remoteports if the target is doing NPIV) that had some error. It is *not* indicating that I/O won't complete. True, some I/O may not due to the error that affected it. And it is true, but not likely that all i/o hits the same problem. What we have seen with flaky links is most I/O does complete, but a few I/Os don't.
> It's actually a rather funky condition, kind of sick but not dead scenario.
> As FPIN-Li indicates that the path is "flaky" and using this path further will have a performance impact.
> And the current approach of steering away I/O is fine for FPIN-Li.
OK, then can we all agree that the current patch series, including the patch for the queue-depth handler, does the correct thing for FPIN LI?
Right now this patch series will "disable" a controller and remove it from being actively used by the multipath scheduler once that controller/path receives an FPIN LI event.
This is true for all three multi-path schedulers: round-robin, queue-depth and numa. Once a controller/path has received an LI event is reports a state of "marginal" in the
controller state field (e.g.: /sys/devices/virtual/nvme-subsystem/nvme-subsys6/nvme4/state). While in the marginal state the controller can still be used, it's only the path
selection policy that avoids it in the nvme multipath scheduling code.
These patches also prefer non-marginal paths over marginal paths and optimized paths over non-optimized paths. If all optimized paths are marginal, then the
non-optimized paths are used. If all paths are marginal then the first available marginal optimized path is used, else the first available non-optimized path is used.
To clear the marginal state a controller must be disconnected, allowing the /dev to be removed, and then reconnected. (We might want to change this, but that can be discussed in a future patch)
Bryan and I have tested these patches with all of the above configurations conditions and, at this point, they are working as described above while using an LPFC adapter.
You can see the test plan Bryan and I used is at https://bugzilla.kernel.org/show_bug.cgi?id=220329#c1
We observed a problem while testing this with a QLA adapter.
So I am hoping one more update to this patch series, to fix the QLA problem, will complete this work.
/John
next prev parent reply other threads:[~2025-07-11 17:38 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-24 20:20 [PATCH v7 0/6] nvme-fc: FPIN link integrity handling Bryan Gurney
2025-06-24 20:20 ` [PATCH v7 1/6] fc_els: use 'union fc_tlv_desc' Bryan Gurney
2025-06-24 20:20 ` [PATCH v7 2/6] nvme-fc: marginal path handling Bryan Gurney
2025-07-03 11:47 ` Christoph Hellwig
2025-06-24 20:20 ` [PATCH v7 3/6] nvme-fc: nvme_fc_fpin_rcv() callback Bryan Gurney
2025-06-24 20:20 ` [PATCH v7 4/6] lpfc: enable FPIN notification for NVMe Bryan Gurney
2025-06-24 20:20 ` [PATCH v7 5/6] qla2xxx: " Bryan Gurney
2025-06-24 20:20 ` [PATCH v7 6/6] nvme: sysfs: emit the marginal path state in show_state() Bryan Gurney
2025-07-01 0:27 ` [PATCHv7 0/6] nvme-fc: FPIN link integrity handling Muneendra Kumar
2025-07-01 20:32 ` [PATCH v7 " Bryan Gurney
2025-07-02 6:10 ` Hannes Reinecke
2025-07-08 19:56 ` John Meneghini
2025-07-09 6:21 ` Hannes Reinecke
2025-07-09 13:42 ` Bryan Gurney
2025-07-09 17:44 ` Hannes Reinecke
[not found] ` <CAJtR8wVupqRK3t0+7shrNCTZ9qZC7gHAR2X8Ov0AR-RJamxcWg@mail.gmail.com>
2025-07-11 16:49 ` John Meneghini [this message]
2025-07-11 2:59 ` [PATCH v8 8/8] nvme-multipath: queue-depth support for marginal paths Muneendra Kumar
2025-07-11 14:53 ` John Meneghini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=06f27533-ea9b-4ee1-96ed-12ddda271a76@redhat.com \
--to=jmeneghi@redhat.com \
--cc=axboe@kernel.dk \
--cc=bgurney@redhat.com \
--cc=dick.kennedy@broadcom.com \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=howard.johnson@broadcom.com \
--cc=james.smart@broadcom.com \
--cc=kbusch@kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=linux-scsi@vger.kernel.org \
--cc=muneendra.kumar@broadcom.com \
--cc=muneendra737@gmail.com \
--cc=njavali@marvell.com \
--cc=sagi@grimberg.me \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).