Optimization of packet processing by delaying a processor from entering an idle state
First Claim
1. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by a processor, cause the processor to perform operations, comprising:
- receiving a network packet for processing at a first pipeline stage in a plurality of pipeline stages, the plurality of pipeline stages being respectively associated with a corresponding queue of a plurality of queues of network packets to be processed by the processor, the plurality of pipeline stages being distinct from the plurality of queues;
processing the network packet by a current pipeline stage;
upon completion of processing the network packet by the current pipeline stage, determining a queue length of a particular queue associated with an upstream pipeline stage for identifying an amount of processing time for the first pipeline stage in the plurality of pipeline stages, the upstream pipeline stage configured to process the network packet after the first pipeline stage; and
delaying the processor from entering the idle state for a duration of time based at least in part on determining that the queue length of the particular queue exceeds a threshold value.
1 Assignment
0 Petitions
Accused Products
Abstract
Some embodiments facilitate high performance packet-processing by enabling one or more processors that perform packet-processing to determine whether to enter an idle state or similar state. As network packets usually arrive or are transmitted in batches, the processors of some embodiments determine that more packets may be coming down a multi-stage pipeline upon receiving a first packet for processing. As a result, the processors may stay awake for a duration of time in anticipation of an incoming packet. Some embodiments keep track of the last packet that entered the first stage of the pipeline and compare that with a packet that the processor just processed in a pipeline stage to determine whether there may be more packets coming that need processing. In some embodiments, a processor may also look at a queue length of a queue associated with an upstream stage to determine whether more packets may be coming.
-
Citations
20 Claims
-
1. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by a processor, cause the processor to perform operations, comprising:
-
receiving a network packet for processing at a first pipeline stage in a plurality of pipeline stages, the plurality of pipeline stages being respectively associated with a corresponding queue of a plurality of queues of network packets to be processed by the processor, the plurality of pipeline stages being distinct from the plurality of queues; processing the network packet by a current pipeline stage; upon completion of processing the network packet by the current pipeline stage, determining a queue length of a particular queue associated with an upstream pipeline stage for identifying an amount of processing time for the first pipeline stage in the plurality of pipeline stages, the upstream pipeline stage configured to process the network packet after the first pipeline stage; and delaying the processor from entering the idle state for a duration of time based at least in part on determining that the queue length of the particular queue exceeds a threshold value. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method, comprising:
-
receiving a network packet for processing at a first pipeline stage in a plurality of pipeline stages, the plurality of pipeline stages being respectively associated with a corresponding queue of a plurality of queues of network packets to be processed by the processor, the plurality of pipeline stages being distinct from the plurality of queues; processing the network packet by a current pipeline stage; upon completion of processing the network packet by the current pipeline stage, determining a queue length of a particular queue associated with an upstream pipeline stage for identifying an amount of processing time for the first pipeline stage in the plurality of pipeline stages, the upstream pipeline stage configured to process the network packet after the first pipeline stage; and delaying the processor from entering the idle state for a duration of time based at least in part on determining that the queue length of the particular queue exceeds a threshold value. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system, comprising:
-
a processor; and a memory device including instructions that, when executed by the processor, cause the processor to; receive a network packet for processing at a first pipeline stage in a plurality of pipeline stages, the plurality of pipeline stages being respectively associated with a corresponding queue of a plurality of queues of network packets to be processed by the processor, the plurality of pipeline stages being distinct from the plurality of queues; process the network packet by a current pipeline stage; upon completion of processing the network packet by the current pipeline stage, determine a queue length of a particular queue associated with an upstream pipeline stage for identifying an amount of processing time for the first pipeline stage in the plurality of pipeline stages, the upstream pipeline stage configured to process the network packet after the first pipeline stage; and delay the processor from entering the idle state for a duration of time based at least in part on determining that the queue length of the particular queue exceeds a threshold value. - View Dependent Claims (17, 18, 19, 20)
-
Specification