Loading kernel/sched/fair.c +2 −1 Original line number Diff line number Diff line Loading @@ -4247,7 +4247,8 @@ pick_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *curr) second = curr; } if (second && wakeup_preempt_entity(second, left) < 1) if (second && (sched_feat(STRICT_SKIP_BUDDY) || wakeup_preempt_entity(second, left) < 1)) se = second; } Loading kernel/sched/features.h +6 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,12 @@ SCHED_FEAT(NEXT_BUDDY, false) */ SCHED_FEAT(LAST_BUDDY, true) /* * skip buddy i.e task called yield() is always skipped and the * next entity is selected to run irrespective of the vruntime */ SCHED_FEAT(STRICT_SKIP_BUDDY, true) /* * Consider buddies to be cache hot, decreases the likelyness of a * cache buddy being migrated away, increases cache locality. Loading Loading
kernel/sched/fair.c +2 −1 Original line number Diff line number Diff line Loading @@ -4247,7 +4247,8 @@ pick_next_entity(struct cfs_rq *cfs_rq, struct sched_entity *curr) second = curr; } if (second && wakeup_preempt_entity(second, left) < 1) if (second && (sched_feat(STRICT_SKIP_BUDDY) || wakeup_preempt_entity(second, left) < 1)) se = second; } Loading
kernel/sched/features.h +6 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,12 @@ SCHED_FEAT(NEXT_BUDDY, false) */ SCHED_FEAT(LAST_BUDDY, true) /* * skip buddy i.e task called yield() is always skipped and the * next entity is selected to run irrespective of the vruntime */ SCHED_FEAT(STRICT_SKIP_BUDDY, true) /* * Consider buddies to be cache hot, decreases the likelyness of a * cache buddy being migrated away, increases cache locality. Loading