driver/perf: Add identifier sysfs file for Yitian 710 DDR
authorJing Zhang <renyu.zj@linux.alibaba.com>
Tue, 20 Jun 2023 07:12:33 +0000 (15:12 +0800)
committerWill Deacon <will@kernel.org>
Thu, 27 Jul 2023 11:57:04 +0000 (12:57 +0100)
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>
Acked-by: Ian Rogers <irogers@google.com>
Reviewed-by: Shuai Xue <xueshuai@linux.alibaba.com>
Link: https://lore.kernel.org/r/1687245156-61215-2-git-send-email-renyu.zj@linux.alibaba.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/perf/alibaba_uncore_drw_pmu.c

index 5c5be9fc1b15fc0f1cb44d04681eebff5a089f11..19d459a36be55c900e7860b0d8b65dec4a2ec266 100644 (file)
@@ -236,10 +236,37 @@ static const struct attribute_group ali_drw_pmu_cpumask_attr_group = {
        .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,
 };