US 12,015,563 B2
Management of resource affinities in computing systems having multiple cores
Dmitry Malloy, Redmond, WA (US); Alireza Dabagh, Kirkland, WA (US); Gabriel Silva, Seattle, WA (US); Khoa To, Redmond, WA (US); Omar Cardona, Bellevue, WA (US); and Donald Stanwyck, Carnation, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Sep. 25, 2020, as Appl. No. 17/033,111.
Application 17/033,111 is a continuation of application No. 15/459,256, filed on Mar. 15, 2017, granted, now 10,826,841.
Claims priority of provisional application 62/430,485, filed on Dec. 6, 2016.
Prior Publication US 2021/0105221 A1, Apr. 8, 2021
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/50 (2006.01); G06F 9/455 (2018.01); H04L 47/125 (2022.01); H04L 47/625 (2022.01); H04L 49/90 (2022.01)
CPC H04L 47/627 (2013.01) [G06F 9/5033 (2013.01); H04L 47/125 (2013.01); G06F 9/45558 (2013.01); G06F 9/5077 (2013.01); H04L 49/90 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A method for network traffic management in a computing device having a network interface controller operatively coupled to a main processor with multiple cores, the method comprising:
in response to receiving, at the network interface controller, packets associated with a communication flow, assigning, at the network interface controller, the received packets (i) to a virtual port of the network interface controller, the virtual port having multiple queues and (ii) to one of the multiple queues in the virtual port based on parameters of the communication flow, the one of the multiple queues being affinitized with a first core of the main processor; and
while the first core is executing network processing operations related to the packets assigned to the one of the multiple queues of the virtual port,
receiving, at the network interface controller from the main processor, a command to affinitize the one of the multiple queues with a second core of the main processor instead of the first core, wherein the command is issued in response to determining that the first core has a utilization level lower than a threshold indicative of a low utilization level, and that the second core has a current utilization level that is higher than the threshold and lower than another threshold indicative of a high utilization level; and
in response to the received command,
modifying an entry in a table on the network interface controller to indicate that the one of the multiple queues is affinitized with the second core instead of the first core.