Refactor to move alloc stuff to corealloc.c (7/7)
authorKevin Klues <klueska@cs.berkeley.edu>
Tue, 29 Sep 2015 01:47:14 +0000 (18:47 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 24 Nov 2015 19:48:50 +0000 (14:48 -0500)
This commit moves the printing of the idlecore map from schedule.c into
corealloc.c. With this commit, all references to the idlecore map are
removed from schedule.c. There are still a few "core" specific functions
hanging around in schedule.c, but that's because they are all currently
protected by the sched_lock. We should consider either making the
locking finer grained, or externing the sched_lock so these functions
can be completely removed.

Signed-off-by: Kevin Klues <klueska@cs.berkeley.edu>
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/include/corerequest.h
kern/include/schedule.h
kern/src/corealloc.c
kern/src/monitor.c
kern/src/schedule.c

index 74c91e8..112ae2e 100644 (file)
@@ -72,6 +72,10 @@ void __provision_core(struct proc *p, struct sched_pcore *spc);
  * that uses * it holds a lock for the duration of the call. */
 void __unprovision_all_cores(struct proc *p);
 
+/* Print the map of idle cores that are still allocatable through our core
+ * allocation algorithm. */
+void print_idle_core_map(void);
+
 /* Print a list of the cores currently provisioned to p. */
 void print_proc_coreprov(struct proc *p);
 
index 5fc7c5a..c6e8bab 100644 (file)
@@ -88,7 +88,6 @@ int provision_core(struct proc *p, uint32_t pcoreid);
 
 /************** Debugging **************/
 void sched_diag(void);
-void print_idlecoremap(void);
 void print_resources(struct proc *p);
 void print_all_resources(void);
 void next_core_to_alloc(uint32_t pcoreid);
index 134f511..ac2eaf6 100644 (file)
@@ -208,3 +208,15 @@ void __sort_idle_cores(void)
                        TAILQ_INSERT_TAIL(&idlecores, spc_i, alloc_next);
        }
 }
+
+/* Print the map of idle cores that are still allocatable through our core
+ * allocation algorithm. */
+void print_idle_core_map(void)
+{
+       struct sched_pcore *spc_i;
+       /* not locking, so we can look at this without deadlocking. */
+       printk("Idle cores (unlocked!):\n");
+       TAILQ_FOREACH(spc_i, &idlecores, alloc_next)
+               printk("Core %d, prov to %d (%p)\n", spc2pcoreid(spc_i),
+                      spc_i->prov_proc ? spc_i->prov_proc->pid : 0, spc_i->prov_proc);
+}
index 6b98e48..048ef3b 100644 (file)
@@ -1187,7 +1187,7 @@ usage:
                return 1;
        }
        if (!strcmp(argv[1], "idles")) {
-               print_idlecoremap();
+               print_idle_core_map();
        } else if (!strcmp(argv[1], "diag")) {
                sched_diag();
        } else if (!strcmp(argv[1], "resources")) {
index a30a382..054c878 100644 (file)
@@ -734,16 +734,6 @@ void sched_diag(void)
        return;
 }
 
-void print_idlecoremap(void)
-{
-       struct sched_pcore *spc_i;
-       /* not locking, so we can look at this without deadlocking. */
-       printk("Idle cores (unlocked!):\n");
-       TAILQ_FOREACH(spc_i, &idlecores, alloc_next)
-               printk("Core %d, prov to %d (%p)\n", spc2pcoreid(spc_i),
-                      spc_i->prov_proc ? spc_i->prov_proc->pid : 0, spc_i->prov_proc);
-}
-
 void print_resources(struct proc *p)
 {
        printk("--------------------\n");