All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: bharata@linux.vnet.ibm.com
Cc: linux-kernel@vger.kernel.org,
	Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>,
	Ingo Molnar <mingo@elte.hu>
Subject: Re: sched:
Date: Thu, 25 Sep 2008 11:14:27 +0200	[thread overview]
Message-ID: <1222334067.16700.190.camel@lappy.programming.kicks-ass.net> (raw)
In-Reply-To: <20080925042108.GA3663@in.ibm.com>

On Thu, 2008-09-25 at 09:51 +0530, Bharata B Rao wrote:
> Hi,
> 
> sched: Maintain only task entities in cfs_rq->tasks list.
> 
> cfs_rq->tasks list is used by the load balancer to iterate
> over all the tasks. Currently it holds all the entities
> (both task and group entities) because of which there is
> a need to check for group entities explicitly during load
> balancing. This patch changes the cfs_rq->tasks list to
> hold only task entities.

Looks fine. Thanks Bharata!

> Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
> CC: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
> CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
> CC: Ingo Molnar <mingo@elte.hu>
> ---
>  kernel/sched_fair.c |   26 +++++++++-----------------
>  1 file changed, 9 insertions(+), 17 deletions(-)
> 
> --- a/kernel/sched_fair.c
> +++ b/kernel/sched_fair.c
> @@ -586,11 +586,12 @@ account_entity_enqueue(struct cfs_rq *cf
>  	update_load_add(&cfs_rq->load, se->load.weight);
>  	if (!parent_entity(se))
>  		inc_cpu_load(rq_of(cfs_rq), se->load.weight);
> -	if (entity_is_task(se))
> +	if (entity_is_task(se)) {
>  		add_cfs_task_weight(cfs_rq, se->load.weight);
> +		list_add(&se->group_node, &cfs_rq->tasks);
> +	}
>  	cfs_rq->nr_running++;
>  	se->on_rq = 1;
> -	list_add(&se->group_node, &cfs_rq->tasks);
>  }
>  
>  static void
> @@ -599,11 +600,12 @@ account_entity_dequeue(struct cfs_rq *cf
>  	update_load_sub(&cfs_rq->load, se->load.weight);
>  	if (!parent_entity(se))
>  		dec_cpu_load(rq_of(cfs_rq), se->load.weight);
> -	if (entity_is_task(se))
> +	if (entity_is_task(se)) {
>  		add_cfs_task_weight(cfs_rq, -se->load.weight);
> +		list_del_init(&se->group_node);
> +	}
>  	cfs_rq->nr_running--;
>  	se->on_rq = 0;
> -	list_del_init(&se->group_node);
>  }
>  
>  static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se)
> @@ -1445,19 +1447,9 @@ __load_balance_iterator(struct cfs_rq *c
>  	if (next == &cfs_rq->tasks)
>  		return NULL;
>  
> -	/* Skip over entities that are not tasks */
> -	do {
> -		se = list_entry(next, struct sched_entity, group_node);
> -		next = next->next;
> -	} while (next != &cfs_rq->tasks && !entity_is_task(se));
> -
> -	if (next == &cfs_rq->tasks)
> -		return NULL;
> -
> -	cfs_rq->balance_iterator = next;
> -
> -	if (entity_is_task(se))
> -		p = task_of(se);
> +	se = list_entry(next, struct sched_entity, group_node);
> +	p = task_of(se);
> +	cfs_rq->balance_iterator = next->next;
>  
>  	return p;
>  }
> 
> Regards,
> Bharata.


  parent reply	other threads:[~2008-09-25  9:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-25  4:21 sched: Bharata B Rao
2008-09-25  4:23 ` sched: Maintain only task entities in cfs_rq->tasks list Bharata B Rao
2008-09-25  9:14 ` Peter Zijlstra [this message]
2008-09-25  9:19   ` sched: Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1222334067.16700.190.camel@lappy.programming.kicks-ass.net \
    --to=a.p.zijlstra@chello.nl \
    --cc=bharata@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=vatsa@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.