public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Peter Williams <pwil3058@bigpond.net.au>
To: "Siddha, Suresh B" <suresh.b.siddha@intel.com>
Cc: Andrew Morton <akpm@osdl.org>,
	"Chen, Kenneth W" <kenneth.w.chen@intel.com>,
	Con Kolivas <kernel@kolivas.org>, Ingo Molnar <mingo@elte.hu>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Mike Galbraith <efault@gmx.de>,
	Nick Piggin <nickpiggin@yahoo.com.au>
Subject: Re: [PATCH] sched: fix evaluation of skip_for_load in move_tasks()
Date: Wed, 26 Apr 2006 10:35:55 +1000	[thread overview]
Message-ID: <444EC06B.2080804@bigpond.net.au> (raw)
In-Reply-To: <20060425171521.B24677@unix-os.sc.intel.com>

Siddha, Suresh B wrote:
> On Wed, Apr 26, 2006 at 09:23:32AM +1000, Peter Williams wrote:
>> Siddha, Suresh B wrote:
>>> I think we need to change this to
>>> 	if (skip_for_load && idx < this_best_prio && idx == busiest_best_prio)
>>> 		skip_for_load = !busiest_best_prio_seen;
>>>
>>> Otherwise we will reset skip_for_load to '0' even for the tasks whose prio is 
>>> less than this_best_prio but not equal to busiest_best_prio.
>> And why is that a problem?  The intention of this code is to make sure 
>> at least one busiest_best_prio task doesn't get moved as a result of the 
>> "skip for reasons of load weight" mechanism being overridden by the "idx 
>> < this_best_prio" exception.  I can't see how this intention is being 
>> subverted.
> 
> There might be scenarios where we will endup moving other priority tasks(
> not those with busiest_best_prio) which will still become highest priority
> on new queue. This may or may not be bad. But this was not our intention
> with the intended code, right?

I considered this (as part of the original code to allow override of the 
skip for cases where moving a task will make it the best priority on the 
CPU -- NB no extra caveats about finding the best priority task which 
meets the criteria) and decided that it wasn't worth worrying about as 
the complexity of the code required to handle it would be considerable.

Also, because we are actually moving a bigger load than is required to 
balance the total weighted loads on the two queues, there's an argument 
that we should move the smallest one that meets the requirement.  With 
these conflicting arguments, it seems best just to move the first one we 
find that meets the criteria and is movable.

Load balancing is probabilistic at best and extra effort trying to be 
perfect will be wasted.  This is even more the case when you take into 
account the fact that as soon as you release the locks on the queues 
everything is highly likely to change anyway.

I figured that this code is consistent with the original load balancing 
code in this regard.

Peter
-- 
Peter Williams                                   pwil3058@bigpond.net.au

"Learning, n. The kind of ignorance distinguishing the studious."
  -- Ambrose Bierce

      reply	other threads:[~2006-04-26  0:35 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-25  3:08 [PATCH] sched: fix evaluation of skip_for_load in move_tasks() Peter Williams
2006-04-25 16:28 ` Siddha, Suresh B
2006-04-25 23:23   ` Peter Williams
2006-04-26  0:15     ` Siddha, Suresh B
2006-04-26  0:35       ` Peter Williams [this message]

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=444EC06B.2080804@bigpond.net.au \
    --to=pwil3058@bigpond.net.au \
    --cc=akpm@osdl.org \
    --cc=efault@gmx.de \
    --cc=kenneth.w.chen@intel.com \
    --cc=kernel@kolivas.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=nickpiggin@yahoo.com.au \
    --cc=suresh.b.siddha@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox