login
Header Space

 
 

Re: [announce] CFS-devel, performance improvements

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Ingo Molnar <mingo@...>
Cc: <linux-kernel@...>, Peter Zijlstra <a.p.zijlstra@...>, Mike Galbraith <efault@...>
Date: Friday, September 14, 2007 - 7:46 am

Hi,

On Thu, 13 Sep 2007, Ingo Molnar wrote:


Ingo, you should have read the rest of the paragraph too, I said "it's 
needed for a good task placement", I didn't say anything about time 
distribution.
Try to start a few niced busy loops and then try some interactivity tests.
You should also increase the granularity, the rather small time slices can
cover up a lot of bad scheduling decisions.


You're forgetting that only a few days before that announcement, the worst 
issues had been fixed, which at that time I hadn't taken into account yet.


Did you read the rest of mail? I said a little bit more than that, which 
actually explains this already in large parts.
(BTW this mail also has one example where I almost begged you to explain 
me some of the CFS features in response to your splitup request - no 
response.)

Accuracy is an important aspect, but it's not really the primary goal. 
As I said I wanted a correct mathematical model of CFS, but due to the 
complexity of CFS (of which a lot has been removed now in CFS-devel) it 
was rather difficult to produce such a model.
Producing an accurate model is meant as a _tool_ for further 
transformations, e.g. to analyze where are further simplifications 
possible, where can the 64bit math be replaced with something simpler 
without reducing scheduling quality significantly.
The added accuracy increases of course the complexity, but compared to the 
already existing complexity it was still less (at least according to the 
lmbench numbers), so IMO it's worth it. The advantage is that I didn't had 
to worry about any effects of unexpected rounding errors. This scheduler 
has to work with a wide range of clock implementations and AFAICT it's 
impossible to guarantee that it work in any situation, it may not 
break down completely, but I couldn't exclude unexplainable anomalities, 
especially after seeing the problems in the early CFS version, which got 
merged.
As I also mentioned this is only part of the problem (but to which early 
CFS version significantly contributed). The main problem were the limits, 
once the limits are exceeded, that overflow/underflow time is simply lost 
and that is what finally resulted in the misbehaviour. The rounding 
problems were one possible cause but not the only one. Other possibilities 
would require more complex scheduling pattern, where de-/enqueuing of 
tasks would push some tasks into these limits. Prime suspect here was the 
sleeper bonus and the question was: is it possible to accumulate the 
bonus, is it possible to force the punishment onto specific tasks.

The complexity of CFS makes it now hard to quantify the problem, it's easy
to say that it will work in most cases, but e.g. the rounding fixes 
changed more the common case but not really the worst case. The point is 
what would cost to be a little more acurate and as proved with my patch 
not much, but in the end we would have a more reliable scheduler, that 
not only works well in the common cases.

Anyway, as I said already earlier, with the step to an absolute virtual 
time the biggest error source is gone, so in a way you also proved my 
point that it's worth it, even if you don't want to admit it.

