sched: prevent wakeup over-scheduling
Prevent wakeup over-scheduling. Once a task has been preempted by a task of the same or lower priority, it becomes ineligible for repeated preemption by same until it has been ticked, or slept. Instead, the task is marked for preemption at the next tick. Tasks of higher priority still preempt immediately. Signed-off-by: Mike Galbraith <efault@gmx.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:

committed by
Ingo Molnar

parent
ce6c131131
commit
95938a35c5
@@ -445,6 +445,7 @@ enum {
|
||||
SCHED_FEAT_TREE_AVG = 4,
|
||||
SCHED_FEAT_APPROX_AVG = 8,
|
||||
SCHED_FEAT_WAKEUP_PREEMPT = 16,
|
||||
SCHED_FEAT_PREEMPT_RESTRICT = 32,
|
||||
};
|
||||
|
||||
const_debug unsigned int sysctl_sched_features =
|
||||
@@ -452,7 +453,8 @@ const_debug unsigned int sysctl_sched_features =
|
||||
SCHED_FEAT_START_DEBIT *1 |
|
||||
SCHED_FEAT_TREE_AVG *0 |
|
||||
SCHED_FEAT_APPROX_AVG *0 |
|
||||
SCHED_FEAT_WAKEUP_PREEMPT *1;
|
||||
SCHED_FEAT_WAKEUP_PREEMPT *1 |
|
||||
SCHED_FEAT_PREEMPT_RESTRICT *1;
|
||||
|
||||
#define sched_feat(x) (sysctl_sched_features & SCHED_FEAT_##x)
|
||||
|
||||
|
Reference in New Issue
Block a user