Re: [PATCH 1/2] sched: calculate_imbalance: Fix local->avg_load > sds->avg_load case

2013-09-16 Thread Peter Zijlstra
On Mon, Sep 16, 2013 at 12:06:08PM +0400, Vladimir Davydov wrote: > On 09/16/2013 09:52 AM, Peter Zijlstra wrote: > >On Sun, Sep 15, 2013 at 05:49:13PM +0400, Vladimir Davydov wrote: > >>- if (busiest->avg_load < sds->avg_load) { > >>+ if (busiest->avg_load <= sds->avg_load || > >>+ loca

Re: [PATCH 1/2] sched: calculate_imbalance: Fix local->avg_load > sds->avg_load case

2013-09-16 Thread Vladimir Davydov
On 09/16/2013 09:52 AM, Peter Zijlstra wrote: On Sun, Sep 15, 2013 at 05:49:13PM +0400, Vladimir Davydov wrote: In busiest->group_imb case we can come to calculate_imbalance() with local->avg_load >= busiest->avg_load >= sds->avg_load. This can result in imbalance overflow, because it is calcula

Re: [PATCH 1/2] sched: calculate_imbalance: Fix local->avg_load > sds->avg_load case

2013-09-15 Thread Peter Zijlstra
On Sun, Sep 15, 2013 at 05:49:13PM +0400, Vladimir Davydov wrote: > In busiest->group_imb case we can come to calculate_imbalance() with > local->avg_load >= busiest->avg_load >= sds->avg_load. This can result > in imbalance overflow, because it is calculated as follows > > env->imbalance = min( >

[PATCH 1/2] sched: calculate_imbalance: Fix local->avg_load > sds->avg_load case

2013-09-15 Thread Vladimir Davydov
In busiest->group_imb case we can come to calculate_imbalance() with local->avg_load >= busiest->avg_load >= sds->avg_load. This can result in imbalance overflow, because it is calculated as follows env->imbalance = min( max_pull * busiest->group_power, (sds->avg_load - local->avg_