Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1389971 > unrolled thread
| Started by | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| First post | 2016-04-28 12:30 +0200 |
| Last post | 2016-04-29 05:20 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH v3 4/6] sched/fair: Remove scale_load_down() for load_avg Peter Zijlstra <peterz@infradead.org> - 2016-04-28 12:30 +0200
Re: [PATCH v3 4/6] sched/fair: Remove scale_load_down() for load_avg Yuyang Du <yuyang.du@intel.com> - 2016-04-28 12:50 +0200
Re: [PATCH v3 4/6] sched/fair: Remove scale_load_down() for load_avg Yuyang Du <yuyang.du@intel.com> - 2016-04-29 05:20 +0200
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Date | 2016-04-28 12:30 +0200 |
| Subject | Re: [PATCH v3 4/6] sched/fair: Remove scale_load_down() for load_avg |
| Message-ID | <rsRmN-1va-7@gated-at.bofh.it> |
On Tue, Apr 05, 2016 at 12:12:29PM +0800, Yuyang Du wrote: > Currently, load_avg = scale_load_down(load) * runnable%. The extra scaling > down of load does not make much sense, because load_avg is primarily THE > load and on top of that, we take runnable time into account. > > We therefore remove scale_load_down() for load_avg. But we need to > carefully consider the overflow risk if load has higher range > (2*SCHED_FIXEDPOINT_SHIFT). The only case an overflow may occur due > to us is on 64bit kernel with increased load range. In that case, > the 64bit load_sum can afford 4251057 (=2^64/47742/88761/1024) > entities with the highest load (=88761*1024) always runnable on one > single cfs_rq, which may be an issue, but should be fine. Even if this > occurs at the end of day, on the condition where it occurs, the > load average will not be useful anyway. I do feel we need a little more words on the actual ramification of overflowing here. Yes, having 4m tasks on a single runqueue will be somewhat unlikely, but if it happens, then what will the user experience? How long (if ever) does it take for numbers to correct themselves etc.. > Signed-off-by: Yuyang Du <yuyang.du@intel.com> > [update calculate_imbalance] > Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> This SoB Chain suggests you wrote it and Vincent send it on, yet this email is from you and Vincent isn't anywhere. Something's not right.
[toc] | [next] | [standalone]
| From | Yuyang Du <yuyang.du@intel.com> |
|---|---|
| Date | 2016-04-28 12:50 +0200 |
| Message-ID | <rsRGa-1DA-23@gated-at.bofh.it> |
| In reply to | #1389971 |
On Thu, Apr 28, 2016 at 12:25:32PM +0200, Peter Zijlstra wrote: > On Tue, Apr 05, 2016 at 12:12:29PM +0800, Yuyang Du wrote: > > Currently, load_avg = scale_load_down(load) * runnable%. The extra scaling > > down of load does not make much sense, because load_avg is primarily THE > > load and on top of that, we take runnable time into account. > > > > We therefore remove scale_load_down() for load_avg. But we need to > > carefully consider the overflow risk if load has higher range > > (2*SCHED_FIXEDPOINT_SHIFT). The only case an overflow may occur due > > to us is on 64bit kernel with increased load range. In that case, > > the 64bit load_sum can afford 4251057 (=2^64/47742/88761/1024) > > entities with the highest load (=88761*1024) always runnable on one > > single cfs_rq, which may be an issue, but should be fine. Even if this > > occurs at the end of day, on the condition where it occurs, the > > load average will not be useful anyway. > > I do feel we need a little more words on the actual ramification of > overflowing here. > > Yes, having 4m tasks on a single runqueue will be somewhat unlikely, but > if it happens, then what will the user experience? How long (if ever) > does it take for numbers to correct themselves etc.. > > > Signed-off-by: Yuyang Du <yuyang.du@intel.com> > > [update calculate_imbalance] > > Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> > > This SoB Chain suggests you wrote it and Vincent send it on, yet this > email is from you and Vincent isn't anywhere. Something's not right. Since you started to review patches, I just sent you more, :) What a coincidance. I actually don't know the rules for this SoB, let me learn how to do this co-signed-off.
[toc] | [prev] | [next] | [standalone]
| From | Yuyang Du <yuyang.du@intel.com> |
|---|---|
| Date | 2016-04-29 05:20 +0200 |
| Message-ID | <rt78d-7lC-5@gated-at.bofh.it> |
| In reply to | #1389971 |
On Thu, Apr 28, 2016 at 12:25:32PM +0200, Peter Zijlstra wrote: > On Tue, Apr 05, 2016 at 12:12:29PM +0800, Yuyang Du wrote: > > Currently, load_avg = scale_load_down(load) * runnable%. The extra scaling > > down of load does not make much sense, because load_avg is primarily THE > > load and on top of that, we take runnable time into account. > > > > We therefore remove scale_load_down() for load_avg. But we need to > > carefully consider the overflow risk if load has higher range > > (2*SCHED_FIXEDPOINT_SHIFT). The only case an overflow may occur due > > to us is on 64bit kernel with increased load range. In that case, > > the 64bit load_sum can afford 4251057 (=2^64/47742/88761/1024) > > entities with the highest load (=88761*1024) always runnable on one > > single cfs_rq, which may be an issue, but should be fine. Even if this > > occurs at the end of day, on the condition where it occurs, the > > load average will not be useful anyway. > > I do feel we need a little more words on the actual ramification of > overflowing here. > > Yes, having 4m tasks on a single runqueue will be somewhat unlikely, but > if it happens, then what will the user experience? How long (if ever) > does it take for numbers to correct themselves etc.. Well, regarding the experience, this should be a stress test study. But if the system can miraculously survive, and we end up in the scenario that we have a ~0ULL load_sum and the rq suddently dropps to 0 load, it would take roughly 2 seconds (=32ms*64) to converge. This time is the bound.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web