linux-scalability
[Top] [All Lists]

RE: app/sys stuff again...

To: PianoMan <clemej@xxxxxxxxxxxx>
Subject: RE: app/sys stuff again...
From: Dimitris Michailidis <dimitris@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 14 Aug 2000 21:50:39 -0700 (PDT)
Cc: linux-scalability@xxxxxxxxxxx
In-reply-to: <Pine.LNX.4.20.0008150024001.6891-100000@pianoman.cluster.toy>
Organization: SGI
Sender: owner-LinuxScalability@xxxxxxxxxxx
On 15-Aug-2000 PianoMan wrote:
> The problem I'm having now is that I can pin a process to a cpu (code to
> add the functionality to the prctl call was stolen from a patch Dimitris
> made to the kernel list a few month ago), and shut off all other
> scheduling/interrupts/and tasklets(not efficiently, but it seems to
> work)... and it works like a charm if I don't change the scheduler.  
> But when I change the process to SCHED_FIFO, with a priority of 99, it
> appearently gets scheduled on the System CPU, and softlocks the system (I
> have a dual proc machine, 1 system cpu, and one app cpu.. so if it gets
> scheduled on the system cpu, then nothing else can run until its
> done... its supposed to go on the app cpu)..... ugh.. soo close...

Heh.  I think I know what's doing this.  There's a bug in the current
scheduler that allows a runnable process to be considered for scheduling by
its current CPU even if it can no longer run on this CPU.  Basically this
means that if you try to pin a process to a CPU other than its current this
will not take effect until the CPU is taken away from the process somehow
(sleeping, preemption).  With a SCHED_FIFO it won't get preempted and I
suppose it doesn't sleep either so you're out of luck.  Try having the
process sleep for a moment and see if it behaves.

-- 
Dimitris Michailidis                    dimitris@xxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>