I've been investigating how CPU knows when an OpenCL kernel running on GPU finishes. Are interrupts used? However, handling the interrupts can take even a longer time than the kernel runs. If the CPU uses polling, what's the frequency? I profiled the system calls and found that after each kernel invocation, there are exactly 5 yields. My guess is that those yields are used for the polling, but why only 5 times? Is it the case that after 5 polls, it switches to the interrupt mechanism?