Message ID | 1682329456-19418-4-git-send-email-renyu.zj@linux.alibaba.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add JSON metrics for arm CMN and Yitian710 DDR | expand |
On 24/04/2023 10:44, Jing Zhang wrote: > To allow userspace to identify the specific implementation of the device, > add an "identifier" sysfs file. > > The perf tool can match the Yitian 710 DDR metric through the identifier. > > Signed-off-by: Jing Zhang<renyu.zj@linux.alibaba.com> > --- > drivers/perf/alibaba_uncore_drw_pmu.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/drivers/perf/alibaba_uncore_drw_pmu.c b/drivers/perf/alibaba_uncore_drw_pmu.c > index a7689fe..fe075fd 100644 > --- a/drivers/perf/alibaba_uncore_drw_pmu.c > +++ b/drivers/perf/alibaba_uncore_drw_pmu.c > @@ -236,10 +236,37 @@ static ssize_t ali_drw_pmu_cpumask_show(struct device *dev, > .attrs = ali_drw_pmu_cpumask_attrs, > }; > > +static ssize_t ali_drw_pmu_identifier_show(struct device *dev, > + struct device_attribute *attr, > + char *page) > +{ > + return sysfs_emit(page, "%s\n", "ali_drw_pmu"); > +} Would there be anything more unique per implementation version? Having a constant like this means that all implementations will have same events from userspace PoV. Thanks, John
On 2023/4/24 17:44, Jing Zhang wrote: > To allow userspace to identify the specific implementation of the device, > add an "identifier" sysfs file. > > The perf tool can match the Yitian 710 DDR metric through the identifier. > > Signed-off-by: Jing Zhang <renyu.zj@linux.alibaba.com> LGTM, thanks. Reviewed-by: Shuai Xue <xueshuai@linux.alibaba.com> Best Regards, Shuai > --- > drivers/perf/alibaba_uncore_drw_pmu.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/drivers/perf/alibaba_uncore_drw_pmu.c b/drivers/perf/alibaba_uncore_drw_pmu.c > index a7689fe..fe075fd 100644 > --- a/drivers/perf/alibaba_uncore_drw_pmu.c > +++ b/drivers/perf/alibaba_uncore_drw_pmu.c > @@ -236,10 +236,37 @@ static ssize_t ali_drw_pmu_cpumask_show(struct device *dev, > .attrs = ali_drw_pmu_cpumask_attrs, > }; > > +static ssize_t ali_drw_pmu_identifier_show(struct device *dev, > + struct device_attribute *attr, > + char *page) > +{ > + return sysfs_emit(page, "%s\n", "ali_drw_pmu"); > +} > + > +static umode_t ali_drw_pmu_identifier_attr_visible(struct kobject *kobj, > + struct attribute *attr, int n) > +{ > + return attr->mode; > +} > + > +static struct device_attribute ali_drw_pmu_identifier_attr = > + __ATTR(identifier, 0444, ali_drw_pmu_identifier_show, NULL); > + > +static struct attribute *ali_drw_pmu_identifier_attrs[] = { > + &ali_drw_pmu_identifier_attr.attr, > + NULL > +}; > + > +static const struct attribute_group ali_drw_pmu_identifier_attr_group = { > + .attrs = ali_drw_pmu_identifier_attrs, > + .is_visible = ali_drw_pmu_identifier_attr_visible > +}; > + > static const struct attribute_group *ali_drw_pmu_attr_groups[] = { > &ali_drw_pmu_events_attr_group, > &ali_drw_pmu_cpumask_attr_group, > &ali_drw_pmu_format_group, > + &ali_drw_pmu_identifier_attr_group, > NULL, > }; >
diff --git a/drivers/perf/alibaba_uncore_drw_pmu.c b/drivers/perf/alibaba_uncore_drw_pmu.c index a7689fe..fe075fd 100644 --- a/drivers/perf/alibaba_uncore_drw_pmu.c +++ b/drivers/perf/alibaba_uncore_drw_pmu.c @@ -236,10 +236,37 @@ static ssize_t ali_drw_pmu_cpumask_show(struct device *dev, .attrs = ali_drw_pmu_cpumask_attrs, }; +static ssize_t ali_drw_pmu_identifier_show(struct device *dev, + struct device_attribute *attr, + char *page) +{ + return sysfs_emit(page, "%s\n", "ali_drw_pmu"); +} + +static umode_t ali_drw_pmu_identifier_attr_visible(struct kobject *kobj, + struct attribute *attr, int n) +{ + return attr->mode; +} + +static struct device_attribute ali_drw_pmu_identifier_attr = + __ATTR(identifier, 0444, ali_drw_pmu_identifier_show, NULL); + +static struct attribute *ali_drw_pmu_identifier_attrs[] = { + &ali_drw_pmu_identifier_attr.attr, + NULL +}; + +static const struct attribute_group ali_drw_pmu_identifier_attr_group = { + .attrs = ali_drw_pmu_identifier_attrs, + .is_visible = ali_drw_pmu_identifier_attr_visible +}; + static const struct attribute_group *ali_drw_pmu_attr_groups[] = { &ali_drw_pmu_events_attr_group, &ali_drw_pmu_cpumask_attr_group, &ali_drw_pmu_format_group, + &ali_drw_pmu_identifier_attr_group, NULL, };
To allow userspace to identify the specific implementation of the device, add an "identifier" sysfs file. The perf tool can match the Yitian 710 DDR metric through the identifier. Signed-off-by: Jing Zhang <renyu.zj@linux.alibaba.com> --- drivers/perf/alibaba_uncore_drw_pmu.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+)