public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch] O(1) scheduler, -G1, 2.5.2-pre10, 2.4.17 (fwd)
@ 2002-01-10 14:19 Ingo Molnar
  2002-01-10 18:20 ` Linus Torvalds
                   ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Ingo Molnar @ 2002-01-10 14:19 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, Mike Kravetz, Anton Blanchard, george anzinger,
	Davide Libenzi, Rusty Russell


this is my latest update of the O(1) scheduler:

    http://redhat.com/~mingo/O(1)-scheduler/sched-O1-2.5.2-pre11-H1.patch

(i'll release the -H1 2.4 patch later today.)

this patch does two things:

First it cleans up the load balancer's interaction with the timer tick.
There are now two functions called from the timer tick: busy_cpu_tick()
and idle_cpu_tick(). It's completely up to the scheduler to use them
appropriately. There is IDLE_REBALANCE_TICK and BUSY_REBALANCE_TICK. We do
a busy rebalance every 250 msecs, and we do an idle rebalance on idle CPUs
every 1 msec. (or 10 msec on HZ=100 systems.) The point is to not leave
CPUs idle for a long time, but still not take tasks from well-affinized
runqueues at a too high frequency.

the other change is to use the 'interactivity' output of the load
estimator more agressively. This results in a usable X while more extreme
compilation jobs like 'make -j40 bzImage' are running. In fact i'm writing
this email while an infinite loop of 'make -j40' kernel compilation was
running (default priority, not reniced), on a dual-CPU box, and completely
forgot about it - until i tried to recompile the -H1 tree :-|

Changes in -H1 relative to 2.5.2-pre11:

 - Rusty Russel: get the alignment of the runqueues right and reduce array
   indexing overhead.

 - Kevin O'Connor, Robert Love: fix locking order bug in set_cpus_allowed()
   which bug is able to cause boot-time lockups on SMP systems.

 - Rusty Russell: fix rebalance tick definition if HZ < 100 in UML.

 - Rusty Russell: check for new_mask in set_cpus_allowed(), to be sure.

 - Rusty Russell: clean up rq_ macros so that HT can be done by changing
   just one of the macros.

 - Rusty Russell: remove rq->cpu.

 - Rusty Russell: remove cacheline padding from runqueue_t, it's pointless
   now.

 - Rusty Russell: sched.c comment fixes.

 - increase minimum timeslice length by 10 msec.

 - fix comments in sched.h

 - make rq->bitmap big-endian safe. (Anton Blanchard)

 - documented and cleaned up the load estimator bits, no functional
   changes apart from small speedups.

 - do init_idle() before starting up the init thread, this removes a race
   where we'd run the init thread on CPU#0 before init_idle() has been
   called.

(please let me know if i dropped any patch from anyone along the way, or
forgot to credit anyone.)

Comments, bug reports, suggestions welcome,

	Ingo


^ permalink raw reply	[flat|nested] 23+ messages in thread
* Re: [patch] O(1) scheduler, -G1, 2.5.2-pre10, 2.4.17 (fwd)
@ 2002-01-13 20:30 Dieter Nützel
  0 siblings, 0 replies; 23+ messages in thread
From: Dieter Nützel @ 2002-01-13 20:30 UTC (permalink / raw)
  To: Rusty Russell; +Cc: Ingo Molnar, Robert Love, Linux Kernel List

Rusty wrote:
> Agree.  Anyone who really has 3 CPU hogs on a 2 CPU machine, *and*
> never runs two more tasks to perturb the system, *and* notices that
> one runs twice the speed of the other two, *and* cares about fairness
> (ie. not RC5 etc), feel free to Email abuse to me.  Not Ingo, he has
> real work to do 8)

Or buy a third CPU...;-)

Regards,
	Dieter

BTW Not meant as flaming.
--
Dieter Nützel
Graduate Student, Computer Science

University of Hamburg
Department of Computer Science
@home: Dieter.Nuetzel@hamburg.de

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2002-01-14  8:40 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-01-10 14:19 [patch] O(1) scheduler, -G1, 2.5.2-pre10, 2.4.17 (fwd) Ingo Molnar
2002-01-10 18:20 ` Linus Torvalds
2002-01-10 20:11   ` george anzinger
2002-01-10 23:54     ` Ingo Molnar
2002-01-10 23:22   ` Ingo Molnar
2002-01-11  0:01   ` Ingo Molnar
2002-01-10 20:01 ` Robert Love
2002-01-10 23:44   ` Ingo Molnar
2002-01-10 21:57 ` Mike Kravetz
2002-01-11  0:48   ` Ingo Molnar
2002-01-10 23:04     ` Davide Libenzi
2002-01-11 21:42     ` François Cami
2002-01-11 21:46       ` Timothy Covell
     [not found]         ` <1010814327.2018.5.camel@phantasy>
2002-01-12 11:48           ` François Cami
2002-01-12 16:26           ` Timothy Covell
2002-01-12 20:00             ` Robert Love
2002-01-12 20:44           ` Davide Libenzi
2002-01-12 20:44             ` Timothy Covell
2002-01-12 23:56             ` Robert Love
2002-01-13  6:59             ` Rusty Russell
2002-01-14  8:40         ` Marian Jancar
2002-01-11 21:53       ` Mark Hahn
  -- strict thread matches above, loose matches on Subject: below --
2002-01-13 20:30 Dieter Nützel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox