For dax devices in 'system-ram' mode, display a 'movable' attribute in
device listings. This helps a user easily determine if memory was not
onlined in the expected way for any reason.

Link: https://github.com/pmem/ndctl/issues/110
Reported-by: Ben Olson <[email protected]>
Cc: Dan Williams <[email protected]>
Signed-off-by: Vishal Verma <[email protected]>
---
 util/json.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/util/json.c b/util/json.c
index 5e6a32a..497c52b 100644
--- a/util/json.c
+++ b/util/json.c
@@ -278,7 +278,7 @@ struct json_object *util_daxctl_dev_to_json(struct 
daxctl_dev *dev,
        struct daxctl_memory *mem = daxctl_dev_get_memory(dev);
        const char *devname = daxctl_dev_get_devname(dev);
        struct json_object *jdev, *jobj;
-       int node;
+       int node, movable;
 
        jdev = json_object_new_object();
        if (!devname || !jdev)
@@ -306,6 +306,18 @@ struct json_object *util_daxctl_dev_to_json(struct 
daxctl_dev *dev,
        if (jobj)
                json_object_object_add(jdev, "mode", jobj);
 
+       if (mem) {
+               movable = daxctl_memory_is_movable(mem);
+               if (movable == 1)
+                       jobj = json_object_new_boolean(true);
+               else if (movable == 0)
+                       jobj = json_object_new_boolean(false);
+               else
+                       jobj = NULL;
+               if (jobj)
+                       json_object_object_add(jdev, "movable", jobj);
+       }
+
        if (!daxctl_dev_is_enabled(dev)) {
                jobj = json_object_new_string("disabled");
                if (jobj)
-- 
2.20.1
_______________________________________________
Linux-nvdimm mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to