Skip to content

Commit 792f73f

Browse files
kjain101mpe
authored andcommitted
powerpc/hv-24x7: Add sysfs files inside hv-24x7 device to show cpumask
Patch here adds a cpumask attr to hv_24x7 pmu along with ABI documentation. Primary use to expose the cpumask is for the perf tool which has the capability to parse the driver sysfs folder and understand the cpumask file. Having cpumask file will reduce the number of perf command line parameters (will avoid "-C" option in the perf tool command line). It can also notify the user which is the current cpu used to retrieve the counter data. command:# cat /sys/devices/hv_24x7/interface/cpumask 0 Signed-off-by: Kajol Jain <[email protected]> Reviewed-by: Madhavan Srinivasan <[email protected]> Signed-off-by: Michael Ellerman <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 1a8f088 commit 792f73f

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

Documentation/ABI/testing/sysfs-bus-event_source-devices-hv_24x7

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,13 @@ Description: read only
4343
This sysfs interface exposes the number of cores per chip
4444
present in the system.
4545

46+
What: /sys/devices/hv_24x7/interface/cpumask
47+
Date: July 2020
48+
Contact: Linux on PowerPC Developer List <[email protected]>
49+
Description: read only
50+
This sysfs file exposes the cpumask which is designated to make
51+
HCALLs to retrieve hv-24x7 pmu event counter data.
52+
4653
What: /sys/bus/event_source/devices/hv_24x7/event_descs/<event-name>
4754
Date: February 2014
4855
Contact: Linux on PowerPC Developer List <[email protected]>

arch/powerpc/perf/hv-24x7.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,12 @@ static ssize_t device_show_string(struct device *dev,
448448
return sprintf(buf, "%s\n", (char *)d->var);
449449
}
450450

451+
static ssize_t cpumask_show(struct device *dev,
452+
struct device_attribute *attr, char *buf)
453+
{
454+
return cpumap_print_to_pagebuf(true, buf, &hv_24x7_cpumask);
455+
}
456+
451457
static ssize_t sockets_show(struct device *dev,
452458
struct device_attribute *attr, char *buf)
453459
{
@@ -1115,6 +1121,7 @@ static DEVICE_ATTR_RO(domains);
11151121
static DEVICE_ATTR_RO(sockets);
11161122
static DEVICE_ATTR_RO(chipspersocket);
11171123
static DEVICE_ATTR_RO(coresperchip);
1124+
static DEVICE_ATTR_RO(cpumask);
11181125

11191126
static struct bin_attribute *if_bin_attrs[] = {
11201127
&bin_attr_catalog,
@@ -1128,6 +1135,7 @@ static struct attribute *if_attrs[] = {
11281135
&dev_attr_sockets.attr,
11291136
&dev_attr_chipspersocket.attr,
11301137
&dev_attr_coresperchip.attr,
1138+
&dev_attr_cpumask.attr,
11311139
NULL,
11321140
};
11331141

0 commit comments

Comments
 (0)