From: Nilay Shroff <nilay@linux.ibm.com>
To: linux-nvme@lists.infradead.org
Cc: kbusch@kernel.org, axboe@kernel.dk, hch@lst.de, sagi@grimberg.me,
hare@suse.de, dwagner@suse.de, wenxiong@linux.ibm.com,
gjoyce@ibm.com, Nilay Shroff <nilay@linux.ibm.com>
Subject: [PATCHv2 7/7] nvme: export controller reconnect event count via sysfs
Date: Thu, 5 Feb 2026 18:18:06 +0530 [thread overview]
Message-ID: <20260205124810.682559-8-nilay@linux.ibm.com> (raw)
In-Reply-To: <20260205124810.682559-1-nilay@linux.ibm.com>
When an NVMe-oF link goes down, the driver attempts to recover the
connection by repeatedly reconnecting to the remote controller at
configured intervals. A maximum number of reconnect attempts is also
configured, after which recovery stops and the controller is removed
if the connection cannot be re-established.
The driver maintains a counter, nr_reconnects, which is incremented on
each reconnect attempt. Currently, this counter is only reported via
kernel log messages and is not exposed to userspace. Since dmesg is a
circular buffer, this information may be lost over time.
Expose the nr_reconnects counter via a new sysfs attribute, reconnect_
events, to provide persistent visibility into the number of reconnect
attempts made by the host. This information can help users diagnose
unstable links or connectivity issues.
This counter can also be consumed by monitoring tools such as nvme-top
to improve controller-level observability.
Signed-off-by: Nilay Shroff <nilay@linux.ibm.com>
---
drivers/nvme/host/sysfs.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/nvme/host/sysfs.c b/drivers/nvme/host/sysfs.c
index 7958fe998139..0b3fdd55ba30 100644
--- a/drivers/nvme/host/sysfs.c
+++ b/drivers/nvme/host/sysfs.c
@@ -667,6 +667,15 @@ static ssize_t reset_events_show(struct device *dev,
}
static DEVICE_ATTR_RO(reset_events);
+static ssize_t reconnect_events_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct nvme_ctrl *ctrl = dev_get_drvdata(dev);
+
+ return sysfs_emit(buf, "%u\n", ctrl->nr_reconnects);
+}
+static DEVICE_ATTR_RO(reconnect_events);
+
#ifdef CONFIG_NVME_HOST_AUTH
static ssize_t nvme_ctrl_dhchap_secret_show(struct device *dev,
struct device_attribute *attr, char *buf)
@@ -815,6 +824,7 @@ static struct attribute *nvme_dev_attrs[] = {
&dev_attr_adm_passthru_err_log_enabled.attr,
&dev_attr_adm_errors.attr,
&dev_attr_reset_events.attr,
+ &dev_attr_reconnect_events.attr,
NULL
};
--
2.52.0
next prev parent reply other threads:[~2026-02-05 12:48 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-05 12:47 [PATCHv2 0/7] nvme: export additional diagnostic counters via sysfs Nilay Shroff
2026-02-05 12:48 ` [PATCHv2 1/7] nvme: export command retry count " Nilay Shroff
2026-02-07 13:28 ` Sagi Grimberg
2026-02-09 11:48 ` Nilay Shroff
2026-02-05 12:48 ` [PATCHv2 2/7] nvme: export multipath failover " Nilay Shroff
2026-02-07 13:30 ` Sagi Grimberg
2026-02-05 12:48 ` [PATCHv2 3/7] nvme: export command error counters " Nilay Shroff
2026-02-05 12:48 ` [PATCHv2 4/7] nvme: export I/O requeue count when no path is available " Nilay Shroff
2026-02-07 13:33 ` Sagi Grimberg
2026-02-09 11:53 ` Nilay Shroff
2026-02-05 12:48 ` [PATCHv2 5/7] nvme: export I/O failure " Nilay Shroff
2026-02-05 12:48 ` [PATCHv2 6/7] nvme: export controller reset event count " Nilay Shroff
2026-02-05 12:48 ` Nilay Shroff [this message]
2026-02-07 13:37 ` [PATCHv2 7/7] nvme: export controller reconnect " Sagi Grimberg
2026-02-09 12:00 ` Nilay Shroff
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=20260205124810.682559-8-nilay@linux.ibm.com \
--to=nilay@linux.ibm.com \
--cc=axboe@kernel.dk \
--cc=dwagner@suse.de \
--cc=gjoyce@ibm.com \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=sagi@grimberg.me \
--cc=wenxiong@linux.ibm.com \
/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