diff options
author | Julia Cartwright <julia@ni.com> | 2018-01-15 13:09:37 -0600 |
---|---|---|
committer | Julia Cartwright <julia@ni.com> | 2018-01-15 13:09:37 -0600 |
commit | 223a1a424ccc1a22fa77500bb1bced246d5dd855 (patch) | |
tree | 35a62e7275ac840c7b20faa8cc40fe9798bcc950 /kernel/sched/rt.c | |
parent | 0c37397b6b8708f3cae24a8faeed2d1c84760892 (diff) | |
parent | 7bbc6ca4887794cc44b41412a35bdfbe0cbd1c50 (diff) |
Merge tag 'v4.9.76' into v4.9-rt
This is the 4.9.76 stable release
Diffstat (limited to 'kernel/sched/rt.c')
-rw-r--r-- | kernel/sched/rt.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index 340a0a5d435c..d361629c0f96 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -2023,8 +2023,9 @@ static void pull_rt_task(struct rq *this_rq) bool resched = false; struct task_struct *p; struct rq *src_rq; + int rt_overload_count = rt_overloaded(this_rq); - if (likely(!rt_overloaded(this_rq))) + if (likely(!rt_overload_count)) return; /* @@ -2033,6 +2034,11 @@ static void pull_rt_task(struct rq *this_rq) */ smp_rmb(); + /* If we are the only overloaded CPU do nothing */ + if (rt_overload_count == 1 && + cpumask_test_cpu(this_rq->cpu, this_rq->rd->rto_mask)) + return; + #ifdef HAVE_RT_PUSH_IPI if (sched_feat(RT_PUSH_IPI)) { tell_cpu_to_push(this_rq); |