Messages in this thread | | | From | "Shi, Alex" <> | Date | Wed, 6 Apr 2011 21:28:38 +0800 | Subject | RE: [PATCH] sched: recover sched_yield task running time increase |
| |
>> > NACK >> > >> > This was switched off by default and under >> > the sysctl sched_compat_yield for a reason. >> > >> > Reintroducing it under that sysctl option >> > may be acceptable, but by default it would >> > be doing the wrong thing for other workloads. >> >> I can implement this as sysctl option. But when I checked again the man >> page of sched_yield. I have some concerns on this. >> >> ---- >> int sched_yield(void); >> >> DESCRIPTION >> A process can relinquish the processor voluntarily without blocking by calling sched_yield(). >> The process will then be moved to the end of the queue for its static priority and a new process >> gets to run. >> ---- >> >> If a application calls sched_yield system call, most of time it is not >> want to be launched again right now. so the man page said "the caller >> process will then be moved to the _end_ of the queue..." > >Moving a yielding nice 0 task behind a SCHED_IDLE (or nice 19) task >could be incredibly painful.
Good reminder! Do you have more detailed idea on this?
| |