sched: disable IPIs while polling wakeup queue before idle
The scheduler polls the wakeup queue when idle for a short time before HLTing in order to avoid the expensive HLT instruction if a wakeup arrives early. This patch extends this to also disable remote wakeups during the polling period, reducing the waking cpu's need to issue an IPI, whicj requires an exit. This helps synchronous multithreaded workloads, where threads block and wake each other. Together with the following patch, netperf throughtput increases from ~17Gbps to ~19Gbps, and the context switch benchmark improves from $ run tests/tst-ctxsw.so 345 colocated 5761 apart 633 nopin to $ run tests/tst-ctxsw.so 347 colocated 598 apart 467 nopin
Loading
Please register or sign in to comment