hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/base/topology.c
....@@ -14,11 +14,11 @@
1414 #include <linux/hardirq.h>
1515 #include <linux/topology.h>
1616
17
-#define define_id_show_func(name) \
18
-static ssize_t name##_show(struct device *dev, \
19
- struct device_attribute *attr, char *buf) \
20
-{ \
21
- return sprintf(buf, "%d\n", topology_##name(dev->id)); \
17
+#define define_id_show_func(name) \
18
+static ssize_t name##_show(struct device *dev, \
19
+ struct device_attribute *attr, char *buf) \
20
+{ \
21
+ return sysfs_emit(buf, "%d\n", topology_##name(dev->id)); \
2222 }
2323
2424 #define define_siblings_show_map(name, mask) \
....@@ -43,6 +43,9 @@
4343 define_id_show_func(physical_package_id);
4444 static DEVICE_ATTR_RO(physical_package_id);
4545
46
+define_id_show_func(die_id);
47
+static DEVICE_ATTR_RO(die_id);
48
+
4649 define_id_show_func(core_id);
4750 static DEVICE_ATTR_RO(core_id);
4851
....@@ -50,9 +53,21 @@
5053 static DEVICE_ATTR_RO(thread_siblings);
5154 static DEVICE_ATTR_RO(thread_siblings_list);
5255
56
+define_siblings_show_func(core_cpus, sibling_cpumask);
57
+static DEVICE_ATTR_RO(core_cpus);
58
+static DEVICE_ATTR_RO(core_cpus_list);
59
+
5360 define_siblings_show_func(core_siblings, core_cpumask);
5461 static DEVICE_ATTR_RO(core_siblings);
5562 static DEVICE_ATTR_RO(core_siblings_list);
63
+
64
+define_siblings_show_func(die_cpus, die_cpumask);
65
+static DEVICE_ATTR_RO(die_cpus);
66
+static DEVICE_ATTR_RO(die_cpus_list);
67
+
68
+define_siblings_show_func(package_cpus, core_cpumask);
69
+static DEVICE_ATTR_RO(package_cpus);
70
+static DEVICE_ATTR_RO(package_cpus_list);
5671
5772 #ifdef CONFIG_SCHED_BOOK
5873 define_id_show_func(book_id);
....@@ -72,11 +87,18 @@
7287
7388 static struct attribute *default_attrs[] = {
7489 &dev_attr_physical_package_id.attr,
90
+ &dev_attr_die_id.attr,
7591 &dev_attr_core_id.attr,
7692 &dev_attr_thread_siblings.attr,
7793 &dev_attr_thread_siblings_list.attr,
94
+ &dev_attr_core_cpus.attr,
95
+ &dev_attr_core_cpus_list.attr,
7896 &dev_attr_core_siblings.attr,
7997 &dev_attr_core_siblings_list.attr,
98
+ &dev_attr_die_cpus.attr,
99
+ &dev_attr_die_cpus_list.attr,
100
+ &dev_attr_package_cpus.attr,
101
+ &dev_attr_package_cpus_list.attr,
80102 #ifdef CONFIG_SCHED_BOOK
81103 &dev_attr_book_id.attr,
82104 &dev_attr_book_siblings.attr,
....@@ -111,7 +133,7 @@
111133 return 0;
112134 }
113135
114
-static int topology_sysfs_init(void)
136
+static int __init topology_sysfs_init(void)
115137 {
116138 return cpuhp_setup_state(CPUHP_TOPOLOGY_PREPARE,
117139 "base/topology:prepare", topology_add_dev,