From: alison.schofield@intel.com
To: Dan Williams <dan.j.williams@intel.com>,
Ira Weiny <ira.weiny@intel.com>,
Vishal Verma <vishal.l.verma@intel.com>,
Dave Jiang <dave.jiang@intel.com>,
Ben Widawsky <bwidawsk@kernel.org>
Cc: Alison Schofield <alison.schofield@intel.com>,
nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org
Subject: [RFC 3/3] cxl/list: add --media-errors option to cxl list
Date: Thu, 13 Oct 2022 16:39:03 -0700 [thread overview]
Message-ID: <37ff292e374be8e34f6d3e7e0ade0a1b84efba89.1665699750.git.alison.schofield@intel.com> (raw)
In-Reply-To: <cover.1665699750.git.alison.schofield@intel.com>
From: Alison Schofield <alison.schofield@intel.com>
The --media-errors option to 'cxl list' retrieves poison lists
from memory devices (supporting the capability) and displays
the returned media-error records in the cxl list json output.
This option applies to memdevs or regions.
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
---
Documentation/cxl/cxl-list.txt | 66 ++++++++++++++++++++++++++++++++++
cxl/filter.c | 2 ++
cxl/filter.h | 1 +
cxl/list.c | 2 ++
4 files changed, 71 insertions(+)
diff --git a/Documentation/cxl/cxl-list.txt b/Documentation/cxl/cxl-list.txt
index 14a2b4bb5c2a..8cdbe11cc2e4 100644
--- a/Documentation/cxl/cxl-list.txt
+++ b/Documentation/cxl/cxl-list.txt
@@ -344,6 +344,72 @@ OPTIONS
--region::
Specify CXL region device name(s), or device id(s), to filter the listing.
+-a::
+--media-errors::
+ Include media-error information. The poison list is retrieved
+ from the device(s) and media error records are added to the
+ listing. When the request is by region, memdev names and
+ host physical addresses are added to the record.
+
+----
+# cxl list -m mem11 --media-errors
+[
+ {
+ "memdev":"mem11",
+ "pmem_size":268435456,
+ "ram_size":0,
+ "serial":0,
+ "host":"0000:37:00.0",
+ "media_errors":{
+ "nr media-errors":1,
+ "media-error records":[
+ {
+ "dpa":0,
+ "length":64,
+ "source":"Internal",
+ "flags":"",
+ "overflow_time":0
+ }
+ ]
+ }
+ }
+]
+# cxl list -r region5 --media-errors
+[
+ {
+ "region":"region5",
+ "resource":1035623989248,
+ "size":2147483648,
+ "interleave_ways":2,
+ "interleave_granularity":4096,
+ "decode_state":"commit",
+ "media_errors":{
+ "nr media-errors":2,
+ "media-error records":[
+ {
+ "memdev":"mem2",
+ "hpa":0,
+ "dpa":0,
+ "length":64,
+ "source":"Internal",
+ "flags":"",
+ "overflow_time":0
+ },
+ {
+ "memdev":"mem5",
+ "hpa":0,
+ "dpa":1792,
+ "length":512,
+ "source":"Vendor",
+ "flags":"",
+ "overflow_time":0
+ }
+ ]
+ }
+ }
+]
+----
+
-v::
--verbose::
Increase verbosity of the output. This can be specified
diff --git a/cxl/filter.c b/cxl/filter.c
index 56c659965891..fe6c29148fb4 100644
--- a/cxl/filter.c
+++ b/cxl/filter.c
@@ -686,6 +686,8 @@ static unsigned long params_to_flags(struct cxl_filter_params *param)
flags |= UTIL_JSON_TARGETS;
if (param->partition)
flags |= UTIL_JSON_PARTITION;
+ if (param->media_errors)
+ flags |= UTIL_JSON_MEDIA_ERRORS;
return flags;
}
diff --git a/cxl/filter.h b/cxl/filter.h
index 256df49c3d0c..a92295fe2511 100644
--- a/cxl/filter.h
+++ b/cxl/filter.h
@@ -26,6 +26,7 @@ struct cxl_filter_params {
bool human;
bool health;
bool partition;
+ bool media_errors;
int verbose;
struct log_ctx ctx;
};
diff --git a/cxl/list.c b/cxl/list.c
index 8c48fbbaaec3..df2ae5a3fec0 100644
--- a/cxl/list.c
+++ b/cxl/list.c
@@ -52,6 +52,8 @@ static const struct option options[] = {
"include memory device health information"),
OPT_BOOLEAN('I', "partition", ¶m.partition,
"include memory device partition information"),
+ OPT_BOOLEAN('a', "media-errors", ¶m.media_errors,
+ "include media error information "),
OPT_INCR('v', "verbose", ¶m.verbose,
"increase output detail"),
#ifdef ENABLE_DEBUG
--
2.37.3
prev parent reply other threads:[~2022-10-13 23:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-13 23:39 [ndctl RFC 0/3] Support poison list retrieval alison.schofield
2022-10-13 23:39 ` [RFC 1/3] libcxl: add interfaces for GET_POISON_LIST mailbox commands alison.schofield
2022-10-13 23:39 ` [RFC 2/3] cxl/list: collect and parse the poison list records alison.schofield
2022-10-13 23:39 ` alison.schofield [this message]
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=37ff292e374be8e34f6d3e7e0ade0a1b84efba89.1665699750.git.alison.schofield@intel.com \
--to=alison.schofield@intel.com \
--cc=bwidawsk@kernel.org \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=ira.weiny@intel.com \
--cc=linux-cxl@vger.kernel.org \
--cc=nvdimm@lists.linux.dev \
--cc=vishal.l.verma@intel.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