Techniques to utilize queues for network interface devices
First Claim
Patent Images
1. A method comprising:
- receiving, at a host system having receive queues, packets from a plurality of network interfaces, each of the network interfaces associated with at least one receive queue from the receive queues, wherein the plurality of network interfaces are capable to use any of the receive queues;
providing availability of a plurality of processors for packet processing; and
providing allocation of packet processing among the plurality of processors based on a table which associates one or more of the receive queues with a processor of the plurality of processors based on a hash value, wherein the hash value corresponding to the processor is to be determined based on connection-specific information in a header of each of the packets, wherein the processor queues are to store the packets from the receive queues, wherein the table is to associate hash values with the receive queues based on an unload analysis, wherein the unload analysis is to consider which processor from the plurality of processors is least busy based on;
fullness of the one or more receive queues associated with the processor and processor utilization.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques to allocate packets for processing among multiple processor(s). In an embodiment, capability to receive packets from a plurality of network interfaces may be provided, where each of the network interfaces is associated with at least one receive queue. the plurality of network interfaces may use any of the receive queues. Packet processing may be performed among a plurality of processors. Other embodiments are also disclosed.
-
Citations
25 Claims
-
1. A method comprising:
-
receiving, at a host system having receive queues, packets from a plurality of network interfaces, each of the network interfaces associated with at least one receive queue from the receive queues, wherein the plurality of network interfaces are capable to use any of the receive queues; providing availability of a plurality of processors for packet processing; and providing allocation of packet processing among the plurality of processors based on a table which associates one or more of the receive queues with a processor of the plurality of processors based on a hash value, wherein the hash value corresponding to the processor is to be determined based on connection-specific information in a header of each of the packets, wherein the processor queues are to store the packets from the receive queues, wherein the table is to associate hash values with the receive queues based on an unload analysis, wherein the unload analysis is to consider which processor from the plurality of processors is least busy based on;
fullness of the one or more receive queues associated with the processor and processor utilization. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus comprising:
-
a memory to receive packets, wherein the packets are provided by a plurality of network interfaces; a plurality of processors; and an intermediate driver to; provide capability to the plurality of network interfaces to use receive queues associated with any of the network interfaces; and provide allocation of packet processing among the plurality of processors based on a table which associates one or more of the receive queues with a processor of the plurality of processors based on a hash value, wherein the hash value corresponding to the processor is to be determined based on connection-specific information in a header of each of the packets, wherein the processor queues are to store the packets from the receive queues, wherein the table is to associate hash values with the receive queues based on an unload analysis, wherein the unload analysis is to consider which processor from the plurality of processors is least busy based on;
fullness of the one or more receive queues associated with the processor and processor utilization. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable medium comprising instructions stored thereon which when executed by a machine cause the machine to:
-
provide availability of a plurality of processors for packet processing; provide capability to a plurality of network interfaces to use receive queues associated with any of the network interfaces; and provide allocation of packet processing among the plurality of processors based on a table which associates one or more of the receive queues with a processor of the plurality of processors based on a hash value, wherein the hash value corresponding to the processor is to be determined based on connection-specific information in a header of each of the packets, wherein the processor queues are to store the packets from the receive queues, wherein the table is to associate hash values with the receive queues based on an unload analysis, wherein the unload analysis is to consider which processor from the plurality of processors is least busy based on;
fullness of the one or more receive queues associated with the processor and processor utilization. - View Dependent Claims (17, 18, 19)
-
-
20. A system comprising:
-
a computing platform including a plurality of processors and a memory device; a plurality of network interfaces, each capable to transfer a packet into a payload buffer stored in the memory device; a bus capable of providing intercommunication between the computing platform and the plurality of network interfaces; and code that is capable of causing any of the processors to be operable to; provide capability to the plurality of network interfaces to use any receive queue associated with any of the plurality of network interfaces; and provide allocation of packet processing among the plurality of processors based on a table which associates one or more of the receive queues with a processor of the plurality of processors based on a hash value, wherein the hash value corresponding to the processor is to be determined based on connection-specific information in a header of each of the packets, wherein the processor queues are to store the packets from the receive queues, wherein the table is to associate hash values with the receive queues based on an unload analysis, wherein the unload analysis is to consider which processor from the plurality of processors is least busy based on;
fullness of the one or more receive queues associated with the processor and processor utilization. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification