Fix share initialization problem [PL #4227]
authorAndy Bavier <acb@cs.princeton.edu>
Thu, 24 Feb 2005 14:34:38 +0000 (14:34 +0000)
committerAndy Bavier <acb@cs.princeton.edu>
Thu, 24 Feb 2005 14:34:38 +0000 (14:34 +0000)
kernel/ckrm/ckrm_cpu_monitor.c

index d8c199a..90ab258 100644 (file)
@@ -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)