5 ms·
With the current Linux scheduler, yield() means "I don't need to run and won't need to in the future either." and Linux places it at the very END of ALL SCHED_O
by zlynx 7y ago
With the current Linux scheduler, yield() means "I don't need to run and won't need to in the future either." and Linux places it at the very END of ALL SCHED_OTHER processes. Even if they are at Nice 20.
So it is no surprise that latencies are high, because a yielded thread has to wait for absolutely every other thread in the system before it gets a chance to run.