anitazha / rpms / ndctl

Forked from rpms/ndctl a year ago
Clone

Blame 0017-daxctl-emit-counts-of-total-and-online-memblocks.patch

Jeff Moyer 2c91dc
From e81f890c7ae1c940c7f52b8984e8728706489728 Mon Sep 17 00:00:00 2001
Jeff Moyer 2c91dc
From: Vishal Verma <vishal.l.verma@intel.com>
Jeff Moyer 2c91dc
Date: Wed, 31 Mar 2021 13:51:35 -0600
Jeff Moyer 2c91dc
Subject: [PATCH 017/217] daxctl: emit counts of total and online memblocks
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
Fir daxctl device listings, if in 'system-ram' mode, it is useful to
Jeff Moyer 2c91dc
know whether the memory associated with the device is online or not.
Jeff Moyer 2c91dc
Since the memory is comprised of a number of 'memblocks', and it is
Jeff Moyer 2c91dc
possible (albeit rare) to have a subset of them online, and the rest
Jeff Moyer 2c91dc
offline, we can't just use a boolean online-or-offline flag for the
Jeff Moyer 2c91dc
state.
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
Add a couple of counts, one for the total number of memblocks associated
Jeff Moyer 2c91dc
with the device, and another for the ones that are online.
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
Link: https://github.com/pmem/ndctl/issues/139
Jeff Moyer 2c91dc
Cc: Dan Williams <dan.j.williams@intel.com>
Jeff Moyer 2c91dc
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Jeff Moyer 2c91dc
Reported-by: Steve Scargall <steve.scargall@intel.com>
Jeff Moyer 2c91dc
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
Jeff Moyer 2c91dc
---
Jeff Moyer 2c91dc
 util/json.c | 11 +++++++++++
Jeff Moyer 2c91dc
 1 file changed, 11 insertions(+)
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
diff --git a/util/json.c b/util/json.c
Jeff Moyer 2c91dc
index ca0167b..a8d2412 100644
Jeff Moyer 2c91dc
--- a/util/json.c
Jeff Moyer 2c91dc
+++ b/util/json.c
Jeff Moyer 2c91dc
@@ -482,6 +482,17 @@ struct json_object *util_daxctl_dev_to_json(struct daxctl_dev *dev,
Jeff Moyer 2c91dc
 		json_object_object_add(jdev, "mode", jobj);
Jeff Moyer 2c91dc
 
Jeff Moyer 2c91dc
 	if (mem && daxctl_dev_get_resource(dev) != 0) {
Jeff Moyer 2c91dc
+		int num_sections = daxctl_memory_num_sections(mem);
Jeff Moyer 2c91dc
+		int num_online = daxctl_memory_is_online(mem);
Jeff Moyer 2c91dc
+
Jeff Moyer 2c91dc
+		jobj = json_object_new_int(num_online);
Jeff Moyer 2c91dc
+		if (jobj)
Jeff Moyer 2c91dc
+			json_object_object_add(jdev, "online_memblocks", jobj);
Jeff Moyer 2c91dc
+
Jeff Moyer 2c91dc
+		jobj = json_object_new_int(num_sections);
Jeff Moyer 2c91dc
+		if (jobj)
Jeff Moyer 2c91dc
+			json_object_object_add(jdev, "total_memblocks", jobj);
Jeff Moyer 2c91dc
+
Jeff Moyer 2c91dc
 		movable = daxctl_memory_is_movable(mem);
Jeff Moyer 2c91dc
 		if (movable == 1)
Jeff Moyer 2c91dc
 			jobj = json_object_new_boolean(true);
Jeff Moyer 2c91dc
-- 
Jeff Moyer 2c91dc
2.27.0
Jeff Moyer 2c91dc