}
}
-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++;
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);
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);
}