A non-transitory computer-readable storage medium storing instructions, which when executed by one or more processors of a network device, causes the network device to perform operations for orchestrating execution of a polling thread of a software-based switching program on a heterogeneous multicore processor, wherein the heterogeneous multicore processor includes a plurality of clusters of processing cores, wherein processing cores in the same cluster of the plurality of clusters have the same processing capacity, and wherein processing cores in different clusters of the plurality of clusters have different processing capacities, the operations comprising:
- causing the polling thread to be executed on a first processing core in a first cluster of the plurality of clusters;
- determining a value indicative of a number of active processing cycles used by the polling thread, wherein the active processing cycles used by the polling thread include processing cycles during which the polling thread is reading packets from an input queue, processing packets for forwarding, and placing packets into an output queue;
- determining whether the value is greater than a high threshold associated with the first processing core or lower than a low threshold associated with the first processing core;
- and
- causing the polling thread to be moved to a second processing core in a second cluster of the plurality of clusters in response to a determination that the value is greater than the high threshold associated with the first processing core or lower than the low threshold associated with the first processing core, wherein the second processing core has a processing capacity that is higher or lower than the first processing core.