Intel IXP400 manual Livelock Prevention, Dispatcher in Context of a Polling Mechanism

Models: IXP400

1 364
Download 364 pages 16.67 Kb
Page 272
Image 272

Intel® IXP400 Software

Access-Layer Components: Queue Manager (IxQMgr) API

2.When the NPE receives a packet, it updates the Rx queue with location of the buffer.

3.When the watermark is crossed the status flag gets updated corresponding to that queue.

4.The polling thread calls the dispatcher.

5.The dispatcher loop gets the status of the updated flag and resets it.

6.The dispatcher invokes the registered access component.

7.The access-layer components re-routes the call back to the client and the client gets the buffer pointer through the callback on the Rx queue through the access-layer.

Following this, the Intel XScale core may allocate a free buffer from the memory pool to the RxFree queue for the next incoming packet from the NPE.

Figure 91. Dispatcher in Context of a Polling Mechanism

 

 

 

1

Register callback

7

Get the Queue

 

 

 

 

 

 

User

 

Access

 

Qmgr

 

 

Callback

 

6

 

 

 

Component

Component

 

 

 

 

User Poll

4

 

 

 

5

 

 

thread

 

 

Get Queue-Status

 

 

 

 

 

 

 

Queue Status Bus

 

AQM

 

 

Hardware

 

Status

 

 

 

NPE

to NPEs

 

3

 

 

 

 

 

Flags

 

 

 

 

 

 

 

 

 

2

Low Group

 

High Group

 

 

0

 

 

31 32

 

 

63

 

 

 

 

 

 

 

B3804-01

18.10Livelock Prevention

Livelock occurs when a task cannot finish in an expected time due to it being interrupted. The livelock prevention feature allows the critical task as in case of voice processing, being serviced by a particular queue, to run for a given set of time without it being interrupted in event of a system overload. For this to happen, a periodic queue is assigned to the critical task. Periodic queues are defined as queues which generate an interrupt at a regular interval leading to a task that runs for a set length of time (periodic task). Sporadic queues are queues that can generate an interrupt at any time. Livelock prevention is used to ensure that a periodic task is not interrupted by servicing for queues set as sporadic. This is achieved by disabling notifications for sporadic queues while the periodic task is running. When the periodic task is completed the sporadic queues have their notifications re-enable. Any servicing required for sporadic queues will occur at this time.

April 2005

IXP400 Software Version 2.0

Programmer’s Guide

272

Document Number: 252539, Revision: 007

 

Page 272
Image 272
Intel IXP400 manual Livelock Prevention, Dispatcher in Context of a Polling Mechanism