xen: sched: introduce a couple of counters in credit2 and SEDF
authorDario Faggioli <dario.faggioli@citrix.com>
Tue, 23 Oct 2012 11:18:22 +0000 (04:18 -0700)
committerDario Faggioli <dario.faggioli@citrix.com>
Tue, 23 Oct 2012 11:18:22 +0000 (04:18 -0700)
Mainly for consistency with credit, at least for the events that are
general enough, like vCPU initialization/destruction and calls
to the specific scheduling function.

Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com>
Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
Committed-by: Keir Fraser <keir@xen.org>
xen/common/sched_credit2.c
xen/common/sched_sedf.c

index 471f6d5b07acf82161124b8d35d523679f64abc4..76f9e9a05bbad50a925a513124218cfc4bcafa74 100644 (file)
@@ -753,6 +753,8 @@ csched_alloc_vdata(const struct scheduler *ops, struct vcpu *vc, void *dd)
         svc->weight = 0;
     }
 
+    SCHED_STAT_CRANK(vcpu_init);
+
     return svc;
 }
 
@@ -870,6 +872,8 @@ csched_vcpu_remove(const struct scheduler *ops, struct vcpu *vc)
 
     if ( ! is_idle_vcpu(vc) )
     {
+        SCHED_STAT_CRANK(vcpu_destroy);
+
         /* Remove from runqueue */
         vcpu_schedule_lock_irq(vc);
 
@@ -1587,6 +1591,7 @@ csched_schedule(
     struct csched_vcpu *snext = NULL;
     struct task_slice ret;
 
+    SCHED_STAT_CRANK(schedule);
     CSCHED_VCPU_CHECK(current);
 
     d2printk("sc p%d c d%dv%d now %"PRI_stime"\n",
index 66c6d68ada564085065562cf23a311a25c7857c7..240a909f38281a0f3de1fa2163c599344a7e400f 100644 (file)
@@ -332,6 +332,8 @@ static void *sedf_alloc_vdata(const struct scheduler *ops, struct vcpu *v, void
     INIT_LIST_HEAD(&(inf->extralist[EXTRA_PEN_Q]));
     INIT_LIST_HEAD(&(inf->extralist[EXTRA_UTIL_Q]));
 
+    SCHED_STAT_CRANK(vcpu_init);
+
     return inf;
 }
 
@@ -763,6 +765,8 @@ static struct task_slice sedf_do_schedule(
     struct sedf_vcpu_info *runinf, *waitinf;
     struct task_slice      ret;
 
+    SCHED_STAT_CRANK(schedule);
+
     /* Idle tasks don't need any of the following stuf */
     if ( is_idle_vcpu(current) )
         goto check_waitq;