* [Linux-ia64] O(1) scheduler for 2.4.18-ia64
@ 2002-07-16 16:23 Erich Focht
0 siblings, 0 replies; only message in thread
From: Erich Focht @ 2002-07-16 16:23 UTC (permalink / raw)
To: linux-ia64
Hi,
for those working with IA64 systems: at
http://home.arcor.de/efocht/sched/MQO1_ia64-ef7-2.4.18.patch.bz2
you can find a port of the O(1) scheduler. It is the "old" one, i.e.
not having SCHED_BATCH, etc. But it has some important changes compared
to my last port:
- Uses the "complex" macros which release the RQ lock before switching
context. This is a MUST on IA64, as there is a potential deadlock
when the context numbers are wrapped around.
- cpu_idle() is changed such that platforms which just return from
pm_idle() don't call schedule() in a tight loop. This was the reason
for massive cache line bouncings when some CPUs were idle as they
not only locked their RQs but also loaded nr_running (on the same cache
line as the lock) for every other RQ. The position of nr_running inside
the RQ structure is changed, such that it doesn't share the cacheline
with lock.
- load_balance() only steals at most one task. Before it could sometimes
steal half of the tasks of the most loaded CPU. This is OK on small
machines but on large ones the tasks were bounced around a while until
"settling" on a particular CPU. Maybe this is not yet optimal, but it
improves hackbench results.
The patch applies to 2.4.18 + 4th ia64 patch from David. It also can
be applied to the vanilla 2.4.18, (kernel/timer.c needs to be edited by
hand), but this port is not intended to be an alternative to Robert Love's
backports... It is for IA64 and/or the node affine scheduler.
Best regards,
Erich
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-07-16 16:23 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-07-16 16:23 [Linux-ia64] O(1) scheduler for 2.4.18-ia64 Erich Focht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox