mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
sched/fair: Move is_core_idle() out of CONFIG_NUMA
asym_packing needs this function to determine whether an SMT core is a suitable destination for load balancing. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Tested-by: Zhang Rui <rui.zhang@intel.com> Link: https://lore.kernel.org/r/20230406203148.19182-2-ricardo.neri-calderon@linux.intel.com
This commit is contained in:
committed by
Peter Zijlstra
parent
ac9a78681b
commit
8b36d07f1d
@@ -1064,6 +1064,23 @@ update_stats_curr_start(struct cfs_rq *cfs_rq, struct sched_entity *se)
|
|||||||
* Scheduling class queueing methods:
|
* Scheduling class queueing methods:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static inline bool is_core_idle(int cpu)
|
||||||
|
{
|
||||||
|
#ifdef CONFIG_SCHED_SMT
|
||||||
|
int sibling;
|
||||||
|
|
||||||
|
for_each_cpu(sibling, cpu_smt_mask(cpu)) {
|
||||||
|
if (cpu == sibling)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!idle_cpu(sibling))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_NUMA
|
#ifdef CONFIG_NUMA
|
||||||
#define NUMA_IMBALANCE_MIN 2
|
#define NUMA_IMBALANCE_MIN 2
|
||||||
|
|
||||||
@@ -1700,23 +1717,6 @@ struct numa_stats {
|
|||||||
int idle_cpu;
|
int idle_cpu;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline bool is_core_idle(int cpu)
|
|
||||||
{
|
|
||||||
#ifdef CONFIG_SCHED_SMT
|
|
||||||
int sibling;
|
|
||||||
|
|
||||||
for_each_cpu(sibling, cpu_smt_mask(cpu)) {
|
|
||||||
if (cpu == sibling)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!idle_cpu(sibling))
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct task_numa_env {
|
struct task_numa_env {
|
||||||
struct task_struct *p;
|
struct task_struct *p;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user