aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_domain_save.c
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2011-05-24 10:14:10 +0100
committerIan Campbell <ian.campbell@citrix.com>2011-05-24 10:14:10 +0100
commit3ab1cd75c8998755743eed0728ece17d87cafbb5 (patch)
treec5363a439405214c84057848980f91dbdf4d151b /tools/libxc/xc_domain_save.c
parent5bf59f752e7b4f493f9f3b4454cbc42bc82d06d1 (diff)
downloadxen-3ab1cd75c8998755743eed0728ece17d87cafbb5.tar.gz
xen-3ab1cd75c8998755743eed0728ece17d87cafbb5.tar.bz2
xen-3ab1cd75c8998755743eed0728ece17d87cafbb5.zip
libxc: save: encapsulate time stats in a struct
As a precursor to making non-static. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson.citrix.com> Committed-by: Ian Jackson <ian.jackson.citrix.com>
Diffstat (limited to 'tools/libxc/xc_domain_save.c')
-rw-r--r--tools/libxc/xc_domain_save.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/tools/libxc/xc_domain_save.c b/tools/libxc/xc_domain_save.c
index 639488c24d..08615979e1 100644
--- a/tools/libxc/xc_domain_save.c
+++ b/tools/libxc/xc_domain_save.c
@@ -264,32 +264,35 @@ static inline int write_uncached(xc_interface *xch,
return noncached_write(xch, ob, fd, buf, len);
}
+struct time_stats {
+ struct timeval wall;
+ long long d0_cpu, d1_cpu;
+};
+
static int print_stats(xc_interface *xch, uint32_t domid, int pages_sent,
xc_shadow_op_stats_t *stats, int print)
{
- static struct timeval wall_last;
- static long long d0_cpu_last;
- static long long d1_cpu_last;
+ static struct time_stats last;
+ struct time_stats now;
- struct timeval wall_now;
- long long wall_delta;
- long long d0_cpu_now, d0_cpu_delta;
- long long d1_cpu_now, d1_cpu_delta;
+ long long wall_delta;
+ long long d0_cpu_delta;
+ long long d1_cpu_delta;
- gettimeofday(&wall_now, NULL);
+ gettimeofday(&now.wall, NULL);
- d0_cpu_now = xc_domain_get_cpu_usage(xch, 0, /* FIXME */ 0)/1000;
- d1_cpu_now = xc_domain_get_cpu_usage(xch, domid, /* FIXME */ 0)/1000;
+ now.d0_cpu = xc_domain_get_cpu_usage(xch, 0, /* FIXME */ 0)/1000;
+ now.d1_cpu = xc_domain_get_cpu_usage(xch, domid, /* FIXME */ 0)/1000;
- if ( (d0_cpu_now == -1) || (d1_cpu_now == -1) )
+ if ( (now.d0_cpu == -1) || (now.d1_cpu == -1) )
DPRINTF("ARRHHH!!\n");
- wall_delta = tv_delta(&wall_now,&wall_last)/1000;
+ wall_delta = tv_delta(&now.wall,&last.wall)/1000;
if ( wall_delta == 0 )
wall_delta = 1;
- d0_cpu_delta = (d0_cpu_now - d0_cpu_last)/1000;
- d1_cpu_delta = (d1_cpu_now - d1_cpu_last)/1000;
+ d0_cpu_delta = (now.d0_cpu - last.d0_cpu)/1000;
+ d1_cpu_delta = (now.d1_cpu - last.d1_cpu)/1000;
if ( print )
DPRINTF("delta %lldms, dom0 %d%%, target %d%%, sent %dMb/s, "
@@ -301,9 +304,7 @@ static int print_stats(xc_interface *xch, uint32_t domid, int pages_sent,
(int)((stats->dirty_count*PAGE_SIZE)/(wall_delta*(1000/8))),
stats->dirty_count);
- d0_cpu_last = d0_cpu_now;
- d1_cpu_last = d1_cpu_now;
- wall_last = wall_now;
+ last = now;
return 0;
}