diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-08-17 10:41:25 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-08-17 10:41:25 +0000 |
commit | ca987e6c3e2be55f3676a58c479c2d123fcba4cb (patch) | |
tree | b4f47afffa4fe03fd53b9350e4e2ba4a25b6798c /xen/common/perfc.c | |
parent | 4fc490f0e8dd36e2a3fad8fafa1eebd7e931ace4 (diff) | |
download | xen-ca987e6c3e2be55f3676a58c479c2d123fcba4cb.tar.gz xen-ca987e6c3e2be55f3676a58c479c2d123fcba4cb.tar.bz2 xen-ca987e6c3e2be55f3676a58c479c2d123fcba4cb.zip |
bitkeeper revision 1.394 (3f3f5bd5J74WkH-WgWI6a5W5aobvaQ)
Many files:
Forced TLB flushes when a domain page changes type is now done more lazily. Fixed a few bugs at the same time, and cleaned up perfctr output.
Diffstat (limited to 'xen/common/perfc.c')
-rw-r--r-- | xen/common/perfc.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/xen/common/perfc.c b/xen/common/perfc.c index 00f599e881..00d0505503 100644 --- a/xen/common/perfc.c +++ b/xen/common/perfc.c @@ -25,7 +25,7 @@ struct perfcounter_t perfcounters; void perfc_printall(u_char key, void *dev_id, struct pt_regs *regs) { - int i, j; + int i, j, sum; s_time_t now = NOW(); atomic_t *counters = (atomic_t *)&perfcounters; @@ -34,27 +34,27 @@ void perfc_printall(u_char key, void *dev_id, struct pt_regs *regs) for ( i = 0; i < NR_PERFCTRS; i++ ) { - printk("%20s ", perfc_info[i].name); + printk("%-32s ", perfc_info[i].name); switch ( perfc_info[i].type ) { case TYPE_SINGLE: - printk("%10d 0x%08x", - atomic_read(&counters[0]), - atomic_read(&counters[0])); + printk("TOTAL[%10d]", atomic_read(&counters[0])); counters += 1; break; case TYPE_CPU: + for ( j = sum = 0; j < smp_num_cpus; j++ ) + sum += atomic_read(&counters[j]); + printk("TOTAL[%10d] ", sum); for ( j = 0; j < smp_num_cpus; j++ ) - printk("CPU%02d[%10d 0x%08x] ", - j, atomic_read(&counters[j]), - atomic_read(&counters[j])); + printk("CPU%02d[%10d] ", j, atomic_read(&counters[j])); counters += NR_CPUS; break; case TYPE_ARRAY: + for ( j = sum = 0; j < perfc_info[i].nr_elements; j++ ) + sum += atomic_read(&counters[j]); + printk("TOTAL[%10d] ", sum); for ( j = 0; j < perfc_info[i].nr_elements; j++ ) - printk("ARR%02d[%10d 0x%08x] ", - j, atomic_read(&counters[j]), - atomic_read(&counters[j])); + printk("ARR%02d[%10d] ", j, atomic_read(&counters[j])); counters += j; break; } |