It appears that the ckrm_cpu_ctrld thread can enter an infinite loop
authorMarc Fiuczynski <mef@cs.princeton.edu>
Wed, 2 Mar 2005 21:08:09 +0000 (21:08 +0000)
committerMarc Fiuczynski <mef@cs.princeton.edu>
Wed, 2 Mar 2005 21:08:09 +0000 (21:08 +0000)
when it is interrupted while sleep for the MONITORINTERVAL period
at just the appropriate time.  I observed this when doing an
/sbin/ifdown eth0 on my laptop.

kernel/ckrm/ckrm_cpu_monitor.c

index 4a6ea7a..c1eb0e6 100644 (file)
@@ -962,7 +962,7 @@ static int ckrm_cpu_monitord(void *nothing)
        daemonize("ckrm_cpu_ctrld");
        for (;;) {
                /*sleep for sometime before next try*/
-               set_current_state(TASK_INTERRUPTIBLE);
+               set_current_state(TASK_UNINTERRUPTIBLE);
                schedule_timeout(CPU_MONITOR_INTERVAL);
                ckrm_cpu_monitor(1);
                if (thread_exit) {