Re: Information about move_tasks return

From: Randy.Dunlap
Date: Tue Nov 23 2004 - 00:11:12 EST


Darren Hart wrote:
On Mon, 2004-11-22 at 08:16 -0400, Cícero wrote:

hi

I am looking for the result of the function move_task in

kernel/sched.c , I have observed that it returns an int value and as I
print it with printk.

I have created a int variable 'results_move_task' which capture the result of

move_task and I print it with printk("%d",results_move_task); I
observed that it often returns the value '1' and sometimes it returns
'2' or more. Is it really correct?


/*
* move_tasks tries to move up to max_nr_move tasks from busiest to this_rq,
* as part of a balancing operation within "domain". Returns the number of
* tasks moved.
*
* Called with both runqueues locked.
*/
static int move_tasks(runqueue_t *this_rq, int this_cpu, runqueue_t *busiest,
unsigned long max_nr_move, struct sched_domain *sd,
enum idle_type idle)
{
...


So as the "documentation" states, it returns the number of tasks
actually moved. For instance, The balancing code may request 4 tasks be
moved, but for various reasons, only 2 were actually moved to other
CPUs, move_tasks() would return 2.

and there are a few cases/places where the move target count
is limited to only 1.

--
~Randy
-
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/