[Mesa-dev] [PATCH] Do not use sched_yield() on Linux

Adam Jackson ajax at redhat.com
Tue Jan 31 19:06:09 PST 2012


On 1/31/12 12:30 PM, Alan Swanson wrote:
> As discussed back in 2003, sched_yield() on Linux is no longer
> equivalent to other POSIX variations. From a LWN article; "This call
> used to simply move the process to the end of the run queue; now it
> moves the process to the "expired" queue, effectively cancelling the
> rest of the process's time slice. So a process calling sched_yield() now
> must wait until all other runnable processes in the system have used up
> their time slices before it will get the processor again."
>
> However its use on Linux has sneaked back in causing suboptimal
> performance such as reported by Simon Farnsworth on r600g. Use sleep on
> Linux instead.

Any reason why that can't be pthread_cond_wait() instead?  Explicit 
sleeps are a sin.

- ajax



More information about the mesa-dev mailing list