Message ID | 1679885172-95021-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 2023/3/27 AM10:46, 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..6639a57 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_yitian710"); Is it possible to rename identifier as "ali_drw_pmu"? I don't think we need only limit alibaba_uncore_drw_pmu to Yitian710 SoC here. Thank you. Shuai > +} > + > +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, > }; >
在 2023/3/29 下午3:55, Shuai Xue 写道: > > > On 2023/3/27 AM10:46, 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..6639a57 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_yitian710"); > > Is it possible to rename identifier as "ali_drw_pmu"? I don't think we need only > limit alibaba_uncore_drw_pmu to Yitian710 SoC here. > Ok, I will rename it as "ali_drw_pmu". Thanks, Jing > Thank you. > Shuai > >> +} >> + >> +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..6639a57 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_yitian710"); +} + +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(+)