Embedded Linux, pthreads and scheduling

Jaap-Jan Boor jjboor at aimsys.nl
Fri Oct 1 16:47:20 EST 2004


On 30-sep-04, at 19:39, Stephen Williams wrote:

> [This is probably not unique to ppc linux, but it is imbedded
> and I am running linux on an embedded pc in this case...]
> I have a multi-threaded (pthreads) application running on an
> embedded PPC. One of the threads operates a scanner video input,
> and I want to give it (and only it) high priority, so that if
> a device driver wakes it up, it is scheduled as close to "now"
> as possible.
> I code the thread in question to capp pthread_setschedparam
> to set its policy to SCHED_FIFO and the priority to some
> number >0. I'm using glibc-ppc_4xx-2.3.1 as packaged in the
> Denx ELDK-3.0. Can I expect this to work? Is any priority >0
> enough to get it priority over other threads, or do I need
> to give it a high (i.e. 99) priority to get past the sliding
> priorities of threads with default scheduling?

yes, if you run this program as root a priority >1 and class
SCHED_FIFO should work as expected.

> For the particular case I'm seeing, it seems to *not* have
> any effect. My interrupt handler is activated (I see on the
> scope) and in the first few cases the response is immediate,
> but sometimes the response is delayed significantly.

Possible. What kernel version do you use? In my experience
a 2.4.x kernel with O(1) scheduler, preemptible kernel patch and low
latency patch still have significant delays (> 5 ms) sometimes.
A 2.4 kernel without these patches can have much longer response times.
I didn't experiment with the 2.6 kernel on this particular
system yet but 2.6 includes the O(1) scheduler and preemtible
kernel patch.

By the way, do you not share a lock with a lower priority thread?
If the lower priority thread has the lock, your high priority
thread needs to wait until it's finished (unlocks).


> Where
> I look for the problem may depend on whether the collective
> understanding is that the SCHED_FIFO has the effect I expect.
> -- 
> Steve Williams                "The woods are lovely, dark and deep.
> steve at icarus.com           But I have promises to keep,
> http://www.icarus.com         and lines to code before I sleep,
> http://www.picturel.com       And lines to code before I sleep."
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded

More information about the Linuxppc-embedded mailing list