bye, Roman
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[announce] CFS-devel, performance improvements, Ingo Molnar, (Tue Sep 11, 4:04 pm)
Re: [announce] CFS-devel, performance improvements, Roman Zippel, (Wed Sep 12, 6:17 pm)
Re: [announce] CFS-devel, performance improvements, Willy Tarreau, (Thu Sep 13, 7:08 pm)
Re: [announce] CFS-devel, performance improvements, Roman Zippel, (Fri Sep 14, 9:10 am)
Re: [announce] CFS-devel, performance improvements, Willy Tarreau, (Fri Sep 14, 1:54 pm)
Re: [announce] CFS-devel, performance improvements, Ingo Molnar, (Thu Sep 13, 8:47 am)
Re: [announce] CFS-devel, performance improvements, Roman Zippel, (Fri Sep 14, 7:46 am)
Re: [announce] CFS-devel, performance improvements, Peter Zijlstra, (Thu Sep 13, 7:35 am)
Re: [announce] CFS-devel, performance improvements, Roman Zippel, (Thu Sep 13, 8:14 am)
Re: [announce] CFS-devel, performance improvements, Peter Zijlstra, (Thu Sep 13, 8:44 am)
Re: [announce] CFS-devel, performance improvements, Peter Zijlstra, (Fri Sep 14, 7:16 am)
Re: [announce] CFS-devel, performance improvements, Ingo Molnar, (Thu Sep 13, 5:19 am)
Re: [announce] CFS-devel, performance improvements, debian developer, (Thu Sep 13, 3:34 am)
Re: [announce] CFS-devel, performance improvements, debian developer, (Thu Sep 13, 3:17 am)
Re: [announce] CFS-devel, performance improvements, Mike Galbraith, (Wed Sep 12, 2:20 am)
Re: [announce] CFS-devel, performance improvements, Rob Hussey, (Tue Sep 11, 9:16 pm)
Re: [announce] CFS-devel, performance improvements, Rob Hussey, (Thu Sep 13, 4:42 am)
Re: [announce] CFS-devel, performance improvements, Ingo Molnar, (Thu Sep 13, 5:06 am)
Re: [announce] CFS-devel, performance improvements, Rob Hussey, (Thu Sep 13, 5:24 am)
Re: [announce] CFS-devel, performance improvements, Ingo Molnar, (Thu Sep 13, 5:31 am)
Re: [announce] CFS-devel, performance improvements, Rob Hussey, (Thu Sep 13, 5:36 am)
Re: [announce] CFS-devel, performance improvements, Ingo Molnar, (Thu Sep 13, 7:48 am)
Re: [announce] CFS-devel, performance improvements, Rob Hussey, (Thu Sep 13, 9:47 pm)
Re: [announce] CFS-devel, performance improvements, Kyle Moffett, (Fri Sep 14, 2:59 am)
Re: [announce] CFS-devel, performance improvements, Rob Hussey, (Thu Sep 13, 10:26 pm)
Re: [announce] CFS-devel, performance improvements, Rob Hussey, (Thu Sep 13, 5:43 am)
Re: [announce] CFS-devel, performance improvements, Rob Hussey, (Thu Sep 13, 6:17 am)
Re: [announce] CFS-devel, performance improvements, Roman Zippel, (Tue Sep 11, 8:42 pm)
Re: [announce] CFS-devel, performance improvements, Ingo Molnar, (Thu Sep 13, 3:52 am)
Re: [announce] CFS-devel, performance improvements, Roman Zippel, (Thu Sep 13, 8:35 am)
Re: [announce] CFS-devel, performance improvements, Sam Ravnborg, (Thu Sep 13, 3:01 pm)
Re: [announce] CFS-devel, performance improvements, Roman Zippel, (Fri Sep 14, 8:26 am)
Re: [announce] CFS-devel, performance improvements, Ingo Molnar, (Thu Sep 13, 10:28 am)
Re: [announce] CFS-devel, performance improvements, Roman Zippel, (Thu Sep 13, 12:50 pm)
Re: [announce] CFS-devel, performance improvements, Arjan van de Ven, (Fri Sep 14, 11:26 am)
Re: [announce] CFS-devel, performance improvements, Roman Zippel, (Fri Sep 14, 10:50 am)
Re: [announce] CFS-devel, performance improvements, Arjan van de Ven, (Fri Sep 14, 11:56 am)
Re: [announce] CFS-devel, performance improvements, Roman Zippel, (Fri Sep 14, 11:13 am)
Re: [announce] CFS-devel, performance improvements, Kyle Moffett, (Thu Sep 13, 2:28 pm)
Re: [announce] CFS-devel, performance improvements, Peter Zijlstra, (Thu Sep 13, 3:08 pm)
Re: [announce] CFS-devel, performance improvements, Peter Zijlstra, (Thu Sep 13, 1:06 pm)
Re: [announce] CFS-devel, performance improvements, Roman Zippel, (Fri Sep 14, 8:04 am)
Re: [announce] CFS-devel, performance improvements, Peter Zijlstra, (Fri Sep 14, 8:17 am)
Re: [announce] CFS-devel, performance improvements, Peter Zijlstra, (Thu Sep 13, 1:09 pm)
speck-geostationary