fix to make CPU idle when len(runq) != 0 but all queued are sleeping

This commit is contained in:
YOSHIDA Masanori
2014-06-25 16:40:05 +09:00
committed by Masamichi Takagi
parent 39c8617793
commit f923e03565

View File

@@ -1742,10 +1742,6 @@ void schedule(void)
list_add_tail(&prev->sched_list, &(v->runq)); list_add_tail(&prev->sched_list, &(v->runq));
++v->runq_len; ++v->runq_len;
} }
if (!v->runq_len) {
v->status = CPU_STATUS_IDLE;
}
} }
/* Pick a new running process */ /* Pick a new running process */
@@ -1759,6 +1755,7 @@ void schedule(void)
/* No process? Run idle.. */ /* No process? Run idle.. */
if (!next) { if (!next) {
next = &cpu_local_var(idle); next = &cpu_local_var(idle);
v->status = CPU_STATUS_IDLE;
} }
if (prev != next) { if (prev != next) {