Hi, > On Aug 12, 2020, at 12:55 AM, Dietmar Eggemann <[email protected]> > wrote: > > On 11/08/2020 10:43, Jiang Biao wrote: >> Similar optimization as what has been done in commit, >> 7d148be69e3a(sched/fair: Optimize enqueue_task_fair()) >> >> dequeue_task_fair jumps to dequeue_throttle label when cfs_rq_of(se) is >> throttled which means that se can't be NULL. We can move the label after >> the if (!se) statement and remove the if(!se) statment as se is always >> NULL when reaching this point. >> >> Besides, trying to keep the same pattern with enqueue_task_fair can make >> it more readable. >> >> Signed-off-by: Jiang Biao <[email protected]> >> --- >> kernel/sched/fair.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c >> index 04fa8dbcfa4d..cbbeafdfa8b7 100644 >> --- a/kernel/sched/fair.c >> +++ b/kernel/sched/fair.c >> @@ -5618,10 +5618,10 @@ static void dequeue_task_fair(struct rq *rq, struct >> task_struct *p, int flags) >> >> } >> >> -dequeue_throttle: >> - if (!se) >> - sub_nr_running(rq, 1); >> + /* At this point se is NULL and we are at root level*/ >> + sub_nr_running(rq, 1); >> >> +dequeue_throttle: >> /* balance early to pull high priority tasks */ >> if (unlikely(!was_sched_idle && sched_idle_rq(rq))) >> rq->next_balance = jiffies; > > There is already a similar patch in master. > > 423d02e1463b - sched/fair: Optimize dequeue_task_fair() (2020-06-25 Peng > Wang) Indeed, my local repo has been outdated, sorry for the interruption. :)
Thx. Regards, Jiang

