Re: [V2 2/2] sched: update cfs_rq weight earlier in enqueue_entity

From: Paul Turner
Date: Mon Jul 01 2013 - 10:07:51 EST


Could you please restate the below?

On Mon, Jul 1, 2013 at 5:33 AM, Lei Wen <leiwen@xxxxxxxxxxx> wrote:
> Since we are going to calculate cfs_rq's average ratio by
> runnable_load_avg/load.weight

I don't understand what you mean by this.

>, if not increase the load.weight prior to
> enqueue_entity_load_avg, it may lead to one cfs_rq's avg ratio higher
> than 100%.
>

Or this.

> Adjust the sequence, so that all ratio is kept below 100%.
>
> Signed-off-by: Lei Wen <leiwen@xxxxxxxxxxx>
> ---
> kernel/sched/fair.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 07bd74c..d1eee84 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -1788,8 +1788,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags)
> * Update run-time statistics of the 'current'.
> */
> update_curr(cfs_rq);
> - enqueue_entity_load_avg(cfs_rq, se, flags & ENQUEUE_WAKEUP);
> account_entity_enqueue(cfs_rq, se);
> + enqueue_entity_load_avg(cfs_rq, se, flags & ENQUEUE_WAKEUP);

account_entity_enqueue is independent of enqueue_entity_load_avg;
their order should not matter.

Further, should we restore the reverted amortization commit (improves
context switch times) enqueue_entity_load_avg needs to precede
account_entity_enqueue as it may update se->load.weight.

> update_cfs_shares(cfs_rq);
>
> if (flags & ENQUEUE_WAKEUP) {
> --
> 1.7.10.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/