From: Alison Schofield <alison.schofield@intel.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: vishal.l.verma@intel.com, linux-cxl@vger.kernel.org,
nvdimm@lists.linux.dev
Subject: Re: [ndctl PATCH 06/15] cxl/list: Skip emitting pmem_size when it is zero
Date: Mon, 7 Nov 2022 12:23:39 -0800 [thread overview]
Message-ID: <Y2lpS3COS9YdJnon@aschofie-mobl2> (raw)
In-Reply-To: <166777844020.1238089.5777920571190091563.stgit@dwillia2-xfh.jf.intel.com>
On Sun, Nov 06, 2022 at 03:47:20PM -0800, Dan Williams wrote:
> The typical case is that CXL devices are pure ram devices. Only emit
> capacity sizes when they are non-zero to avoid confusion around whether
> pmem is available via partitioning or not.
>
> Do the same for ram_size on the odd case that someone builds a pure pmem
> device.
Maybe a few more words around what confusion this seeks to avoid.
The confusion being that a user may assign more meaning to the zero
size value than it actually deserves. A zero value for either
pmem or ram, doesn't indicate the devices capability for either mode.
Use the -I option to cxl list to include paritition info in the
memdev listing. That will explicitly show the ram and pmem capabilities
of the device.
>
> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
> ---
> cxl/json.c | 20 +++++++++++++-------
> 1 file changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/cxl/json.c b/cxl/json.c
> index 63c17519aba1..1b1669ab021d 100644
> --- a/cxl/json.c
> +++ b/cxl/json.c
> @@ -305,7 +305,7 @@ struct json_object *util_cxl_memdev_to_json(struct cxl_memdev *memdev,
> {
> const char *devname = cxl_memdev_get_devname(memdev);
> struct json_object *jdev, *jobj;
> - unsigned long long serial;
> + unsigned long long serial, size;
> int numa_node;
>
> jdev = json_object_new_object();
> @@ -316,13 +316,19 @@ struct json_object *util_cxl_memdev_to_json(struct cxl_memdev *memdev,
> if (jobj)
> json_object_object_add(jdev, "memdev", jobj);
>
> - jobj = util_json_object_size(cxl_memdev_get_pmem_size(memdev), flags);
> - if (jobj)
> - json_object_object_add(jdev, "pmem_size", jobj);
> + size = cxl_memdev_get_pmem_size(memdev);
> + if (size) {
> + jobj = util_json_object_size(size, flags);
> + if (jobj)
> + json_object_object_add(jdev, "pmem_size", jobj);
> + }
>
> - jobj = util_json_object_size(cxl_memdev_get_ram_size(memdev), flags);
> - if (jobj)
> - json_object_object_add(jdev, "ram_size", jobj);
> + size = cxl_memdev_get_ram_size(memdev);
> + if (size) {
> + jobj = util_json_object_size(size, flags);
> + if (jobj)
> + json_object_object_add(jdev, "ram_size", jobj);
> + }
>
> if (flags & UTIL_JSON_HEALTH) {
> jobj = util_cxl_memdev_health_to_json(memdev, flags);
>
next prev parent reply other threads:[~2022-11-07 20:23 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-06 23:46 [ndctl PATCH 00/15] cxl-cli test and usability updates Dan Williams
2022-11-06 23:46 ` [ndctl PATCH 01/15] ndctl/test: Move firmware-update.sh to the 'descructive' set Dan Williams
2022-11-06 23:46 ` [ndctl PATCH 02/15] ndctl/test: Add kernel backtrace detection to some dax tests Dan Williams
2022-11-07 22:55 ` Alison Schofield
2022-11-06 23:47 ` [ndctl PATCH 03/15] ndctl/clang-format: Move minimum version to 6 Dan Williams
2022-11-06 23:47 ` [ndctl PATCH 04/15] ndctl/clang-format: Fix space after for_each macros Dan Williams
2022-11-06 23:47 ` [ndctl PATCH 05/15] cxl/list: Always attempt to collect child objects Dan Williams
2022-11-06 23:47 ` [ndctl PATCH 06/15] cxl/list: Skip emitting pmem_size when it is zero Dan Williams
2022-11-07 20:23 ` Alison Schofield [this message]
2022-11-07 23:42 ` Dan Williams
2022-12-08 3:36 ` Dan Williams
2022-11-07 22:47 ` Alison Schofield
2022-11-07 23:51 ` Dan Williams
2022-12-08 4:14 ` Dan Williams
2022-11-06 23:47 ` [ndctl PATCH 07/15] cxl/filter: Return json-c topology Dan Williams
2022-11-06 23:47 ` [ndctl PATCH 08/15] cxl/list: Record cxl objects in json objects Dan Williams
2022-11-06 23:47 ` [ndctl PATCH 09/15] cxl/region: Make ways an integer argument Dan Williams
2022-11-07 22:43 ` Alison Schofield
2022-11-07 23:50 ` Dan Williams
2022-11-08 19:36 ` Verma, Vishal L
2022-11-06 23:47 ` [ndctl PATCH 10/15] cxl/region: Make granularity " Dan Williams
2022-11-06 23:47 ` [ndctl PATCH 11/15] cxl/region: Use cxl_filter_walk() to gather create-region targets Dan Williams
2022-11-08 8:31 ` Verma, Vishal L
2022-12-08 20:23 ` Dan Williams
2022-11-06 23:47 ` [ndctl PATCH 12/15] cxl/region: Trim region size by max available extent Dan Williams
2022-11-06 23:48 ` [ndctl PATCH 13/15] cxl/region: Default to memdev mode for create with no arguments Dan Williams
2022-11-07 20:36 ` Alison Schofield
2022-11-07 23:48 ` Dan Williams
2022-11-08 16:03 ` Alison Schofield
2022-12-08 4:09 ` Dan Williams
2022-11-06 23:48 ` [ndctl PATCH 14/15] cxl/test: Extend cxl-topology.sh for a single root-port host-bridge Dan Williams
2022-11-07 22:38 ` Alison Schofield
2022-11-08 20:23 ` Verma, Vishal L
2022-12-08 20:25 ` Dan Williams
2022-11-06 23:48 ` [ndctl PATCH 15/15] cxl/test: Test single-port host-bridge region creation Dan Williams
2022-11-07 22:36 ` Alison Schofield
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=Y2lpS3COS9YdJnon@aschofie-mobl2 \
--to=alison.schofield@intel.com \
--cc=dan.j.williams@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.