From: Simon Arlott <simon@fire.lp0.eu>
To: Eric Dumazet <dada1@cosmosbay.com>
Cc: akpm@linux-foundation.org, Bill Irwin <bill.irwin@oracle.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
arjan@linux.intel.com
Subject: Re: [PATCH (update 3)] timer: Run calc_load halfway through each round_jiffies second
Date: Fri, 02 Mar 2007 17:32:51 +0000 [thread overview]
Message-ID: <45E85FC3.801@simon.arlott.org.uk> (raw)
In-Reply-To: <200703021735.55142.dada1@cosmosbay.com>
On 02/03/07 16:35, Eric Dumazet wrote:
> On Friday 02 March 2007 16:15, Simon Arlott wrote:
>> Whenever jiffies is started at a multiple of 5*HZ or wraps, calc_load is
>> run exactly on the second which is when tasks using round_jiffies will
>> be scheduled to run. This has a bad effect on the load average, making
>> it tend towards 1.00 if a task happens to run every time the load is
>> being calculated.
>>
>> This changes calc_load so that it updates load half a second after any
>> tasks scheduled using round_jiffies.
>
> I believe this patch is too complex/hazardous and may break exp decay
> computation.
Only for a single calculation whenever it has to adjust, which should only
happen every 49.7 days (on 32-bit archs). (Or 5 minutes after booting...
I always wondered why that happened and now I see it's initialised so it
always wraps early). Whilst it is in sync with jiffies it will not affect
the process - count is just set to the current value every time. Even with
NO_HZ because jiffies will be correct when calc_load is called.
> (Even if nobody care about avenrun[] those days :), do you ? )
>
> You could just change LOAD_FREQ from (5*HZ) to (5*HZ+1)
> You can see that 5.01 instead of 5.00 second gives the same EXP_xx values.
>
> So (5*HZ + 1) is safe. (because HZ >= 100)
On HZ=1000, this would cause the load average to be pushed towards +1.00
for up to 2 minutes every ~83 minutes with no obvious cause. (If a task
takes ~10-20ms to run, so 20 runs are needed at HZ=1000 before it passes
it again).
On HZ=100 it would happen every ~8 minutes for up to 10 seconds and never
be noticed.
Using 5*HZ+2 would move this to ~167 and ~17 minutes which would mitigate
the effect further still without changing the exp values.
1884.25 -> 1883.62
2014.15 -> 2014.02
2036.65 -> 2036.61
Will anyone notice if the load is adjusted slightly less frequently?
If this is considered preferable to adjusting calc_load to avoid almost all
round_jiffies scheduled tasks (some of which may take longer than ~15ms to
run), then I have no problems with it - I just needed something to stop my
driver changes doing odd things to the load average for other people. I'll
continue to run with this version, is it possible to add a Kconfig option
for it somewhere?
--
Simon Arlott
next prev parent reply other threads:[~2007-03-02 17:33 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-24 15:19 round_jiffies and load average Simon Arlott
2007-03-01 9:11 ` Simon Arlott
2007-03-01 18:52 ` [PATCH] timer: Add an initial 0.5s delay to calc_load Simon Arlott
2007-03-01 22:52 ` [PATCH (updated)] timer: Run calc_load halfway through each round_jiffies second Simon Arlott
2002-01-01 3:05 ` Pavel Machek
2007-03-05 22:35 ` Simon Arlott
2007-03-06 18:42 ` [PATCH (update 4)] " Simon Arlott
2007-03-06 22:20 ` [PATCH (updated)] " Chuck Ebbert
2007-03-01 23:10 ` Bill Irwin
2007-03-02 10:15 ` [PATCH (update 2)] " Simon Arlott
2007-03-02 15:15 ` [PATCH (update 3)] " Simon Arlott
2007-03-02 16:35 ` Eric Dumazet
2007-03-02 17:32 ` Simon Arlott [this message]
2007-03-02 18:03 ` Eric Dumazet
2007-03-02 20:14 ` Simon Arlott
2007-03-02 22:32 ` Eric Dumazet
2007-03-02 23:54 ` Simon Arlott
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=45E85FC3.801@simon.arlott.org.uk \
--to=simon@fire.lp0.eu \
--cc=akpm@linux-foundation.org \
--cc=arjan@linux.intel.com \
--cc=bill.irwin@oracle.com \
--cc=dada1@cosmosbay.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.