diff --git a/kernel/exit.c b/kernel/exit.c index 5bcf911abdc2446d1ea9e9d6ca24d55ab78e4319..ecfda8819039b1d91d60eec17e25a83d5edbb6f5 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -772,6 +772,7 @@ void __noreturn do_exit(long code) rq = this_rq(); + //FIXME: This disclaimer is not really true anymore (since i dont follow it and it works either way) /** * BEWARE: * We want to update the plan runtime model not too early to ensure that the exiting process diff --git a/kernel/sched/pb.c b/kernel/sched/pb.c index 992effee618731da00090dcfe1e2cb2f9f6e1ce2..b3204c169aa4df7175c65d9ea2867afd505762c5 100644 --- a/kernel/sched/pb.c +++ b/kernel/sched/pb.c @@ -291,10 +291,10 @@ static void dequeue_task_pb(struct rq *rq, struct task_struct *p, int flags) bool process_exited = false; - printk("Dequeue task: %u\n", p->pid); + //printk("Dequeue task: %u\n", p->pid); - if (pb->waiting_on_io) { - printk("Waiting for IO\n", p->pid); + if (pb->waiting_on_io && p->state != TASK_DEAD) { + printk("Waiting for IO\n"); return; } pb->waiting_on_io = 1;