Interrupt distribution of a single flow across multiple processors
First Claim
1. A non-transitory computer-readable medium storing computer-executable instructions that when executed by a processor of a computing device causes the processor to:
- maintain a plurality of queues configured to hold interrupt requests created in response to packets received by a network device, wherein the interrupt requests interrupt a plurality of processors to process the packets, and wherein each queue is associated with a corresponding processor;
configure the network device to queue interrupt requests for a single flow of packets between a source and a destination, wherein the network device is configured to switch from inserting interrupt requests into a first queue to inserting into a second queue upon queuing a threshold number of interrupt requests for the single flow of packets into the first queue;
in response to receiving a packet from a remote computer, evaluate the packet to determine that the packet is part of the single flow between the source as the remote computer and a destination as a service being accessed by the remote computer;
determine a count of interrupt requests inserted into the first queue for the single flow;
responsive to the current count of interrupt requests being less than the threshold number of interrupt requests;
(i) construct an interrupt request for the packet; and
(ii) queue the interrupt request into the first queue; and
control the network device to interrupt multiple processors for the single flow of packets by inserting the interrupt requests for the single flow of packets into different queues of the plurality of queues.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods, and other embodiments that interrupt multiple processors to process packets of a single flow are described. In one embodiment, a method includes maintaining a plurality of queues to hold interrupt requests created for packets received by a network device. Each queue is associated with a processor that will be interrupted by interrupt requests to process packets. The network device is configured to control how to queue interrupt requests created for a flow of packets. The network device is configured such that when a threshold number of interrupt requests created for the flow of packets have been inserted within a queue, subsequent interrupt requests created for subsequently received packets of the flow are inserted in a different queue. In this way, the network device is controlled to interrupt multiple processors for the flow of packets by queuing interrupt requests for the flow into different queues.
12 Citations
16 Claims
-
1. A non-transitory computer-readable medium storing computer-executable instructions that when executed by a processor of a computing device causes the processor to:
-
maintain a plurality of queues configured to hold interrupt requests created in response to packets received by a network device, wherein the interrupt requests interrupt a plurality of processors to process the packets, and wherein each queue is associated with a corresponding processor; configure the network device to queue interrupt requests for a single flow of packets between a source and a destination, wherein the network device is configured to switch from inserting interrupt requests into a first queue to inserting into a second queue upon queuing a threshold number of interrupt requests for the single flow of packets into the first queue; in response to receiving a packet from a remote computer, evaluate the packet to determine that the packet is part of the single flow between the source as the remote computer and a destination as a service being accessed by the remote computer; determine a count of interrupt requests inserted into the first queue for the single flow; responsive to the current count of interrupt requests being less than the threshold number of interrupt requests; (i) construct an interrupt request for the packet; and (ii) queue the interrupt request into the first queue; and control the network device to interrupt multiple processors for the single flow of packets by inserting the interrupt requests for the single flow of packets into different queues of the plurality of queues. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computing system, comprising:
-
a processor connected to memory; and a module stored on a non-transitory computer readable medium and configured with instructions that when executed by the processor cause the processor to; maintain a plurality of queues configured to hold interrupt requests created in response to packets received by a network device, wherein the interrupt requests interrupt a plurality of processors to process the packets, and wherein each queue is associated with a corresponding processor; configure the network device to queue interrupt requests for a single flow of packets between a source and a destination, wherein the network device is configured to switch from inserting interrupt requests into a first queue to inserting into a second queue upon queuing a threshold number of interrupt requests for the single flow of packets into the first queue; in response to receiving a tunnel packet comprising an overlay packet and an underlay packet; (i) parse the underlay packet to determine that the tunnel packet corresponds to the single flow between the source and the destination; and (ii) queue the tunnel packet; and control the network device to interrupt multiple processors for the single flow of packets by inserting interrupt requests for the single flow of packets into different queues of the plurality of queues. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A computer-implemented method, the computer-implemented method involving a computing device comprising a processor, and the computer-implemented method comprising:
-
maintaining, by the processor, a plurality of queues configured to hold interrupt requests created in response to packets received by a network device, wherein the interrupt requests interrupt a plurality of processors to process the packets, and wherein each queue is associated with a corresponding processor; configuring, by the processor, the network device to queue interrupt requests for a single flow of packets between a source and a destination, wherein the network device is configured to switch from inserting interrupt requests into a first queue to inserting into a second queue upon queuing a threshold number of interrupt requests for the single flow of packets into the first queue; in response to receiving a packet from a remote computer, evaluating the packet to determine that the packet is part of the single flow of packets between the source as the remote computer and a destination as a service being accessed by the remote computer; determining a count of interrupt requests inserted into the first queue for the single flow of packets; responsive to the count of interrupt requests triggering the threshold number of interrupt requests; (i) selecting a different queue from the plurality of queues for queueing the interrupt requests for the single flow of packets; (ii) constructing an interrupt request for the packet received; and (iii) queuing the interrupt request into the different queue of the plurality of queues; and controlling, by the processor, the network device to interrupt multiple processors for the single flow of packets by inserting the interrupt requests for the single flow of packets into different queues of the plurality of queues. - View Dependent Claims (13, 14, 15, 16)
-
Specification