On Tue, 2011-08-30 at 14:35 -0400, Daniel Kahn Gillmor wrote:
> On 08/29/2011 02:40 PM, Ben Hutchings wrote:
> > This is what I've added for 2.6.32-36.  Any review would be appreciated.
> 
> Thanks, Ben!
> 
> Two crashes i have documentation for show the division-by-zero error
> happening in find_busiest_group, which was patched in the initial diff i
> submitted, but not in your patch below.
> 
> Perhaps this is because the divisor there is sds.total_pwr instead of
> group->cpu_power.
> 
> My diff also included cleanups to a possible division-by-zero in
> 
>   * update_group_shares_cpu (divisor: sd_rq_weight), and

It seems fairly clear to me that the caller ensures this parameter is
non-zero.  And there has been no sign of this in any traceback.

>   * find_busiest_queue (divisor: power)
> 
> which are missing in your patch.
> 
> Here are backtraces showing find_busiest_group as the innermost function
> at the time of the error:
[...]

The code dump actually corresponds to this line in update_sg_lb_stats(),
which has been compiled inline with find_busiest_group():

        sgs->avg_load = (sgs->group_load * SCHED_LOAD_SCALE) / group->cpu_power;

Ben.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to