diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2018-01-11 04:14:45 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-01-11 04:14:45 -0800 |
commit | e525ef12a4ba7da1569592615fddf082c51b2f3e (patch) | |
tree | 5733d8ac1a78313edf973cf0e265f0fefafd4308 /kernel/sched/sched.h | |
parent | 1707cb3ff140dec01127669e1c88d5b850f272e4 (diff) | |
parent | 80eb7ccae411759ac85501602aae882dede1c7fa (diff) |
Merge "Merge android-4.4.104 (8bc4213) into msm-4.4"
Diffstat (limited to 'kernel/sched/sched.h')
-rw-r--r-- | kernel/sched/sched.h | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 7b31973c6db3..ca2294d06f44 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -532,7 +532,7 @@ static inline int rt_bandwidth_enabled(void) } /* RT IPI pull logic requires IRQ_WORK */ -#ifdef CONFIG_IRQ_WORK +#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_SMP) # define HAVE_RT_PUSH_IPI #endif @@ -553,12 +553,6 @@ struct rt_rq { unsigned long rt_nr_total; int overloaded; struct plist_head pushable_tasks; -#ifdef HAVE_RT_PUSH_IPI - int push_flags; - int push_cpu; - struct irq_work push_work; - raw_spinlock_t push_lock; -#endif #endif /* CONFIG_SMP */ int rt_queued; @@ -651,6 +645,19 @@ struct root_domain { struct dl_bw dl_bw; struct cpudl cpudl; +#ifdef HAVE_RT_PUSH_IPI + /* + * For IPI pull requests, loop across the rto_mask. + */ + struct irq_work rto_push_work; + raw_spinlock_t rto_lock; + /* These are only updated and read within rto_lock */ + int rto_loop; + int rto_cpu; + /* These atomics are updated outside of a lock */ + atomic_t rto_loop_next; + atomic_t rto_loop_start; +#endif /* * The "RT overload" flag: it gets set if a CPU has more than * one runnable RT task. @@ -667,6 +674,9 @@ struct root_domain { extern struct root_domain def_root_domain; +#ifdef HAVE_RT_PUSH_IPI +extern void rto_push_irq_work_func(struct irq_work *work); +#endif #endif /* CONFIG_SMP */ /* |