Refactor to move prov stuff to coreprov.c (3/4)
authorKevin Klues <klueska@cs.berkeley.edu>
Mon, 28 Sep 2015 21:38:37 +0000 (14:38 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 24 Nov 2015 19:48:50 +0000 (14:48 -0500)
In this commit we move the printing of a process's list of provisioned
cores from schedule.c into coreprov.c

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/coreprov.c
kern/src/schedule.c
kern/src/syscall.c

index abe2ecb..7df8a32 100644 (file)
@@ -32,6 +32,12 @@ 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 a list of the cores currently provisioned to p. */
+void print_proc_coreprov(struct proc *p);
+
+/* Print the processes attached to each provisioned core. */
+void print_coreprov_map(void);
+
 static inline uint32_t spc2pcoreid(struct sched_pcore *spc)
 {
        extern struct sched_pcore *all_pcores;
index f278bd1..50415d0 100644 (file)
@@ -91,6 +91,5 @@ void sched_diag(void);
 void print_idlecoremap(void);
 void print_resources(struct proc *p);
 void print_all_resources(void);
-void print_prov_map(void);
 void next_core(uint32_t pcoreid);
 void sort_idles(void);
index 4444af4..7f7c8db 100644 (file)
@@ -60,3 +60,35 @@ void __unprovision_all_cores(struct proc *p)
        __unprov_pcore_list(&p->ksched_data.crd.prov_alloc_me);
        __unprov_pcore_list(&p->ksched_data.crd.prov_not_alloc_me);
 }
+
+/* Print a list of the cores currently provisioned to p. */
+void print_proc_coreprov(struct proc *p)
+{
+       struct sched_pcore *spc_i;
+
+       if (!p)
+               return;
+       printk("Prov cores alloced to proc %d (%p)\n----------\n", p->pid, p);
+       TAILQ_FOREACH(spc_i, &p->ksched_data.crd.prov_alloc_me, prov_next)
+               printk("Pcore %d\n", spc2pcoreid(spc_i));
+       printk("Prov cores not alloced to proc %d (%p)\n----------\n", p->pid, p);
+       TAILQ_FOREACH(spc_i, &p->ksched_data.crd.prov_not_alloc_me, prov_next)
+               printk("Pcore %d (alloced to %d (%p))\n", spc2pcoreid(spc_i),
+                      spc_i->alloc_proc ? spc_i->alloc_proc->pid : 0,
+                      spc_i->alloc_proc);
+}
+
+/* Print the processes attached to each provisioned core. */
+void print_coreprov_map(void)
+{
+       struct sched_pcore *spc_i;
+       /* Doing this unlocked, which is dangerous, but won't deadlock */
+       printk("Which cores are provisioned to which procs:\n------------------\n");
+       for (int i = 0; i < num_cores; i++) {
+               spc_i = pcoreid2spc(i);
+               printk("Core %02d, prov: %d(%p) alloc: %d(%p)\n", i,
+                      spc_i->prov_proc ? spc_i->prov_proc->pid : 0, spc_i->prov_proc,
+                      spc_i->alloc_proc ? spc_i->alloc_proc->pid : 0,
+                      spc_i->alloc_proc);
+       }
+}
index 5453f75..6161a9c 100644 (file)
@@ -879,35 +879,6 @@ void print_all_resources(void)
        spin_unlock(&pid_hash_lock);
 }
 
-void print_prov_map(void)
-{
-       struct sched_pcore *spc_i;
-       /* Doing this unlocked, which is dangerous, but won't deadlock */
-       printk("Which cores are provisioned to which procs:\n------------------\n");
-       for (int i = 0; i < num_cores; i++) {
-               spc_i = pcoreid2spc(i);
-               printk("Core %02d, prov: %d(%p) alloc: %d(%p)\n", i,
-                      spc_i->prov_proc ? spc_i->prov_proc->pid : 0, spc_i->prov_proc,
-                      spc_i->alloc_proc ? spc_i->alloc_proc->pid : 0,
-                      spc_i->alloc_proc);
-       }
-}
-
-void print_proc_prov(struct proc *p)
-{
-       struct sched_pcore *spc_i;
-       if (!p)
-               return;
-       printk("Prov cores alloced to proc %d (%p)\n----------\n", p->pid, p);
-       TAILQ_FOREACH(spc_i, &p->ksched_data.crd.prov_alloc_me, prov_next)
-               printk("Pcore %d\n", spc2pcoreid(spc_i));
-       printk("Prov cores not alloced to proc %d (%p)\n----------\n", p->pid, p);
-       TAILQ_FOREACH(spc_i, &p->ksched_data.crd.prov_not_alloc_me, prov_next)
-               printk("Pcore %d (alloced to %d (%p))\n", spc2pcoreid(spc_i),
-                      spc_i->alloc_proc ? spc_i->alloc_proc->pid : 0,
-                      spc_i->alloc_proc);
-}
-
 void next_core(uint32_t pcoreid)
 {
        struct sched_pcore *spc_i;
index 31d6f21..882e0f8 100644 (file)
@@ -1092,7 +1092,7 @@ static int sys_provision(struct proc *p, int target_pid,
                        return prov_resource(0, res_type, res_val);
                /* debugging interface */
                if (target_pid == -1)
-                       print_prov_map();
+                       print_coreprov_map();
                set_errno(ESRCH);
                return -1;
        }