mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
![Mathieu Poirier](/assets/img/avatar_default.png)
When the topology of root domains is modified by CPUset or CPUhotplug operations information about the current deadline bandwidth held in the root domain is lost. This patch addresses the issue by recalculating the lost deadline bandwidth information by circling through the deadline tasks held in CPUsets and adding their current load to the root domain they are associated with. Tested-by: Dietmar Eggemann <dietmar.eggemann@arm.com> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Juri Lelli <juri.lelli@redhat.com> [ Various additional modifications. ] Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: bristot@redhat.com Cc: claudio@evidence.eu.com Cc: lizefan@huawei.com Cc: longman@redhat.com Cc: luca.abeni@santannapisa.it Cc: rostedt@goodmis.org Cc: tj@kernel.org Cc: tommaso.cucinotta@santannapisa.it Link: https://lkml.kernel.org/r/20190719140000.31694-4-juri.lelli@redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
34 lines
652 B
C
34 lines
652 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
/*
|
|
* SCHED_DEADLINE tasks has negative priorities, reflecting
|
|
* the fact that any of them has higher prio than RT and
|
|
* NORMAL/BATCH tasks.
|
|
*/
|
|
|
|
#define MAX_DL_PRIO 0
|
|
|
|
static inline int dl_prio(int prio)
|
|
{
|
|
if (unlikely(prio < MAX_DL_PRIO))
|
|
return 1;
|
|
return 0;
|
|
}
|
|
|
|
static inline int dl_task(struct task_struct *p)
|
|
{
|
|
return dl_prio(p->prio);
|
|
}
|
|
|
|
static inline bool dl_time_before(u64 a, u64 b)
|
|
{
|
|
return (s64)(a - b) < 0;
|
|
}
|
|
|
|
#ifdef CONFIG_SMP
|
|
|
|
struct root_domain;
|
|
extern void dl_add_task_root_domain(struct task_struct *p);
|
|
extern void dl_clear_root_domain(struct root_domain *rd);
|
|
|
|
#endif /* CONFIG_SMP */
|