Re: sched_yield: delete sysctl_sched_compat_yield

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Ingo Molnar <mingo@...>
Cc: Zhang, Yanmin <yanmin_zhang@...>, Arjan van de Ven <arjan@...>, Andrew Morton <akpm@...>, LKML <linux-kernel@...>
Date: Monday, December 3, 2007 - 7:02 am

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.

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
sched_yield: delete sysctl_sched_compat_yield, Zhang, Yanmin, (Tue Nov 27, 5:33 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Arjan van de Ven, (Tue Nov 27, 6:57 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Nick Piggin, (Thu Nov 29, 10:46 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Zhang, Yanmin, (Thu Nov 29, 11:15 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Nick Piggin, (Thu Nov 29, 11:29 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Ingo Molnar, (Fri Nov 30, 6:08 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Zhang, Yanmin, (Mon Dec 3, 5:29 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Ingo Molnar, (Mon Dec 3, 6:05 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Zhang, Yanmin, (Tue Dec 4, 2:40 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Nick Piggin, (Mon Dec 3, 12:27 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Ingo Molnar, (Mon Dec 3, 4:45 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Zhang, Yanmin, (Mon Dec 3, 5:41 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Ingo Molnar, (Mon Dec 3, 6:17 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Nick Piggin, (Mon Dec 3, 5:17 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Ingo Molnar, (Mon Dec 3, 5:57 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Nick Piggin, (Mon Dec 3, 6:15 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Ingo Molnar, (Mon Dec 3, 6:33 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Nick Piggin, (Mon Dec 3, 7:02 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Ingo Molnar, (Mon Dec 3, 7:37 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Nick Piggin, (Mon Dec 3, 9:02 pm)
RE: sched_yield: delete sysctl_sched_compat_yield, David Schwartz, (Mon Dec 3, 1:04 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Chris Friesen, (Mon Dec 3, 1:37 pm)
RE: sched_yield: delete sysctl_sched_compat_yield, David Schwartz, (Mon Dec 3, 3:12 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Chris Friesen, (Mon Dec 3, 3:56 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Mark Lord, (Mon Dec 3, 5:39 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Ingo Molnar, (Mon Dec 3, 5:48 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Mark Lord, (Mon Dec 3, 5:57 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Ingo Molnar, (Mon Dec 3, 6:05 pm)
RE: sched_yield: delete sysctl_sched_compat_yield, David Schwartz, (Mon Dec 3, 8:30 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Nick Piggin, (Mon Dec 3, 10:09 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Mark Lord, (Mon Dec 3, 6:18 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Ingo Molnar, (Mon Dec 3, 6:33 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Nick Piggin, (Mon Dec 3, 8:18 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Zhang, Yanmin, (Mon Dec 3, 5:35 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Zhang, Yanmin, (Fri Nov 30, 12:32 am)
Re: sched_yield: delete sysctl_sched_compat_yield, Arjan van de Ven, (Thu Nov 29, 10:51 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Nick Piggin, (Thu Nov 29, 11:02 pm)
Re: sched_yield: delete sysctl_sched_compat_yield, Ingo Molnar, (Tue Nov 27, 7:17 am)