anitazha / rpms / ndctl

Forked from rpms/ndctl 2 years ago
Clone
Jeff Moyer 2c91dc
From 2ceddb91d3a0d70a59242b3a9dab401be6e5c825 Mon Sep 17 00:00:00 2001
Jeff Moyer 2c91dc
From: Dan Williams <dan.j.williams@intel.com>
Jeff Moyer 2c91dc
Date: Fri, 5 Aug 2022 13:38:20 -0700
Jeff Moyer 2c91dc
Subject: [PATCH 205/217] cxl/list: Add 'depth' to port listings
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
Simplify the task of determining how deep a port is in the hierarchy by
Jeff Moyer 2c91dc
just emitting what libcxl already counted. This is useful for validating
Jeff Moyer 2c91dc
interleave math.
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
Link: https://lore.kernel.org/r/165973190022.1528532.6351628365510289908.stgit@dwillia2-xfh.jf.intel.com
Jeff Moyer 2c91dc
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Jeff Moyer 2c91dc
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
Jeff Moyer 2c91dc
---
Jeff Moyer 2c91dc
 Documentation/cxl/lib/libcxl.txt | 1 +
Jeff Moyer 2c91dc
 cxl/json.c                       | 4 ++++
Jeff Moyer 2c91dc
 cxl/lib/libcxl.c                 | 5 +++++
Jeff Moyer 2c91dc
 cxl/lib/libcxl.sym               | 1 +
Jeff Moyer 2c91dc
 cxl/libcxl.h                     | 1 +
Jeff Moyer 2c91dc
 5 files changed, 12 insertions(+)
Jeff Moyer 2c91dc
Jeff Moyer 2c91dc
diff --git a/Documentation/cxl/lib/libcxl.txt b/Documentation/cxl/lib/libcxl.txt
Jeff Moyer 2c91dc
index 6756d2f..fd2962a 100644
Jeff Moyer 2c91dc
--- a/Documentation/cxl/lib/libcxl.txt
Jeff Moyer 2c91dc
+++ b/Documentation/cxl/lib/libcxl.txt
Jeff Moyer 2c91dc
@@ -290,6 +290,7 @@ int cxl_port_is_enabled(struct cxl_port *port);
Jeff Moyer 2c91dc
 bool cxl_port_is_root(struct cxl_port *port);
Jeff Moyer 2c91dc
 bool cxl_port_is_switch(struct cxl_port *port);
Jeff Moyer 2c91dc
 bool cxl_port_is_endpoint(struct cxl_port *port);
Jeff Moyer 2c91dc
+int cxl_port_get_depth(struct cxl_port *port);
Jeff Moyer 2c91dc
 bool cxl_port_hosts_memdev(struct cxl_port *port, struct cxl_memdev *memdev);
Jeff Moyer 2c91dc
 int cxl_port_get_nr_dports(struct cxl_port *port);
Jeff Moyer 2c91dc
 ----
