Commit 36b533bc authored by Roman Sudarikov's avatar Roman Sudarikov Committed by Peter Zijlstra

perf/x86/intel/uncore: Wrap the max dies calculation into an accessor

The accessor to return number of dies on the platform.
Signed-off-by: default avatarAlexander Antonov <alexander.antonov@linux.intel.com>
Signed-off-by: default avatarRoman Sudarikov <roman.sudarikov@linux.intel.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
Reviewed-by: default avatarAlexander Shishkin <alexander.shishkin@linux.intel.com>
Link: https://lkml.kernel.org/r/20200601083543.30011-3-alexander.antonov@linux.intel.com
parent 19a39819
...@@ -16,7 +16,7 @@ struct pci_driver *uncore_pci_driver; ...@@ -16,7 +16,7 @@ struct pci_driver *uncore_pci_driver;
DEFINE_RAW_SPINLOCK(pci2phy_map_lock); DEFINE_RAW_SPINLOCK(pci2phy_map_lock);
struct list_head pci2phy_map_head = LIST_HEAD_INIT(pci2phy_map_head); struct list_head pci2phy_map_head = LIST_HEAD_INIT(pci2phy_map_head);
struct pci_extra_dev *uncore_extra_pci_dev; struct pci_extra_dev *uncore_extra_pci_dev;
static int max_dies; int __uncore_max_dies;
/* mask of cpus that collect uncore events */ /* mask of cpus that collect uncore events */
static cpumask_t uncore_cpu_mask; static cpumask_t uncore_cpu_mask;
...@@ -108,7 +108,7 @@ struct intel_uncore_box *uncore_pmu_to_box(struct intel_uncore_pmu *pmu, int cpu ...@@ -108,7 +108,7 @@ struct intel_uncore_box *uncore_pmu_to_box(struct intel_uncore_pmu *pmu, int cpu
* The unsigned check also catches the '-1' return value for non * The unsigned check also catches the '-1' return value for non
* existent mappings in the topology map. * existent mappings in the topology map.
*/ */
return dieid < max_dies ? pmu->boxes[dieid] : NULL; return dieid < uncore_max_dies() ? pmu->boxes[dieid] : NULL;
} }
u64 uncore_msr_read_counter(struct intel_uncore_box *box, struct perf_event *event) u64 uncore_msr_read_counter(struct intel_uncore_box *box, struct perf_event *event)
...@@ -882,7 +882,7 @@ static void uncore_free_boxes(struct intel_uncore_pmu *pmu) ...@@ -882,7 +882,7 @@ static void uncore_free_boxes(struct intel_uncore_pmu *pmu)
{ {
int die; int die;
for (die = 0; die < max_dies; die++) for (die = 0; die < uncore_max_dies(); die++)
kfree(pmu->boxes[die]); kfree(pmu->boxes[die]);
kfree(pmu->boxes); kfree(pmu->boxes);
} }
...@@ -923,7 +923,7 @@ static int __init uncore_type_init(struct intel_uncore_type *type, bool setid) ...@@ -923,7 +923,7 @@ static int __init uncore_type_init(struct intel_uncore_type *type, bool setid)
if (!pmus) if (!pmus)
return -ENOMEM; return -ENOMEM;
size = max_dies * sizeof(struct intel_uncore_box *); size = uncore_max_dies() * sizeof(struct intel_uncore_box *);
for (i = 0; i < type->num_boxes; i++) { for (i = 0; i < type->num_boxes; i++) {
pmus[i].func_id = setid ? i : -1; pmus[i].func_id = setid ? i : -1;
...@@ -1123,7 +1123,7 @@ static int __init uncore_pci_init(void) ...@@ -1123,7 +1123,7 @@ static int __init uncore_pci_init(void)
size_t size; size_t size;
int ret; int ret;
size = max_dies * sizeof(struct pci_extra_dev); size = uncore_max_dies() * sizeof(struct pci_extra_dev);
uncore_extra_pci_dev = kzalloc(size, GFP_KERNEL); uncore_extra_pci_dev = kzalloc(size, GFP_KERNEL);
if (!uncore_extra_pci_dev) { if (!uncore_extra_pci_dev) {
ret = -ENOMEM; ret = -ENOMEM;
...@@ -1552,7 +1552,8 @@ static int __init intel_uncore_init(void) ...@@ -1552,7 +1552,8 @@ static int __init intel_uncore_init(void)
if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
return -ENODEV; return -ENODEV;
max_dies = topology_max_packages() * topology_max_die_per_package(); __uncore_max_dies =
topology_max_packages() * topology_max_die_per_package();
uncore_init = (struct intel_uncore_init_fun *)id->driver_data; uncore_init = (struct intel_uncore_init_fun *)id->driver_data;
if (uncore_init->pci_init) { if (uncore_init->pci_init) {
......
...@@ -182,6 +182,9 @@ int uncore_pcibus_to_physid(struct pci_bus *bus); ...@@ -182,6 +182,9 @@ int uncore_pcibus_to_physid(struct pci_bus *bus);
ssize_t uncore_event_show(struct kobject *kobj, ssize_t uncore_event_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf); struct kobj_attribute *attr, char *buf);
extern int __uncore_max_dies;
#define uncore_max_dies() (__uncore_max_dies)
#define INTEL_UNCORE_EVENT_DESC(_name, _config) \ #define INTEL_UNCORE_EVENT_DESC(_name, _config) \
{ \ { \
.attr = __ATTR(_name, 0444, uncore_event_show, NULL), \ .attr = __ATTR(_name, 0444, uncore_event_show, NULL), \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment