From: Andy Bavier Date: Thu, 24 Feb 2005 14:34:38 +0000 (+0000) Subject: Fix share initialization problem [PL #4227] X-Git-Tag: planetlab-3_0-rc13~19 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=179ecd8c55ea7a07a677bc4223eaeb5b667a0d73;p=linux-2.6.git Fix share initialization problem [PL #4227] --- diff --git a/kernel/ckrm/ckrm_cpu_monitor.c b/kernel/ckrm/ckrm_cpu_monitor.c index d8c199a20..90ab2586c 100644 --- a/kernel/ckrm/ckrm_cpu_monitor.c +++ b/kernel/ckrm/ckrm_cpu_monitor.c @@ -838,8 +838,13 @@ static void adjust_lrq_weight(struct ckrm_cpu_class *clsptr, int cpu_online) total_pressure += lrq->lrq_load; } +#define FIX_SHARES +#ifdef FIX_SHARES +#warning "ACB: fix share initialization problem [PL #4227]" +#else if (! total_pressure) return; +#endif class_weight = cpu_class_weight(clsptr) * cpu_online; @@ -852,6 +857,10 @@ static void adjust_lrq_weight(struct ckrm_cpu_class *clsptr, int cpu_online) /*give idle class a high share to boost interactiveness */ lw = cpu_class_weight(clsptr); else { +#ifdef FIX_SHARES + if (! total_pressure) + return; +#endif lw = lrq->lrq_load * class_weight; do_div(lw,total_pressure); if (!lw)