Working on fixing % time q plugged
authorAlan D. Brunelle <alan.brunelle@hp.com>
Thu, 2 Apr 2009 16:09:08 +0000 (12:09 -0400)
committerAlan D. Brunelle <alan.brunelle@hp.com>
Thu, 2 Apr 2009 16:09:08 +0000 (12:09 -0400)
btt/devs.c
btt/globals.h
btt/trace_plug.c

index fc50555af7604b17882a1f919b8c082d2e908bc6..ff55aa74e488fc4d189f26f1fe6ae36cc790b8b3 100644 (file)
@@ -252,11 +252,12 @@ void dip_unplug(__u32 dev, double cur_time, __u64 nios_up)
        }
 }
 
-void dip_unplug_tm(__u32 dev, __u64 nios_up)
+void dip_unplug_tm(__u32 dev, double cur_time, __u64 nios_up)
 {
        struct d_info *dip = __dip_find(dev);
 
        if (dip && dip->is_plugged) {
+               dip->plugged_time += (cur_time - dip->last_plug);
                dip->n_timer_unplugs++;
                dip->nios_upt += nios_up;
                dip->nplugs_t++;
index 43c38f438009c3748c7abd735a951d993d160ef2..c6c8c993dc4c735bd3cfbbea483ce8e365aea18b 100644 (file)
@@ -215,7 +215,7 @@ struct io *dip_find_sec(struct d_info *dip, enum iop_type type, __u64 sec);
 void dip_foreach_out(void (*func)(struct d_info *, void *), void *arg);
 void dip_plug(__u32 dev, double cur_time);
 void dip_unplug(__u32 dev, double cur_time, __u64 nio_ups);
-void dip_unplug_tm(__u32 dev, __u64 nio_ups);
+void dip_unplug_tm(__u32 dev, double cur_time, __u64 nio_ups);
 void dip_exit(void);
 void dip_cleanup(void);
 
index 97e2f66222acabf072590da973062adbc7bb9901..b1925aea3b1d58cdfdea407c7b4cd6c691596a4d 100644 (file)
@@ -35,7 +35,8 @@ void trace_unplug_io(struct io *u_iop)
 
 void trace_unplug_timer(struct io *ut_iop)
 {
-       dip_unplug_tm(ut_iop->t.device, get_nio_up(ut_iop));
+       dip_unplug_tm(ut_iop->t.device, BIT_TIME(ut_iop->t.time),
+                       get_nio_up(ut_iop));
        io_release(ut_iop);
 }