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: [PATCH 6/7] nvme: export controller reset event count via sysfs
Date: Fri, 30 Jan 2026 23:50:23 +0530 [thread overview]
Message-ID: <20260130182028.885089-7-nilay@linux.ibm.com> (raw)
In-Reply-To: <20260130182028.885089-1-nilay@linux.ibm.com>
The NVMe controller transitions into the RESETTING state during error
recovery, link instability, firmware activation, or when a reset is
explicitly triggered by the user.
Expose a controller reset event count via sysfs to provide visibility
into these RESETTING state transitions. Observing the frequency of reset
events can help users identify issues such as PCIe errors or unstable
fabric links.
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/core.c | 1 +
drivers/nvme/host/nvme.h | 1 +
drivers/nvme/host/sysfs.c | 10 ++++++++++
3 files changed, 12 insertions(+)
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index d16a3f4cc466..bb74834c4ed8 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -597,6 +597,7 @@ bool nvme_change_ctrl_state(struct nvme_ctrl *ctrl,
case NVME_CTRL_NEW:
case NVME_CTRL_LIVE:
changed = true;
+ ctrl->nr_reset++;
fallthrough;
default:
break;
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
index 66bd4db1fe0f..d76e42fee01f 100644
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -361,6 +361,7 @@ struct nvme_ctrl {
unsigned long events;
u64 retries;
u64 errors;
+ u32 nr_reset;
#ifdef CONFIG_NVME_MULTIPATH
/* asymmetric namespace access: */
u8 anacap;
diff --git a/drivers/nvme/host/sysfs.c b/drivers/nvme/host/sysfs.c
index c23d9a0ba3f4..e1ef44e69768 100644
--- a/drivers/nvme/host/sysfs.c
+++ b/drivers/nvme/host/sysfs.c
@@ -669,6 +669,15 @@ static ssize_t nvme_adm_errors_show(struct device *dev,
struct device_attribute dev_attr_adm_errors =
__ATTR(command_error_count, 0444, nvme_adm_errors_show, NULL);
+static ssize_t reset_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_reset);
+}
+static DEVICE_ATTR_RO(reset_events);
+
#ifdef CONFIG_NVME_HOST_AUTH
static ssize_t nvme_ctrl_dhchap_secret_show(struct device *dev,
struct device_attribute *attr, char *buf)
@@ -817,6 +826,7 @@ static struct attribute *nvme_dev_attrs[] = {
&dev_attr_adm_passthru_err_log_enabled.attr,
&dev_attr_adm_command_retries.attr,
&dev_attr_adm_errors.attr,
+ &dev_attr_reset_events.attr,
NULL
};
--
2.52.0
next prev parent reply other threads:[~2026-01-30 18:21 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-30 18:20 [PATCH 0/7] nvme: export additional diagnostic counters via sysfs Nilay Shroff
2026-01-30 18:20 ` [PATCH 1/7] nvme: export command retry count " Nilay Shroff
2026-01-30 20:33 ` Keith Busch
2026-02-02 13:33 ` Nilay Shroff
2026-01-30 18:20 ` [PATCH 2/7] nvme: export multipath failover " Nilay Shroff
2026-01-30 18:20 ` [PATCH 3/7] nvme: export command error counters " Nilay Shroff
2026-01-30 18:20 ` [PATCH 4/7] nvme: export I/O requeue count when no path is available " Nilay Shroff
2026-01-30 18:20 ` [PATCH 5/7] nvme: export I/O failure " Nilay Shroff
2026-01-30 18:20 ` Nilay Shroff [this message]
2026-01-30 18:20 ` [PATCH 7/7] nvme: export controller reconnect event count " Nilay Shroff
2026-02-02 22:56 ` [PATCH 0/7] nvme: export additional diagnostic counters " Hannes Reinecke
2026-02-03 9:07 ` Nilay Shroff
2026-02-03 12:26 ` Ming Lei
2026-02-03 13:03 ` 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=20260130182028.885089-7-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