Skip to contentSkip to conversation

updated 2.4 O(1) scheduler patches

PATCH New Robert Love 1 participant 1 message Apr 22, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 updated 2.4 O(1) scheduler patches

An updated version of Ingo Molnar's multiqueue O(1) scheduler is available at:

http://www.kernel.org/pub/linux/kernel/people/rml/sched

for kernels 2.4.18 and 2.4.19-pre7.

This patch has the following changes over Ingo's -K3 release and what is in Alan's -ac tree:

- remove wake_up_sync and friends, we don't need them now
- abstract away access to need_resched
- load_balance optimizations and cleanup
- fix scheduler deadlock on some platforms
- sched_yield optimizations and cleanup
- better use of MAX_RT_PRIO define instead of magic numbers
- misc. code cleanups
- misc. fixes and optimizations

and most importantly:

- backport the migration_thread and associated code to 2.4

and also the following changes since my initial patch:

- include linux/interrupt.h in sched.c
- use yield() where needed

The migration_thread code allows arch-independent `pushing' of tasks from one CPU to another. This allows the implementation of a reliable set_cpus_allowed method for use in the kernel as well as things like task cpu affinity interfaces.

The migration_thread code used in this patch is actually newer than what is in 2.5.8 - it contains the interrupt-off fix pointed out by Erich Focht and William Lee Irwin's new migration_init code.

This is not suggested for inclusion in mainline 2.4. 2.4 != 2.5.

Enjoy,

Robert Love