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;
|
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)
|
void update_siblings_masks(unsigned int cpuid)
|
||||||
{
|
{
|
||||||
struct cpu_topology *cpu_topo, *cpuid_topo = &cpu_topology[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)
|
#if defined(CONFIG_ARM64) || defined(CONFIG_RISCV)
|
||||||
void __init init_cpu_topology(void)
|
void __init init_cpu_topology(void)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_SCHED_WALT
|
||||||
|
int cpu;
|
||||||
|
#endif
|
||||||
reset_cpu_topology();
|
reset_cpu_topology();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -560,5 +583,11 @@ void __init init_cpu_topology(void)
|
|||||||
reset_cpu_topology();
|
reset_cpu_topology();
|
||||||
else if (of_have_populated_dt() && parse_dt_topology())
|
else if (of_have_populated_dt() && parse_dt_topology())
|
||||||
reset_cpu_topology();
|
reset_cpu_topology();
|
||||||
|
#ifdef CONFIG_SCHED_WALT
|
||||||
|
else {
|
||||||
|
for_each_possible_cpu(cpu)
|
||||||
|
update_possible_siblings_masks(cpu);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -48,6 +48,9 @@ struct cpu_topology {
|
|||||||
int llc_id;
|
int llc_id;
|
||||||
cpumask_t thread_sibling;
|
cpumask_t thread_sibling;
|
||||||
cpumask_t core_sibling;
|
cpumask_t core_sibling;
|
||||||
|
#ifdef CONFIG_SCHED_WALT
|
||||||
|
cpumask_t core_possible_sibling;
|
||||||
|
#endif
|
||||||
cpumask_t llc_sibling;
|
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_core_cpumask(cpu) (&cpu_topology[cpu].core_sibling)
|
||||||
#define topology_sibling_cpumask(cpu) (&cpu_topology[cpu].thread_sibling)
|
#define topology_sibling_cpumask(cpu) (&cpu_topology[cpu].thread_sibling)
|
||||||
#define topology_llc_cpumask(cpu) (&cpu_topology[cpu].llc_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 init_cpu_topology(void);
|
||||||
void store_cpu_topology(unsigned int cpuid);
|
void store_cpu_topology(unsigned int cpuid);
|
||||||
const struct cpumask *cpu_coregroup_mask(int cpu);
|
const struct cpumask *cpu_coregroup_mask(int cpu);
|
||||||
|
@@ -214,6 +214,9 @@ static inline int cpu_to_mem(int cpu)
|
|||||||
#ifndef topology_die_cpumask
|
#ifndef topology_die_cpumask
|
||||||
#define topology_die_cpumask(cpu) cpumask_of(cpu)
|
#define topology_die_cpumask(cpu) cpumask_of(cpu)
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef topology_possible_sibling_cpumask
|
||||||
|
#define topology_possible_sibling_cpumask(cpu) cpumask_of(cpu)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SCHED_SMT
|
#ifdef CONFIG_SCHED_SMT
|
||||||
static inline const struct cpumask *cpu_smt_mask(int cpu)
|
static inline const struct cpumask *cpu_smt_mask(int cpu)
|
||||||
|
Reference in New Issue
Block a user