Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
BroadcastCommunity.qnx.com will be offline from May 31 6:00pm until June 2 12:00AM for upcoming system upgrades. For more information please go to https://community.qnx.com/sf/discussion/do/listPosts/projects.bazaar/discussion.bazaar.topc28418
Forum Topic - Prioritising Ethernet packets: Page 1 of 5 (5 Items)
   
Prioritising Ethernet packets  
I am using QNX 6.3.2 core on an intel IXP425 ARMBE.

I have a process (Process 1) which opens a UDP multicast socket and blocks on a recvfrom (2s timeout) until it receives 
a packet for the multicast group. When a packet is received it puts the data into a database and then does a sendto, 
sending data out to the multicast group.
Data is received every 3 or 4ms after sending data to the multcast group.
This process is running at priority 12.

I have another process (Process 2) which runs for 30ms then blocks for 100ms.
This process is running at priority 10 using 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.

Why does the recvfrom/io-net not inherit the priority of process 1 (12)?

Do I have to raise the priority of io-net to make the recvfrom unblock as soon as a packet of data is received? (io-net 
has one thread at priority 21 and seven threads at priority 10).

Thanks for the help,
Rich