All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Piggin <piggin@cyberone.com.au>
To: Nick Piggin <piggin@cyberone.com.au>
Cc: Andrew Theurer <habanero@us.ibm.com>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: Nick's scheduler v17
Date: Sun, 26 Oct 2003 17:43:48 +1100	[thread overview]
Message-ID: <3F9B6D24.7050003@cyberone.com.au> (raw)
In-Reply-To: <3F99CE07.6030905@cyberone.com.au>



Nick Piggin wrote:

>
>
> Andrew Theurer wrote:
>
>> On Friday 24 October 2003 13:10, Nick Piggin wrote:
>>
>>> Hi,
>>> http://www.kerneltrap.org/~npiggin/v17/
>>>
>>> Still working on SMP and NUMA. Some (maybe) interesting things I put 
>>> in are
>>> - Sequential CPU balancing so you don't get a big storm of balances
>>> every 1/4s.
>>> - Balancing is trying to err more on the side of caution, I have to 
>>> start
>>>  analysing it more thoroughly though.
>>>
>>
>> +
>> +    *imbalance /= 2;
>> +    *imbalance = (*imbalance + FPT - 1) / FPT;
>>
>> I think I see what is going on here, but would something like this 
>> work out better?
>>
>
> Yeah, sorry its not well commented. Its still changing quite quickly.
>
>>
>>     *imbalance = min(this_load - load_avg, load_avg - max_load)
>>
>> That way you take just enough to either have busiest_queue or 
>> this_rq's length be the load_avg.  I suppose you could take even 
>> less, but IMO, the /=2 is what I really don't like.  Perhaps:
>>
>
> That is _exactly_ what I had before! Thats probably the way to go. Thanks
> for having a look at it.
>
>>
>>
>> *imbalance = min(this_load - load_avg, load_avg - max_load);
>> *imbalance = (*imbalance + FPT - 1) / FPT;
>>
>> This should work well for intranode balances, internode balances may 
>> need a little optimization, since the load_avg really does not really 
>> represent the load avg of the two nodes in question, just one cpu 
>> from one of them and all the cpus from another.
>>

Oh, actually, after my path, load_avg represents the load average of _all_
the nodes. Have a look at find_busiest_node. Which jogs my memory of why
its not always a good idea to do your *imbalance min(...) thing (I actually
saw this happening).

5 CPUs, 4 processes running on one cpu. load_avg would be 0.8 for all cpus.
balancing doesn't happen. I have to think about this a bit more...



  reply	other threads:[~2003-10-26  6:45 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-24 18:10 Nick's scheduler v17 Nick Piggin
2003-10-24 20:17 ` cliff white
2003-10-24 21:49 ` Andrew Theurer
2003-10-25  1:12   ` Nick Piggin
2003-10-26  6:43     ` Nick Piggin [this message]
2003-10-27 17:02       ` Andrew Theurer
2003-10-27 23:13         ` Nick Piggin

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=3F9B6D24.7050003@cyberone.com.au \
    --to=piggin@cyberone.com.au \
    --cc=habanero@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    /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.