Commit 9099a147 authored by Peter Zijlstra's avatar Peter Zijlstra
parent 0cd7c741
...@@ -6288,6 +6288,11 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target) ...@@ -6288,6 +6288,11 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target)
task_util = uclamp_task_util(p); task_util = uclamp_task_util(p);
} }
/*
* per-cpu select_idle_mask usage
*/
lockdep_assert_irqs_disabled();
if ((available_idle_cpu(target) || sched_idle_cpu(target)) && if ((available_idle_cpu(target) || sched_idle_cpu(target)) &&
asym_fits_capacity(task_util, target)) asym_fits_capacity(task_util, target))
return target; return target;
...@@ -6781,8 +6786,6 @@ static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu) ...@@ -6781,8 +6786,6 @@ static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu)
* certain conditions an idle sibling CPU if the domain has SD_WAKE_AFFINE set. * certain conditions an idle sibling CPU if the domain has SD_WAKE_AFFINE set.
* *
* Returns the target CPU number. * Returns the target CPU number.
*
* preempt must be disabled.
*/ */
static int static int
select_task_rq_fair(struct task_struct *p, int prev_cpu, int wake_flags) select_task_rq_fair(struct task_struct *p, int prev_cpu, int wake_flags)
...@@ -6795,6 +6798,10 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int wake_flags) ...@@ -6795,6 +6798,10 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int wake_flags)
/* SD_flags and WF_flags share the first nibble */ /* SD_flags and WF_flags share the first nibble */
int sd_flag = wake_flags & 0xF; int sd_flag = wake_flags & 0xF;
/*
* required for stable ->cpus_allowed
*/
lockdep_assert_held(&p->pi_lock);
if (wake_flags & WF_TTWU) { if (wake_flags & WF_TTWU) {
record_wakee(p); record_wakee(p);
......
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