Jeff Moyer 2c91dc
diff --git a/cxl/json.c b/cxl/json.c
Jeff Moyer 2c91dc
index c3d9299..63c1751 100644
Jeff Moyer 2c91dc
--- a/cxl/json.c
Jeff Moyer 2c91dc
+++ b/cxl/json.c
Jeff Moyer 2c91dc
@@ -769,6 +769,10 @@ static struct json_object *__util_cxl_port_to_json(struct cxl_port *port,
Jeff Moyer 2c91dc
 	if (jobj)
Jeff Moyer 2c91dc
 		json_object_object_add(jport, "host", jobj);
Jeff Moyer 2c91dc
 
Jeff Moyer 2c91dc
+	jobj = json_object_new_int(cxl_port_get_depth(port));
Jeff Moyer 2c91dc
+	if (jobj)
Jeff Moyer 2c91dc
+		json_object_object_add(jport, "depth", jobj);
Jeff Moyer 2c91dc
+
Jeff Moyer 2c91dc
 	if (!cxl_port_is_enabled(port)) {
Jeff Moyer 2c91dc
 		jobj = json_object_new_string("disabled");
Jeff Moyer 2c91dc
 		if (jobj)
Jeff Moyer 2c91dc
diff --git a/cxl/lib/libcxl.c b/cxl/lib/libcxl.c
Jeff Moyer 2c91dc
index ff85b23..021d59f 100644
Jeff Moyer 2c91dc
--- a/cxl/lib/libcxl.c
Jeff Moyer 2c91dc
+++ b/cxl/lib/libcxl.c
Jeff Moyer 2c91dc
@@ -2417,6 +2417,11 @@ CXL_EXPORT bool cxl_port_is_endpoint(struct cxl_port *port)
Jeff Moyer 2c91dc
 	return port->type == CXL_PORT_ENDPOINT;
Jeff Moyer 2c91dc
 }
Jeff Moyer 2c91dc
 
Jeff Moyer 2c91dc
+CXL_EXPORT int cxl_port_get_depth(struct cxl_port *port)
Jeff Moyer 2c91dc
+{
Jeff Moyer 2c91dc
+	return port->depth;
Jeff Moyer 2c91dc
+}
Jeff Moyer 2c91dc
+
Jeff Moyer 2c91dc
 CXL_EXPORT struct cxl_bus *cxl_port_get_bus(struct cxl_port *port)
Jeff Moyer 2c91dc
 {
Jeff Moyer 2c91dc
 	struct cxl_bus *bus;
Jeff Moyer 2c91dc
diff --git a/cxl/lib/libcxl.sym b/cxl/lib/libcxl.sym
Jeff Moyer 2c91dc
index 385a8f0..8bb91e0 100644
Jeff Moyer 2c91dc
--- a/cxl/lib/libcxl.sym
Jeff Moyer 2c91dc
+++ b/cxl/lib/libcxl.sym
Jeff Moyer 2c91dc
@@ -96,6 +96,7 @@ global:
Jeff Moyer 2c91dc
 	cxl_port_get_parent;
Jeff Moyer 2c91dc
 	cxl_port_is_root;
Jeff Moyer 2c91dc
 	cxl_port_is_switch;
Jeff Moyer 2c91dc
+	cxl_port_get_depth;
Jeff Moyer 2c91dc
 	cxl_port_to_bus;
Jeff Moyer 2c91dc
 	cxl_port_is_endpoint;
Jeff Moyer 2c91dc
 	cxl_port_to_endpoint;
Jeff Moyer 2c91dc
diff --git a/cxl/libcxl.h b/cxl/libcxl.h
Jeff Moyer 2c91dc
index 2498fa1..9fe4e99 100644
Jeff Moyer 2c91dc
--- a/cxl/libcxl.h
Jeff Moyer 2c91dc
+++ b/cxl/libcxl.h
Jeff Moyer 2c91dc
@@ -90,6 +90,7 @@ int cxl_port_is_enabled(struct cxl_port *port);
Jeff Moyer 2c91dc
 struct cxl_port *cxl_port_get_parent(struct cxl_port *port);
Jeff Moyer 2c91dc
 bool cxl_port_is_root(struct cxl_port *port);
Jeff Moyer 2c91dc
 bool cxl_port_is_switch(struct cxl_port *port);
Jeff Moyer 2c91dc
+int cxl_port_get_depth(struct cxl_port *port);
Jeff Moyer 2c91dc
 struct cxl_bus *cxl_port_to_bus(struct cxl_port *port);
Jeff Moyer 2c91dc
 bool cxl_port_is_endpoint(struct cxl_port *port);
Jeff Moyer 2c91dc
 struct cxl_endpoint *cxl_port_to_endpoint(struct cxl_port *port);
Jeff Moyer 2c91dc
-- 
Jeff Moyer 2c91dc
2.27.0
Jeff Moyer 2c91dc