[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bdc919e5-0bfb-9ec6-b8e7-5a98a30f821c@linux.microsoft.com>
Date: Thu, 17 Sep 2020 16:39:53 -0400
From: Vineeth Pillai <viremana@...ux.microsoft.com>
To: Peter Zijlstra <peterz@...radead.org>,
Julien Desfossez <jdesfossez@...italocean.com>
Cc: Joel Fernandes <joelaf@...gle.com>,
Tim Chen <tim.c.chen@...ux.intel.com>,
Aaron Lu <aaron.lwe@...il.com>,
Aubrey Li <aubrey.intel@...il.com>,
Dhaval Giani <dhaval.giani@...cle.com>,
Chris Hyser <chris.hyser@...cle.com>,
Nishanth Aravamudan <naravamudan@...italocean.com>,
mingo@...nel.org, tglx@...utronix.de, pjt@...gle.com,
torvalds@...ux-foundation.org, linux-kernel@...r.kernel.org,
fweisbec@...il.com, keescook@...omium.org, kerrnel@...gle.com,
Phil Auld <pauld@...hat.com>,
Valentin Schneider <valentin.schneider@....com>,
Mel Gorman <mgorman@...hsingularity.net>,
Pawan Gupta <pawan.kumar.gupta@...ux.intel.com>,
Paolo Bonzini <pbonzini@...hat.com>, joel@...lfernandes.org,
vineeth@...byteword.org, Chen Yu <yu.c.chen@...el.com>,
Christian Brauner <christian.brauner@...ntu.com>,
Agata Gruza <agata.gruza@...el.com>,
Antonio Gomez Iglesias <antonio.gomez.iglesias@...el.com>,
graf@...zon.com, konrad.wilk@...cle.com, dfaggioli@...e.com,
rostedt@...dmis.org, derkling@...gle.com, benbjiang@...cent.com,
Aaron Lu <ziqian.lzq@...fin.com>
Subject: Re: [RFC PATCH v7 11/23] sched/fair: core wide cfs task priority
comparison
> +
> +bool cfs_prio_less(struct task_struct *a, struct task_struct *b)
> +{
> + struct sched_entity *se_a = &a->se, *se_b = &b->se;
> + struct cfs_rq *cfs_rq_a, *cfs_rq_b;
> + u64 vruntime_a, vruntime_b;
> +
> +#ifdef CONFIG_FAIR_GROUP_SCHED
> + while (!is_same_tg(se_a, se_b)) {
> + int se_a_depth = se_a->depth;
> + int se_b_depth = se_b->depth;
> +
> + if (se_a_depth <= se_b_depth)
> + se_b = parent_entity(se_b);
> + if (se_a_depth >= se_b_depth)
> + se_a = parent_entity(se_a);
> + }
> +#endif
> +
> + cfs_rq_a = cfs_rq_of(se_a);
> + cfs_rq_b = cfs_rq_of(se_b);
> +
> + vruntime_a = se_a->vruntime - cfs_rq_a->min_vruntime;
> + vruntime_b = se_b->vruntime - cfs_rq_b->min_vruntime;
> +
> + trace_printk("(%s/%d;%Ld,%Lu) ?< (%s/%d;%Ld,%Lu)\n",
> + a->comm, a->pid, vruntime_a, cfs_rq_a->core_lag,
> + b->comm, b->pid, vruntime_b, cfs_rq_b->core_lag);
> + if (cfs_rq_a != cfs_rq_b) {
> + vruntime_a -= calc_delta_fair(cfs_rq_a->core_lag,
> &a->se);
> + vruntime_b -= calc_delta_fair(cfs_rq_b->core_lag,
> &b->se);
This should be:
+ vruntime_a -= calc_delta_fair(cfs_rq_a->core_lag, se_a);
+ vruntime_b -= calc_delta_fair(cfs_rq_b->core_lag, se_b);
Thanks,
Vineeth
Powered by blists - more mailing lists