diff --git a/kernel/sched/edf.c b/kernel/sched/edf.c
index b35060e6430fa4112d0b12433013eedfe60303eb..a02a23999de4be681629e6898ac658ae51d9de32 100644
--- a/kernel/sched/edf.c
+++ b/kernel/sched/edf.c
@@ -930,18 +930,11 @@ static struct task_struct *edf_pick_next(struct task_queue *tq)
 
 			/* nope, just update minimum runtime for this slot */
 
-			if (delta < slot) {
+			if (delta < slot)
 				slot = delta;
-//				printk("d %lld now: %lld \n", ktime_to_us(delta), now);
-			}
-		//	printk("delta %llu %llu\n", delta, tsk->wakeup);
 
-			continue;
-		}
-		if (delta < 0) {
 
-		//	printk("\n%lld %d\n", ktime_to_us(delta), tsk->state);
-		//	printk("%s: %lld (%lld) deadline: %lld now: %lld state %d\n", tsk->name, ktime_to_ms(delta), tsk->wakeup, tsk->deadline, now, tsk->state);
+			continue;
 		}
 
 		/* if it's already running, see if there is time remaining */
@@ -949,20 +942,16 @@ static struct task_struct *edf_pick_next(struct task_queue *tq)
 
 			if (!schedule_edf_can_execute(tsk, now)) {
 				schedule_edf_reinit_task(tsk, now);
-			//	printk("reinit %s\n", tsk->name);
+
 				/* nope, update minimum runtime for this slot */
 				delta = ktime_delta(tsk->wakeup, now);
 
 				/* if wakeup must happen earlier than the next
 				 * scheduling event, adjust the slot timeout
 				 */
-				if (delta < slot) {
+				if (delta < slot)
 					slot = delta;
-				//	printk("slot %lld\n", ktime_to_us(delta));
-				}
 
-				if (delta < 0)
-					printk("delta %lld %lld\n", ktime_to_us(delta), ktime_to_us(tick_get_period_min_ns()));
 				BUG_ON(delta < 0);
 
 				list_move_tail(&tsk->node, &tq->run);
@@ -1024,15 +1013,21 @@ static struct task_struct *edf_pick_next(struct task_queue *tq)
 		slot = first->runtime;
        }
 
-#if 0
-	list_for_each_entry_safe(tsk, tmp, &tq->run, node) {
-		printk("%c %s %lld %lld\n",
-		       (tsk->state == TASK_RUN) ? 'R' : 'I',
-			tsk->name,
-			ktime_to_ms(ktime_delta(tsk->wakeup, now)),
-			ktime_to_ms(ktime_delta(tsk->deadline, now))
-		       );
-	}
+#if 1
+       if (!go) {
+	       list_for_each_entry_safe(tsk, tmp, &tq->run, node) {
+
+		       if (tsk->state != TASK_RUN)
+			       continue;
+
+		       if (ktime_before (tsk->wakeup, now)) {
+			       go = tsk;
+			       slot = tsk->runtime;
+			       break;
+
+		       }
+	       }
+       }
 #endif
 //	if (!go)
 //		printk("NULL\n");
@@ -1137,6 +1132,7 @@ static ktime edf_timeslice_ns(struct task_struct *task)
 
 static int edf_check_sched_attr(struct sched_attr *attr)
 {
+	return 0; /* XXX */
 	if (!attr)
 		goto error;
 
diff --git a/tools/testing/unittest/edf/edf_test.c b/tools/testing/unittest/edf/edf_test.c
index 678015fc1931e8598df36040b9ee0cd40725020a..e17d4625ee345a0aa0611baa10ff1a1785daa0ca 100644
--- a/tools/testing/unittest/edf/edf_test.c
+++ b/tools/testing/unittest/edf/edf_test.c
@@ -88,9 +88,9 @@ static void sched_edf_create_tasks_test(void)
 
 	t->sched = &sched_edf;
 	t->attr.policy       = SCHED_EDF;
-	t->attr.period       = us_to_ktime(800);
-	t->attr.deadline_rel = us_to_ktime(700);
-	t->attr.wcet         = us_to_ktime(200);
+	t->attr.period       = us_to_ktime(1500);
+	t->attr.deadline_rel = us_to_ktime(400);
+	t->attr.wcet         = us_to_ktime(300);
 	edf_enqueue(&t->sched->tq, t);
 
 
@@ -105,9 +105,9 @@ static void sched_edf_create_tasks_test(void)
 
 	t->sched = &sched_edf;
 	t->attr.policy       = SCHED_EDF;
-	t->attr.period       = us_to_ktime(300);
-	t->attr.deadline_rel = us_to_ktime(200);
-	t->attr.wcet         = us_to_ktime(100);
+	t->attr.period       = us_to_ktime(30);
+	t->attr.deadline_rel = us_to_ktime(20);
+	t->attr.wcet         = us_to_ktime(10);
 	edf_enqueue(&t->sched->tq, t);
 
 
@@ -122,7 +122,7 @@ static void sched_edf_create_tasks_test(void)
 
 	t->sched = &sched_edf;
 	t->attr.policy       = SCHED_EDF;
-	t->attr.period       = us_to_ktime(2000);
+	t->attr.period       = us_to_ktime(3000);
 	t->attr.deadline_rel = us_to_ktime(900);
 	t->attr.wcet         = us_to_ktime(100);
 	edf_enqueue(&t->sched->tq, t);
@@ -133,7 +133,7 @@ static void sched_edf_create_tasks_test(void)
  * @test sched_edf_create_tasks_test
  */
 
-#define CYCLES 1
+#define CYCLES 10000
 
 static void sched_edf_schedule_test(void)
 {