pthread with SCHED_FIFO calling select() causing system deadlock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all

As the long subject indicates, but I'll elaborate the situation:

I have three pthreads reader/worker/writer. the reader and the writer are of the same priority and SCHED_FIFO policy while the worker has a lower priority and a SCHED_RR policy.
The reader is continuously calling select on multiple fds to read from, when data available it reads and puts them in a reader/worker queue. worker works then puts the result in a worker/writer queue. writer writes the result to some fds.

this program causes a system wide deadlock the moment it started when running on a uni-processor system. but it works perfectly (stress tested) when the three processes are of a SCHED_OTHER policy and the same priority. the synchronization mechanisms are pthread_mutex_lock/unlock and p_thread_cond_wait/signal

is there any conceptual flaw with using RT priorities with select() or with the mentioned synchronization mechanisms ? linux kernel is mainstream 2.6.24 and 2.6.29

Many thanks

Tayseer


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux