[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220225143024.47947-2-kjain@linux.ibm.com>
Date: Fri, 25 Feb 2022 20:00:21 +0530
From: Kajol Jain <kjain@...ux.ibm.com>
To: mpe@...erman.id.au, linuxppc-dev@...ts.ozlabs.org,
nvdimm@...ts.linux.dev, linux-kernel@...r.kernel.org,
peterz@...radead.org, dan.j.williams@...el.com,
ira.weiny@...el.com, vishal.l.verma@...el.com
Cc: santosh@...six.org, maddy@...ux.ibm.com, rnsastry@...ux.ibm.com,
aneesh.kumar@...ux.ibm.com, atrajeev@...ux.vnet.ibm.com,
vaibhav@...ux.ibm.com, tglx@...utronix.de, kjain@...ux.ibm.com
Subject: [PATCH v7 1/4] drivers/nvdimm: Add nvdimm pmu structure
A structure is added called nvdimm_pmu, for performance
stats reporting support of nvdimm devices. It can be used to add
device pmu data such as pmu data structure for performance
stats, nvdimm device pointer along with cpumask attributes.
Acked-by: Peter Zijlstra (Intel) <peterz@...radead.org>
Tested-by: Nageswara R Sastry <rnsastry@...ux.ibm.com>
Signed-off-by: Kajol Jain <kjain@...ux.ibm.com>
---
Changelog:
v6 -> v7
- Add Acked-by and Tested-by tag from Peter Zijlstra
and Nageswara R Sastry.
include/linux/nd.h | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/include/linux/nd.h b/include/linux/nd.h
index 8a8c63edb1b2..ad186e828263 100644
--- a/include/linux/nd.h
+++ b/include/linux/nd.h
@@ -8,6 +8,7 @@
#include <linux/ndctl.h>
#include <linux/device.h>
#include <linux/badblocks.h>
+#include <linux/perf_event.h>
enum nvdimm_event {
NVDIMM_REVALIDATE_POISON,
@@ -23,6 +24,25 @@ enum nvdimm_claim_class {
NVDIMM_CCLASS_UNKNOWN,
};
+/**
+ * struct nvdimm_pmu - data structure for nvdimm perf driver
+ * @pmu: pmu data structure for nvdimm performance stats.
+ * @dev: nvdimm device pointer.
+ * @cpu: designated cpu for counter access.
+ * @node: node for cpu hotplug notifier link.
+ * @cpuhp_state: state for cpu hotplug notification.
+ * @arch_cpumask: cpumask to get designated cpu for counter access.
+ */
+struct nvdimm_pmu {
+ struct pmu pmu;
+ struct device *dev;
+ int cpu;
+ struct hlist_node node;
+ enum cpuhp_state cpuhp_state;
+ /* cpumask provided by arch/platform specific code */
+ struct cpumask arch_cpumask;
+};
+
struct nd_device_driver {
struct device_driver drv;
unsigned long type;
--
2.31.1
Powered by blists - more mailing lists