I am using QNX 6.3.2 core on IXP425 ARMBE.
I have a process (Process 1) which opens a UDP multicast socket and
blocks on a recvfrom until it receives a packet for the multicast
group, it puts the data received into a database and then does a
sendto, sending data out to the multicast group.
Data is received every 3 to 4ms after sending data to the multcast
This process is running at priority 12.
I have another process (Process 2) which runs for 30ms then blocks for
This process is running at priority 10 in FIFO scheduling.
I have noticed that the recvfrom in process 1 does not unblock until
process 2 blocks, this delays my sendto by upto 30ms.
If process 2 scheduling is set to round robin then the recvfrom waits
until the process 2 timeslices, this delays my sendto by upto 4ms.
It looks like the priority 12 process is waiting for the priority 10
process to block or timeslice.
Is this correct/expected?
I need to reply to data received as quickly as possible.
Do I have to raise the priority of io-net to make the recvfrom unblock
as soon as a packet of data is received?
Why does the recvfrom/io-net not inherit the priority of process 1
Thanks for the help,