weekend madness, nothing is working
authorRené Sechting <sechting@mailbox.tu-berlin.de>
Fri, 11 Oct 2013 12:53:05 +0000 (14:53 +0200)
committerRené Sechting <sechting@mailbox.tu-berlin.de>
Fri, 11 Oct 2013 12:53:05 +0000 (14:53 +0200)
fixed some stuff, so that the framework gets to know again every task. but still
not scheduling it, so more improvements needed. weekend! stop working NOW!

kernel/fork.c
kernel/sched.new/core.c

index 1766d32..cb21ca9 100644 (file)
@@ -1614,6 +1614,8 @@ long do_fork(unsigned long clone_flags,
                        get_task_struct(p);
                }
 
+       //TODO: FRAMEWORK STUFF
+               p->fw_task = NULL;
                wake_up_new_task(p);
 
                /* forking complete and child started to run, tell ptracer */
index dbb3fcc..6a3fd25 100644 (file)
@@ -1168,7 +1168,10 @@ void activate_task(struct rq *rq, struct task_struct *p, int flags)
                rq->nr_uninterruptible--;
 
 //     enqueue_task(rq, p, flags);
-       list_add(&p->rq_tasks, &rq->rq_list);
+//     list_add(&p->rq_tasks, &rq->rq_list);
+
+//TODO: FRAMEWORK STUFF
+       send_to_topic(1,p);
 }
 
 /*
@@ -1274,8 +1277,10 @@ ttwu_do_activate(struct rq *rq, struct task_struct *p, int wake_flags)
  */
 static void ttwu_queue_remote(struct task_struct *p, int cpu)
 {
+#if defined(CONFIG_SMP)
        if (llist_add(&p->wake_entry, &cpu_rq(cpu)->wake_list))
                smp_send_reschedule(cpu);
+#endif
 }
 
 /*
@@ -1639,16 +1644,17 @@ need_resched:
         *      the idle tasks.
         */
 //     next = pick_next_task(rq);
-       if (!list_empty(&rq->rq_list)) {
+//
+       if (!list_empty(&rq->rq_list)) {
                assert_raw_spin_locked(&rq->lock);
-               next = list_first_entry(&rq->rq_list, struct task_struct, rq_tasks);
-               list_del(&next->rq_tasks);
+//             next = list_first_entry(&rq->rq_list, struct task_struct, rq_tasks);
+//             list_del(&next->rq_tasks);
        }
-/*     else {
-               next = rq->idle;
+       else {
+//             next = rq->idle;
        }
-       next->se.exec_start = rq->clock_task;
-*/
+//     next->se.exec_start = rq->clock_task;
+//
 
        clear_tsk_need_resched(prev);
        rq->skip_clock_update = 0;