Data affinity based scheme for mapping connections to CPUs in I/O adapter
First Claim
1. A method of scheduling packets in a multi-processor system comprising a plurality of processor units, a plurality of caches, wherein each of a distinct one of the processor units is associated with each of a distinct one of the caches, a plurality of multicast groups, wherein each multicast group includes a plurality of members, and a single network adapter, the method comprising:
- associating a distinct one of the processor units with each of a distinct one of the multicast groups;
receiving a multitude of data packets from the multicast groups via the single network adapter;
scheduling all of the data packets received from each of the multicast groups for processing by the one of the processor units associated with said each of the multicast groups;
handling all of a plurality of connections belonging to a given one of the multicast groups by the same one of the processor units; and
holding a single copy of each packet in a respective one of the caches associated with the processor unit that is processing the respective packet to be sent via the single network adapter to all members of a respective multicast group;
wherein the same data is transmitted by a single local thread to all members of a multicast group;
wherein a plurality of connections are provided for each of the processor units, and the scheduling all of the data packets received from each of the multicast groups for processing by the one of the processor units associated with said each of the multicast groups includes mapping all of the data packets received from each of the multicast groups to the connections provided for the processor unit associated with said each of the multicast groups.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system and computer program product is disclosed for scheduling data packets in a multi-processor system comprising a plurality of processor units and a multitude of multicast groups. The method comprises associating one of the processor units with each of the multicast groups, receiving a multitude of data packets from the multicast groups, and scheduling all of the data packets received from each of the multicast groups for processing by the one of the processor units associated with said each of the multicast groups. In one embodiment, scheduling is based on affinity of both transmit and received processing for multiple connections to a processor unit. In another embodiment, a system call is provided for transmitting the same data over multiple sockets. Additional system calls may be used for building multicast group socket lists.
19 Citations
17 Claims
-
1. A method of scheduling packets in a multi-processor system comprising a plurality of processor units, a plurality of caches, wherein each of a distinct one of the processor units is associated with each of a distinct one of the caches, a plurality of multicast groups, wherein each multicast group includes a plurality of members, and a single network adapter, the method comprising:
-
associating a distinct one of the processor units with each of a distinct one of the multicast groups; receiving a multitude of data packets from the multicast groups via the single network adapter; scheduling all of the data packets received from each of the multicast groups for processing by the one of the processor units associated with said each of the multicast groups; handling all of a plurality of connections belonging to a given one of the multicast groups by the same one of the processor units; and holding a single copy of each packet in a respective one of the caches associated with the processor unit that is processing the respective packet to be sent via the single network adapter to all members of a respective multicast group; wherein the same data is transmitted by a single local thread to all members of a multicast group; wherein a plurality of connections are provided for each of the processor units, and the scheduling all of the data packets received from each of the multicast groups for processing by the one of the processor units associated with said each of the multicast groups includes mapping all of the data packets received from each of the multicast groups to the connections provided for the processor unit associated with said each of the multicast groups. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A scheduling system for scheduling packets in a multi-processor system comprising a plurality of processor units, a plurality of caches, wherein each of a distinct one of the processor units is associated with each of a distinct one of the caches, a plurality of multicast groups, wherein each multicast group includes a plurality of members, and a single network adapter, the scheduling system comprising one or more of said processor units configured for:
-
associating a distinct one of the processor units with each of a distinct one of the multicast groups; receiving a multitude of data packets from the multicast groups via the single network adapter; scheduling all of the data packets received from each of the multicast groups for processing by the one of the processor units associated with said each of the multicast groups; handling all of a plurality of connections belonging to a given one of the multicast groups by the same one of the processor units; and holding a single copy of each packet in a respective one of the caches associated with the processor unit that is processing the respective packet to be sent via the single network adapter to all members of a respective multicast group; wherein the same data is transmitted by a single local thread to all members of a multicast group; wherein a plurality of connections are provided for each of the processor units, and the scheduling all of the data packets received from each of the multicast groups for processing by the one of the processor units associated with said each of the multicast groups includes mapping all of the data packets received from each of the multicast groups to the connections provided for the processor unit associated with said each of the multicast groups. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computer program product for scheduling packets in a multi-processor system comprising a plurality of processor units, a plurality of caches, wherein each of a distinct one of the processor units is associated with each of a distinct one of the caches, a plurality of multicast groups, wherein each multicast group includes a plurality of members, and a single network adapter, the computer program product comprising:
-
a computer usable hardware device having computer usable program code embodied therewith, the computer usable program code comprising; computer usable program code configured for; associating a distinct one of the processor units with each of a distinct one of the multicast groups; receiving a multitude of data packets from the multicast groups via the single network adapter; scheduling all of the data packets received from each of the multicast groups for processing by the one of the processor units associated with said each of the multicast groups; handling all of a plurality of connections belonging to a given one of the multicast groups by the same one of the processor units; and holding a single copy of each packet in a respective one of the caches associated with the processor unit that is processing the respective packet to be sent via the single network adapter to all members of a respective multicast group;
wherein the same data is transmitted by a single local thread to all members of a multicast group,wherein a plurality of connections are provided for each of the processor units, and the scheduling all of the data packets received from each of the multicast groups for processing by the one of the processor units associated with said each of the multicast groups includes mapping all of the data packets received from each of the multicast groups to the connections provided for the processor unit associated with said each of the multicast groups. - View Dependent Claims (15, 16, 17)
-
Specification