PACKET PROCESSING WITH REDUCED LATENCY
First Claim
1. A driver circuit for reduced latency processing, said driver circuit comprising:
- a network stack circuit configured to;
transition from an idle state to a polling state in response to receiving an interrupt from a network interface;
process data from a data queue associated with said network interface, said processing in response to obtaining a queue lock associated with said data queue; and
enable interrupts on said network interface, and return to said idle state in response to determining absence of a yield on said queue lock; and
a queue lock circuit configured to;
provide said queue lock to a first requesting entity if said queue lock is available, wherein said requesting entity comprises said driver circuit and one or more user context processing modules;
record said yield on said queue lock if said queue lock is unavailable in response to a request from a second requesting entity; and
set said network stack circuit to said polling state in response to a release of said queue lock by said first requesting entity and the recording of said yield on said queue lock.
1 Assignment
0 Petitions
Accused Products
Abstract
Generally, this disclosure provides devices, methods and computer readable media for packet processing with reduced latency. The device may include a data queue to store data descriptors associated with data packets, the data packets to be transferred between a network and a driver circuit. The device may also include an interrupt generation circuit to generate an interrupt to the driver circuit. The interrupt may be generated in response to a combination of an expiration of a delay timer and a non-empty condition of the data queue. The device may further include an interrupt delay register to enable the driver circuit to reset the delay timer, the reset postponing the interrupt generation.
-
Citations
25 Claims
-
1. A driver circuit for reduced latency processing, said driver circuit comprising:
-
a network stack circuit configured to; transition from an idle state to a polling state in response to receiving an interrupt from a network interface; process data from a data queue associated with said network interface, said processing in response to obtaining a queue lock associated with said data queue; and enable interrupts on said network interface, and return to said idle state in response to determining absence of a yield on said queue lock; and a queue lock circuit configured to; provide said queue lock to a first requesting entity if said queue lock is available, wherein said requesting entity comprises said driver circuit and one or more user context processing modules; record said yield on said queue lock if said queue lock is unavailable in response to a request from a second requesting entity; and set said network stack circuit to said polling state in response to a release of said queue lock by said first requesting entity and the recording of said yield on said queue lock. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A network interface for reduced latency processing, said network interface comprising:
-
a data queue configured to store data descriptors associated with data packets, said data packets transferred between a network and a driver circuit; an interrupt generation circuit configured to generate an interrupt to said driver circuit, wherein said interrupt is generated based at least in part on at least one of an expiration of a delay timer and a non-empty condition of said data queue; and an interrupt delay register configured to enable said driver circuit to reset said delay timer, said reset postponing said interrupt generation. - View Dependent Claims (10, 11)
-
-
12. A method for reduced latency processing, said method comprising:
-
transitioning a network stack circuit from an idle state to a polling state in response to receiving an interrupt from a network interface; processing data from a data queue associated with said network interface, said processing performed by said network stack circuit in response to obtaining a queue lock associated with said data queue; enabling interrupts on said network interface, and returning said network stack circuit to said idle state in response to determining absence of a yield on said queue lock; providing said queue lock to a first requesting entity if said queue lock is available, wherein said requesting entity comprises a driver circuit and one or more user context processing modules; recording said yield on said queue lock if said queue lock is unavailable in response to a request from a second requesting entity; and setting said network stack circuit to said polling state in response to a release of said queue lock by said first requesting entity and the recording of said yield on said queue lock. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A computer-readable storage medium having instructions stored thereon which when executed by a processor result in the following operations for reduced latency processing, said operations comprising:
-
transitioning a network stack circuit from an idle state to a polling state in response to receiving an interrupt from a network interface; processing data from a data queue associated with said network interface, said processing performed by said network stack circuit in response to obtaining a queue lock associated with said data queue; enabling interrupts on said network interface, and returning said network stack circuit to said idle state in response to determining absence of a yield on said queue lock; providing said queue lock to a first requesting entity if said queue lock is available, wherein said requesting entity comprises a driver circuit and one or more user context processing modules; recording said yield on said queue lock if said queue lock is unavailable in response to a request from a second requesting entity; and setting said network stack circuit to said polling state in response to a release of said queue lock by said first requesting entity and the recording of said yield on said queue lock. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification