Renames schedule()
authorBarret Rhoden <brho@cs.berkeley.edu>
Sat, 12 Oct 2013 16:13:16 +0000 (09:13 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 16 Jan 2014 02:25:10 +0000 (18:25 -0800)
To avoid any future bugs like fb7e2a51 (from the old 9ns branch).  Our
schedule() is different than regular OSs, for better or worse.

kern/include/schedule.h
kern/src/manager.c
kern/src/monitor.c
kern/src/schedule.c
kern/src/testing.c

index 232b1bb..d04d49d 100644 (file)
@@ -60,7 +60,7 @@ void __sched_put_idle_cores(struct proc *p, uint32_t *pc_arr, uint32_t num);
 /************** Decision making **************/
 /* Call the main scheduling algorithm.  Not clear yet if the main kernel will
  * ever call this directly. */
-void schedule(void);
+void run_scheduler(void);
 
 /* Proc p's resource desires changed, or something in general that would lead to
  * a new decision.  The process can directly poke the ksched via a syscall, so
index 05393cd..20111b9 100644 (file)
@@ -204,7 +204,7 @@ void manager_brho(void)
                        printd("Manager Progress: %d\n", progress);
                        // delay if you want to test rescheduling an MCP that yielded
                        //udelay(15000000);
-                       schedule();
+                       run_scheduler();
        }
        panic("If you see me, then you probably screwed up");
        monitor(0);
@@ -233,7 +233,7 @@ void manager_klueska()
                proc_run_s(envs[0]);
                warn("DEPRECATED");
        }
-       schedule();
+       run_scheduler();
 
        panic("DON'T PANIC");
 }
index 97ae5ca..01b7c99 100644 (file)
@@ -312,7 +312,7 @@ int mon_bin_run(int argc, char **argv, struct hw_trapframe *hw_tf)
        kref_put(&program->f_kref);
        /* Make a scheduling decision.  You might not get the process you created,
         * in the event there are others floating around that are runnable */
-       schedule();
+       run_scheduler();
        /* want to idle, so we un the process we just selected.  this is a bit
         * hackish, but so is the monitor. */
        smp_idle();
index 3698b9a..14b4013 100644 (file)
@@ -100,7 +100,7 @@ static void set_ksched_alarm(void)
 /* Need a kmsg to just run the sched, but not to rearm */
 static void __just_sched(uint32_t srcid, long a0, long a1, long a2)
 {
-       schedule();
+       run_scheduler();
 }
 
 /* Kmsg, to run the scheduler tick (not in interrupt context) and reset the
@@ -110,7 +110,7 @@ static void __just_sched(uint32_t srcid, long a0, long a1, long a2)
 static void __ksched_tick(uint32_t srcid, long a0, long a1, long a2)
 {
        /* TODO: imagine doing some accounting here */
-       schedule();
+       run_scheduler();
        /* Set our alarm to go off, incrementing from our last tick (instead of
         * setting it relative to now, since some time has passed since the alarm
         * first went off.  Note, this may be now or in the past! */
@@ -510,8 +510,11 @@ static void __run_mcp_ksched(void *arg)
 /* Something has changed, and for whatever reason the scheduler should
  * reevaluate things. 
  *
+ * Don't call this if you are processing a syscall or otherwise care about your
+ * kthread variables, cur_proc/owning_proc, etc.
+ *
  * Don't call this from interrupt context (grabs proclocks). */
-void schedule(void)
+void run_scheduler(void)
 {
        /* MCP scheduling: post work, then poke.  for now, i just want the func to
         * run again, so merely a poke is sufficient. */
index 381eeea..3a35baf 100644 (file)
@@ -1046,7 +1046,7 @@ void test_ucq(void)
        /* Should never return from schedule (env_pop in there) also note you may
         * not get the process you created, in the event there are others floating
         * around that are runnable */
-       schedule();
+       run_scheduler();
        smp_idle();
        assert(0);
 }