On Monday 03 December 2007 21:33, Ingo Molnar wrote:While it is technically allowed to do anything with SCHED_OTHER class, putting the thread to the back of the runnable tasks, or at least having it give up _some_ priority (like the old scheduler) is less surprising than having it do _nothing_. I mean, if firefox really works best if sched_yield does nothing, it surely shouldn't be calling it at all (nothing to do with it being open source or not). Wheras JVMs (eg. that have garbage collectors call yield), presumably get quite a lot of tuning, and that was probably done with the less surprising (and more common) sched_yield behaviour. I'm just wondering whether the outcome was the right one. I did, but I haven't always followed the scheduler discussions closely recently. I was surprised to find it hasn't changed much. I appreciate you can never do exactly the right thing for everyone and you can't (and don't want, by definition) to make behaviour exactly the same. Clearly the current default is far less aggressive (almost noop), and the compat behaviour is probably more aggressive in most cases than the old scheduler. I would have thought looking for a middle ground might be a good idea. Or just ignore firefox and get them to fix it, if the occasional stalls are during really high scheduler stressing workloads (do you have a pointer to that thread, btw?). sched_yield is defined to put the calling task at the end of the queue for the given priority level as you know (ie. at the end of all other priority 0 tasks, for SCHED_OTHER). So, while SCHED_OTHER technically allows _any_ task to be picked, I think it would be least surprising to have the calling task go to the end of the queue, rather than not doing very much at all... I dislike a wholesale change in behaviour like that. Especially when it is changing behaviour of yield among SCHED_BATCH tasks versus yield among SCHED_OTHER tasks. --
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Brandeburg, Jesse | RE: [regression] e1000e broke e1000 (was: Re: [ANNOUNCE] e1000 toe1000e migration ... |
| Linus Torvalds | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| IKEDA Munehiro | [RFD] Documentation/stable_api_nonsense.txt translated into Japanese |
git: | |
| Paweł Staszewski | rib_trie / Fix inflate_threshold_root. Now=15 size=11 bits |
| Gerrit Renker | [PATCH 28/37] dccp: Integration of dynamic feature activation - part 3 (client side) |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| Les Andrzejewski | X386/WD90C31/SUMSUNG SYNC MASTER 4 |
| Rob Coleman | S3 |
| Doug Evans | Re: Stabilizing Linux |
| Dave `geek' Gymer | WARNING (was Re: New afio release) |
