topology: Add snapshot of possible sibling cpu mask changes
This snapshot is taken from msm-4.19 as of commit 72395648aa0ad18 ("sched: core: Fix usage of cpu core group mask"). Change-Id: Icfbe12f59502c115b010ab53c110f232173c89a5 Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
This commit is contained in:
@@ -471,6 +471,26 @@ const struct cpumask *cpu_coregroup_mask(int cpu)
|
||||
return core_mask;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SCHED_WALT
|
||||
void update_possible_siblings_masks(unsigned int cpuid)
|
||||
{
|
||||
struct cpu_topology *cpu_topo, *cpuid_topo = &cpu_topology[cpuid];
|
||||
int cpu;
|
||||
|
||||
if (cpuid_topo->package_id == -1)
|
||||
return;
|
||||
|
||||
for_each_possible_cpu(cpu) {
|
||||
cpu_topo = &cpu_topology[cpu];
|
||||
|
||||
if (cpuid_topo->package_id != cpu_topo->package_id)
|
||||
continue;
|
||||
cpumask_set_cpu(cpuid, &cpu_topo->core_possible_sibling);
|
||||
cpumask_set_cpu(cpu, &cpuid_topo->core_possible_sibling);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void update_siblings_masks(unsigned int cpuid)
|
||||
{
|
||||
struct cpu_topology *cpu_topo, *cpuid_topo = &cpu_topology[cpuid];
|
||||
@@ -550,6 +570,9 @@ __weak int __init parse_acpi_topology(void)
|
||||
#if defined(CONFIG_ARM64) || defined(CONFIG_RISCV)
|
||||
void __init init_cpu_topology(void)
|
||||
{
|
||||
#ifdef CONFIG_SCHED_WALT
|
||||
int cpu;
|
||||
#endif
|
||||
reset_cpu_topology();
|
||||
|
||||
/*
|
||||
@@ -560,5 +583,11 @@ void __init init_cpu_topology(void)
|
||||
reset_cpu_topology();
|
||||
else if (of_have_populated_dt() && parse_dt_topology())
|
||||
reset_cpu_topology();
|
||||
#ifdef CONFIG_SCHED_WALT
|
||||
else {
|
||||
for_each_possible_cpu(cpu)
|
||||
update_possible_siblings_masks(cpu);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
@@ -48,6 +48,9 @@ struct cpu_topology {
|
||||
int llc_id;
|
||||
cpumask_t thread_sibling;
|
||||
cpumask_t core_sibling;
|
||||
#ifdef CONFIG_SCHED_WALT
|
||||
cpumask_t core_possible_sibling;
|
||||
#endif
|
||||
cpumask_t llc_sibling;
|
||||
};
|
||||
|
||||
@@ -59,6 +62,10 @@ extern struct cpu_topology cpu_topology[NR_CPUS];
|
||||
#define topology_core_cpumask(cpu) (&cpu_topology[cpu].core_sibling)
|
||||
#define topology_sibling_cpumask(cpu) (&cpu_topology[cpu].thread_sibling)
|
||||
#define topology_llc_cpumask(cpu) (&cpu_topology[cpu].llc_sibling)
|
||||
#ifdef CONFIG_SCHED_WALT
|
||||
#define topology_possible_sibling_cpumask(cpu) \
|
||||
(&cpu_topology[cpu].core_possible_sibling)
|
||||
#endif
|
||||
void init_cpu_topology(void);
|
||||
void store_cpu_topology(unsigned int cpuid);
|
||||
const struct cpumask *cpu_coregroup_mask(int cpu);
|
||||
|
@@ -214,6 +214,9 @@ static inline int cpu_to_mem(int cpu)
|
||||
#ifndef topology_die_cpumask
|
||||
#define topology_die_cpumask(cpu) cpumask_of(cpu)
|
||||
#endif
|
||||
#ifndef topology_possible_sibling_cpumask
|
||||
#define topology_possible_sibling_cpumask(cpu) cpumask_of(cpu)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SCHED_SMT
|
||||
static inline const struct cpumask *cpu_smt_mask(int cpu)
|
||||
|
Reference in New Issue
Block a user