diff options
| author | Srivatsa Vaddagiri <vatsa@codeaurora.org> | 2015-02-16 16:42:59 +0530 |
|---|---|---|
| committer | Arvin Quilao <arquilao@gmail.com> | 2017-03-16 05:39:57 +0000 |
| commit | 695aa07edfd4d6c9f6675bde7c5aef9fb87ef5c0 (patch) | |
| tree | 09325b94594ddcf862076fc55bb1a9d25e22f12b /lib/mpi/mpi-bit.c | |
| parent | 5b7d255bb491272f1967fcf57a94d573b3bf47ac (diff) | |
sched: Fix bug in average nr_running and nr_iowait calculation
sched_get_nr_running_avg() returns average nr_running and nr_iowait
task count since it was last invoked. Fix several bugs in their
calculation.
* sched_update_nr_prod() needs to consider that nr_running count can
change by more than 1 when CFS_BANDWIDTH feature is used
* sched_get_nr_running_avg() needs to sum up nr_iowait count across
all cpus, rather than just one
* sched_get_nr_running_avg() could race with sched_update_nr_prod(),
as a result of which it could use curr_time which is behind a cpu's
'last_time' value. That would lead to erroneous calculation of
average nr_running or nr_iowait.
While at it, fix also a bug in BUG_ON() check in
sched_update_nr_prod() function and remove unnecessary nr_running
argument to sched_update_nr_prod() function.
Change-Id: I46737614737292fae0d7204c4648fb9b862f65b2
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
Diffstat (limited to 'lib/mpi/mpi-bit.c')
0 files changed, 0 insertions, 0 deletions
