Merge "sched/walt: make partially halted cpus higher cap than silvers"

This commit is contained in:
qctecmdr 2023-09-27 11:18:26 -07:00 committed by Gerrit - the friendly Code Review server
commit fabdaf8b4a
2 changed files with 23 additions and 20 deletions

View File

@ -779,8 +779,31 @@ static inline bool task_in_related_thread_group(struct task_struct *p)
return (rcu_access_pointer(wts->grp) != NULL);
}
bool walt_halt_check_last(int cpu);
extern struct cpumask __cpu_halt_mask;
extern struct cpumask __cpu_partial_halt_mask;
#define cpu_halt_mask ((struct cpumask *)&__cpu_halt_mask)
#define cpu_partial_halt_mask ((struct cpumask *)&__cpu_partial_halt_mask)
/* a halted cpu must NEVER be used for tasks, as this is the thermal indication to avoid a cpu */
#define cpu_halted(cpu) cpumask_test_cpu((cpu), cpu_halt_mask)
/* a partially halted may be used for helping smaller cpus with small tasks */
#define cpu_partial_halted(cpu) cpumask_test_cpu((cpu), cpu_partial_halt_mask)
#define ASYMCAP_BOOST(cpu) (sysctl_sched_asymcap_boost && \
!is_min_possible_cluster_cpu(cpu) && \
!cpu_partial_halted(cpu))
static bool check_for_higher_capacity(int cpu1, int cpu2)
{
if (cpu_partial_halted(cpu1) && is_min_possible_cluster_cpu(cpu2))
return true;
if (is_min_possible_cluster_cpu(cpu1) && cpu_partial_halted(cpu2))
return false;
return capacity_orig_of(cpu1) > capacity_orig_of(cpu2);
}
@ -1001,23 +1024,6 @@ struct compute_energy_output {
unsigned int cluster_first_cpu[MAX_CLUSTERS];
};
bool walt_halt_check_last(int cpu);
extern struct cpumask __cpu_halt_mask;
extern struct cpumask __cpu_partial_halt_mask;
#define cpu_halt_mask ((struct cpumask *)&__cpu_halt_mask)
#define cpu_partial_halt_mask ((struct cpumask *)&__cpu_partial_halt_mask)
/* a halted cpu must NEVER be used for tasks, as this is the thermal indication to avoid a cpu */
#define cpu_halted(cpu) cpumask_test_cpu((cpu), cpu_halt_mask)
/* a partially halted may be used for helping smaller cpus with small tasks */
#define cpu_partial_halted(cpu) cpumask_test_cpu((cpu), cpu_partial_halt_mask)
#define ASYMCAP_BOOST(cpu) (sysctl_sched_asymcap_boost && \
!is_min_possible_cluster_cpu(cpu) && \
!cpu_partial_halted(cpu))
static inline bool is_state1(void)
{
struct cpumask local_mask = { CPU_BITS_NONE };

View File

@ -264,9 +264,6 @@ static inline bool _walt_can_migrate_task(struct task_struct *p, int dst_cpu,
if (cpu_halted(dst_cpu))
return false;
if (task_reject_partialhalt_cpu(p, dst_cpu))
return false;
return true;
}