Dynamic core allocation
Abstract
Some embodiments provide a method for updating a core allocation among processes of a gateway datapath executing on a gateway computing device having multiple cores. The gateway datapath processes include a first set of data message processing processes to which a first set of the cores are allocated and a second set of processes to which a second set of the cores are allocated in a first core allocation. Based on data regarding usage of the cores, the method determines a second core allocation that allocates a third set of the cores to the first set of processes and a fourth set of the cores to the second set of processes. The method updates a load balancing operation to load balance received data messages over the third set of cores rather than the first set of cores. The method reallocates the cores from the first allocation to the second allocation.
Claims
exact text as granted — not AI-modified1 - 25 . (canceled)
26 . A method for allocating a plurality of cores of a gateway to processes executing on of the gateway, the method comprising:
based on a first core allocation, allocating (i) a first set of the cores to a first set of data message processing processes and (ii) a second set of the cores to a second set of processes; based on a set of data regarding usage of the plurality of cores, determining a second core allocation that allocates a third set of the cores to the first set of data message processing processes and a fourth set of the cores to the second set of processes, wherein the third set of cores has a different number of cores than the first set of cores and the fourth set of cores has a different number of cores than the second set of cores; updating a load balancing operation to load balance received data messages over the third set of cores rather than the first set of cores; and reallocating the cores from the first allocation to the second allocation.
27 . The method of claim 26 , wherein the third set of cores comprises all of the cores in the first set of cores and one or more additional cores from the second set of cores.
28 . The method of claim 27 , wherein:
at least a subset of the plurality of cores are eligible to be allocated to the first set of data message processing processes; each core eligible to be allocated to the first set of data message processing processes is associated with a corresponding queue; and the first set of data message processing processes comprises one data message processing thread corresponding to each core eligible to be allocated to the first set of data message processing processes.
29 . The method of claim 28 , wherein the data message processing threads corresponding to the one or more additional cores are in an inactive state before the reallocation of the cores from the first allocation to the second allocation.
30 . The method of claim 29 , wherein the reallocation of the cores occurs prior to the updating of the load balancing operation so as to avoid the load balancing operation assigning received data messages to an inactive data message processing thread.
31 . The method of claim 29 , wherein reallocating the cores from the first allocation to the second allocation comprises activating the data message processing threads corresponding to the one or more additional cores.
32 . The method of claim 26 , wherein the fourth set of cores comprises all of the cores in the second set of cores and one or more additional cores from the first set of cores.
33 . The method of claim 32 , wherein:
at least a subset of the plurality of cores are eligible to be allocated to the first set of data message processing processes; each core eligible to be allocated to the first set of data message processing processes is associated with a corresponding queue; and the first set of data message processing processes comprises one data message processing thread corresponding to each core eligible to be allocated to the first set of data message processing processes.
34 . The method of claim 26 , wherein:
the load balancing operation is a receive side scaling (RSS) operation that distributes received data messages over a set of queues corresponding to the set of cores allocated to the data message processing processes; and updating the load balancing operation comprises updating a table associated with the RSS operation.
35 . The method of claim 26 , wherein the set of data regarding usage of the plurality of cores comprises information regarding one or more types of data messages being received by the gateway datapath.
36 . The method of claim 35 , wherein determining the second core allocation based on the information regarding one or more types of data messages being received by the gateway datapath comprises projecting a utilization of cores in the second set of cores.
37 . The method of claim 26 , wherein the set of data regarding usage of the plurality of cores comprises utilization statistics for the first and second sets of cores.
38 . The method of claim 37 , wherein the utilization statistics received for the first and second sets of cores are used to calculate first and second aggregate core utilization for the first and second sets of cores respectively.
39 . The method of claim 37 , wherein the utilization statistics are received through a control plane.
40 . The method of claim 37 , wherein determining the second core allocation comprises:
determining that one of the first and second sets of cores is being utilized below a threshold rate; and identifying the second core allocation as a core allocation that allocates a core from the set of cores being utilized below the threshold rate to the other set of cores of the first and second sets of cores.
41 . A non-transitory machine readable medium storing a program that when executed by at least one processor allocates a plurality of cores of a gateway to processes executing on of the gateway, the program comprising sets of instructions for:
based on a first core allocation, allocating (i) a first set of the cores to a first set of data message processing processes and (ii) a second set of the cores to a second set of processes; based on a set of data regarding usage of the plurality of cores, determining a second core allocation that allocates a third set of the cores to the first set of data message processing processes and a fourth set of the cores to the second set of processes, wherein the third set of cores has a different number of cores than the first set of cores and the fourth set of cores has a different number of cores than the second set of cores; updating a load balancing operation to load balance received data messages over the third set of cores rather than the first set of cores; and reallocating the cores from the first allocation to the second allocation.
42 . The non-transitory machine readable medium of claim 41 , wherein:
the load balancing operation is a receive side scaling (RSS) operation that distributes received data messages over a set of queues corresponding to the set of cores allocated to the data message processing processes; and the set of instructions for updating the load balancing operation comprises a set of instructions for updating a table associated with the RSS operation.
43 . The non-transitory machine readable medium of claim 41 , wherein the set of data regarding usage of the plurality of cores comprises information regarding one or more types of data messages being received by the gateway datapath.
44 . The non-transitory machine readable medium of claim 43 , wherein the set of instructions for determining the second core allocation based on the information regarding one or more types of data messages being received by the gateway datapath comprises a set of instructions for projecting a utilization of cores in the second set of cores.
45 . The non-transitory machine readable medium of claim 41 , wherein the set of data regarding usage of the plurality of cores comprises utilization statistics for the first and second sets of cores.
46 . The non-transitory machine readable medium of claim 45 , wherein the utilization statistics received for the first and second sets of cores are used to calculate first and second aggregate core utilization for the first and second sets of cores respectively.
47 . The non-transitory machine readable medium of claim 45 , wherein the set of instructions for determining the second core allocation comprises sets of instructions for:
determining that one of the first and second sets of cores is being utilized below a threshold rate; and identifying the second core allocation as a core allocation that allocates a core from the set of cores being utilized below the threshold rate to the other set of cores of the first and second sets of cores.Join the waitlist — get patent alerts
Track US2023168947A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.