Messages in this thread | | | Date | Thu, 1 Mar 2007 15:10:03 -0800 | From | Bill Irwin <> | Subject | Re: [PATCH (updated)] timer: Run calc_load halfway through each round_jiffies second |
| |
On Thu, Mar 01, 2007 at 10:52:01PM +0000, 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. > Signed-off-by: Simon Arlott <simon@fire.lp0.eu> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Arjan van de Ven <arjan@linux.intel.com>
Well, it doesn't reintroduce the for_each_task() (not that it's present in similar form) loop in count_active_tasks(), so it doesn't bother me. You seem to have merely changed some offsets, which resolves the round_jiffies() clash. It's easy to envision similar degenerate cases, though I'm not sure we care enough to drop in a PRNG to handle them.
== wli - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |