mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 18:09:57 +00:00
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 <kjain@linux.ibm.com> Reviewed-by: Madhavan Srinivasan <maddy@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20200709051836.723765-3-kjain@linux.ibm.com
This commit is contained in:
parent
1a8f0886a6
commit
792f73f747
2 changed files with 15 additions and 0 deletions
|
@ -43,6 +43,13 @@ Description: read only
|
||||||
This sysfs interface exposes the number of cores per chip
|
This sysfs interface exposes the number of cores per chip
|
||||||
present in the system.
|
present in the system.
|
||||||
|
|
||||||
|
What: /sys/devices/hv_24x7/interface/cpumask
|
||||||
|
Date: July 2020
|
||||||
|
Contact: Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
|
||||||
|
Description: read only
|
||||||
|
This sysfs file exposes the cpumask which is designated to make
|
||||||
|
HCALLs to retrieve hv-24x7 pmu event counter data.
|
||||||
|
|
||||||
What: /sys/bus/event_source/devices/hv_24x7/event_descs/<event-name>
|
What: /sys/bus/event_source/devices/hv_24x7/event_descs/<event-name>
|
||||||
Date: February 2014
|
Date: February 2014
|
||||||
Contact: Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
|
Contact: Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
|
||||||
|
|
|
@ -448,6 +448,12 @@ static ssize_t device_show_string(struct device *dev,
|
||||||
return sprintf(buf, "%s\n", (char *)d->var);
|
return sprintf(buf, "%s\n", (char *)d->var);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ssize_t cpumask_show(struct device *dev,
|
||||||
|
struct device_attribute *attr, char *buf)
|
||||||
|
{
|
||||||
|
return cpumap_print_to_pagebuf(true, buf, &hv_24x7_cpumask);
|
||||||
|
}
|
||||||
|
|
||||||
static ssize_t sockets_show(struct device *dev,
|
static ssize_t sockets_show(struct device *dev,
|
||||||
struct device_attribute *attr, char *buf)
|
struct device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
|
@ -1115,6 +1121,7 @@ static DEVICE_ATTR_RO(domains);
|
||||||
static DEVICE_ATTR_RO(sockets);
|
static DEVICE_ATTR_RO(sockets);
|
||||||
static DEVICE_ATTR_RO(chipspersocket);
|
static DEVICE_ATTR_RO(chipspersocket);
|
||||||
static DEVICE_ATTR_RO(coresperchip);
|
static DEVICE_ATTR_RO(coresperchip);
|
||||||
|
static DEVICE_ATTR_RO(cpumask);
|
||||||
|
|
||||||
static struct bin_attribute *if_bin_attrs[] = {
|
static struct bin_attribute *if_bin_attrs[] = {
|
||||||
&bin_attr_catalog,
|
&bin_attr_catalog,
|
||||||
|
@ -1128,6 +1135,7 @@ static struct attribute *if_attrs[] = {
|
||||||
&dev_attr_sockets.attr,
|
&dev_attr_sockets.attr,
|
||||||
&dev_attr_chipspersocket.attr,
|
&dev_attr_chipspersocket.attr,
|
||||||
&dev_attr_coresperchip.attr,
|
&dev_attr_coresperchip.attr,
|
||||||
|
&dev_attr_cpumask.attr,
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue