diff options
Diffstat (limited to 'kernel/sched/core.c')
| -rw-r--r-- | kernel/sched/core.c | 21 | 
1 files changed, 16 insertions, 5 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 9116bcc90346..d44efa0d0611 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -1792,7 +1792,6 @@ static void cpu_util_update_eff(struct cgroup_subsys_state *css);  #endif  #ifdef CONFIG_SYSCTL -#ifdef CONFIG_UCLAMP_TASK  #ifdef CONFIG_UCLAMP_TASK_GROUP  static void uclamp_update_root_tg(void)  { @@ -1898,7 +1897,6 @@ undo:  	return result;  }  #endif -#endif  static int uclamp_validate(struct task_struct *p,  			   const struct sched_attr *attr) @@ -2065,7 +2063,7 @@ static void __init init_uclamp(void)  	}  } -#else /* CONFIG_UCLAMP_TASK */ +#else /* !CONFIG_UCLAMP_TASK */  static inline void uclamp_rq_inc(struct rq *rq, struct task_struct *p) { }  static inline void uclamp_rq_dec(struct rq *rq, struct task_struct *p) { }  static inline int uclamp_validate(struct task_struct *p, @@ -3955,6 +3953,17 @@ void wake_up_if_idle(int cpu)  	}  } +bool cpus_equal_capacity(int this_cpu, int that_cpu) +{ +	if (!sched_asym_cpucap_active()) +		return true; + +	if (this_cpu == that_cpu) +		return true; + +	return arch_scale_cpu_capacity(this_cpu) == arch_scale_cpu_capacity(that_cpu); +} +  bool cpus_share_cache(int this_cpu, int that_cpu)  {  	if (this_cpu == that_cpu) @@ -6787,10 +6796,12 @@ static inline void sched_submit_work(struct task_struct *tsk)  static void sched_update_worker(struct task_struct *tsk)  { -	if (tsk->flags & (PF_WQ_WORKER | PF_IO_WORKER)) { +	if (tsk->flags & (PF_WQ_WORKER | PF_IO_WORKER | PF_BLOCK_TS)) { +		if (tsk->flags & PF_BLOCK_TS) +			blk_plug_invalidate_ts(tsk);  		if (tsk->flags & PF_WQ_WORKER)  			wq_worker_running(tsk); -		else +		else if (tsk->flags & PF_IO_WORKER)  			io_wq_worker_running(tsk);  	}  }  |