-
公开(公告)号:US20220066831A1
公开(公告)日:2022-03-03
申请号:US17008549
申请日:2020-08-31
Applicant: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Inventor: MATTHEW S. GATES , Joel E. Lilienkamp , Alex Veprinsky , Susan Agten
IPC: G06F9/50 , G06F12/0877
Abstract: Systems and methods are provided for lock-free thread scheduling. Threads may be placed in a ring buffer shared by all computer processing units (CPUs), e.g., in a node. A thread assigned to a CPU may be placed in the CPU's local run queue. However, when a CPU's local run queue is cleared, that CPU checks the shared ring buffer to determine if any threads are waiting to run on that CPU, and if so, the CPU pulls a batch of threads related to that ready-to-run thread to execute. If not, an idle CPU randomly selects another CPU to steak threads from, and the idle CPU attempts to dequeue a thread batch associated with the CPU from the shared ring buffer. Polling may be handled through the use of a shared poller array to dynamically distribute polling across multiple CPUs.