Re: [PATCH] 2.4.18 scheduler bugs

Alan Cox (alan@lxorguk.ukuu.org.uk)
Fri, 15 Mar 2002 21:39:52 +0000 (GMT)


> - ksoftirqd() - change daemon nice(2) value from 19 to -19.
>
> SoftIRQ servicing was less important than the most lowly of batch
> tasks. This patch makes it more important than all but the realtime
> tasks.

Bad idea - the right fix to this is to stop using ksoftirqd so readily
under load. If it bales after 20 iterations life is good. As shipped life
is bad.

Once ksoftirq triggers its because we are seriously overloaded (or without
fixing its use slightly randomly). In that case we want other stuff to
do work before we potentially unleash the next flood.

> - reschedule_idle() - smp_send_reschedule when setting idle's need_resched
> Idle tasks nowdays don't spin waiting for need->resched to change,
> they sleep on a halt insn instead. Therefore any setting of
> need->resched on an idle task running on a remote CPU should be
> accompanied by a cross-processor interrupt.

You can already tell the kernel to poll for idle tasks (and since newer intel
CPUS seem to gain nothing from hlt might as well on those)

-
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/