[linux-audio-dev] [Fwd: lowlatency patch for 2.2.13 optimized for SMP ?]

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: [linux-audio-dev] [Fwd: lowlatency patch for 2.2.13 optimized for SMP ?]
From: Benno Senoner (benno_AT_gardena.net)
Date: ti marras 30 1999 - 16:56:33 EST


Hi Paul,
today, on linux-kernel I asked if Ingos new lowlatency patch inlcludes the
SMP extensions,
here his answer: (he gave an advice how to make it perform well on SMP boxes)

maybe this will work for you ? (you must get his lowlatencycy-2.2.13 patch)

here is his post on linux-kernel:

http://kernelnotes.org/lnxlists/linux-kernel/lk_9911_02/msg00840.html

the patch is here:
http://www.redhat.com/~mingo/lowlatency-2.2.13-A1

Ingo's email address is: mingo_AT_chiara.csoma.elte.hu

PS: anyone experiencing lockups with the lowlatency-2.2.13 ?

Benno.

Ingo Molnar wrote:

> On Mon, 29 Nov 1999, Benno Senoner wrote:
>
> > Hi, I noticed that Ingo released a low-latency patch for the 2.2.13
> > kernel.
> >
> > 2.2.10-lowlatency was not optimized for SMP low-latency ( latencytest on
> > /proc stress gives high latencies).
> >
> > Does anyone (Ingo in particular) know if the 2.2.13 is SMP optimized ?
> > (spinlock changes)
>
> no, and i dont think it will ever be. The only and worst offender is the
> 'big kernel lock', which is much less of a problem in 2.3. We cannot
> generally reschedule at points that do a lock_kernel(). Maybe we could add
> a new lock_kernel_reschedule() function, but possibly you'll have to add
> this to gazillion places.
>
> there is a workaround: in reschedule_idle() whenever we wake up a RT
> process we could mark all running processes as 'reschedule ASAP' (set the
> need_resched flag). This guarantees that _someone_ will notice and
> reschedule eventually. (an SMP kernel is never worse than a UP kernel,
> latency-wise) This is only for RT tasks though. Do something like this at
> the beginning of reschedule_idle():
>
> if (policy != SCHED_OTHER)
> for (i = 0; i < smp_num_cpus; i++) {
> cpu = cpu_logical_map(i);
> tsk = cpu_curr(cpu);
> tsk->need_resched = 1;
> }
> /* continue doing the normal idle reschedule part */
>
> (this is of course an ugly hack, but if it makes a difference we can see
> how this could be done cleanly. It only affects RT tasks.)
>
> -- mingo


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:23:26 EST