Sean Boudreau(deleted)
|
Re: Prioritising Ethernet packets
|
Sean Boudreau(deleted)
01/07/2008 10:46 AM
post4087
|
Re: Prioritising Ethernet packets
On Thu, Jan 03, 2008 at 05:06:06AM -0500, Richard Thompson wrote:
> 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
The only way I could see this happening is if the driver
was processing packets at priority <= 10 but the default
is 21. If you start io-net with just the driver does
it show a thread at 21?
-seanb
|
|
|