diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-02-08 17:48:19 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-02-08 17:48:18 -0800 |
| commit | 07cd7cd92a2a6670845eba69b78e3d151d1f9743 (patch) | |
| tree | 561ea129e62645a76c08c94e8698a5c12d726072 /kernel | |
| parent | 0c9dc102d9ad614db425c8dbadbfa81d73964ea6 (diff) | |
| parent | 9c32e3289912434c28b9babd9ef47fd12ad5f762 (diff) | |
Merge "sched: fix bug in auto adjustment of group upmigrate/downmigrate"
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/sched/hmp.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/kernel/sched/hmp.c b/kernel/sched/hmp.c index 6379de764236..5de0bac5e27e 100644 --- a/kernel/sched/hmp.c +++ b/kernel/sched/hmp.c @@ -953,8 +953,8 @@ unsigned int __read_mostly sysctl_sched_restrict_cluster_spill; unsigned int __read_mostly sysctl_sched_short_burst; unsigned int __read_mostly sysctl_sched_short_sleep = 1 * NSEC_PER_MSEC; -static void -_update_up_down_migrate(unsigned int *up_migrate, unsigned int *down_migrate) +static void _update_up_down_migrate(unsigned int *up_migrate, + unsigned int *down_migrate, bool is_group) { unsigned int delta; @@ -968,7 +968,8 @@ _update_up_down_migrate(unsigned int *up_migrate, unsigned int *down_migrate) *up_migrate >>= 10; *up_migrate *= NSEC_PER_USEC; - *up_migrate = min(*up_migrate, sched_ravg_window); + if (!is_group) + *up_migrate = min(*up_migrate, sched_ravg_window); *down_migrate /= NSEC_PER_USEC; *down_migrate *= up_down_migrate_scale_factor; @@ -983,14 +984,14 @@ static void update_up_down_migrate(void) unsigned int up_migrate = pct_to_real(sysctl_sched_upmigrate_pct); unsigned int down_migrate = pct_to_real(sysctl_sched_downmigrate_pct); - _update_up_down_migrate(&up_migrate, &down_migrate); + _update_up_down_migrate(&up_migrate, &down_migrate, false); sched_upmigrate = up_migrate; sched_downmigrate = down_migrate; up_migrate = pct_to_real(sysctl_sched_group_upmigrate_pct); down_migrate = pct_to_real(sysctl_sched_group_downmigrate_pct); - _update_up_down_migrate(&up_migrate, &down_migrate); + _update_up_down_migrate(&up_migrate, &down_migrate, true); sched_group_upmigrate = up_migrate; sched_group_downmigrate = down_migrate; } |
