WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Xen

xen-devel

[Top] [All Lists]

[Xen-devel] tools: fix several problems in gtracestat

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] tools: fix several problems in gtracestat
From: "Wei, Gang" <gang.wei@xxxxxxxxx>
Date: Thu, 3 Mar 2011 18:22:04 +0800
Accept-language: zh-CN, en-US
Acceptlanguage: zh-CN, en-US
Cc: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>, "Wei, Gang" <gang.wei@xxxxxxxxx>, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Delivery-date: 2011年3月03日 02:25:05 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcvZjNdzYhDfcmH9TXuYUJlHGTDMwg==
Thread-topic: tools: fix several problems in gtracestat
tools: fix several problems in gtracestat
Fixed problems include:
 * previously just print out a error instead of help info while running 
without cmdline parameters.
 * -u & -n lead to Segmentation fault.
 * -c and then use default ranges, the default ranges is not 50us... but 
50000/tsc2us....
Signed-off-by: Wei Gang <gang.wei@xxxxxxxxx> 
diff -r e7b31cc0093c tools/misc/gtracestat.c
--- a/tools/misc/gtracestat.c Mon Jan 31 17:46:55 2011 +0000
+++ b/tools/misc/gtracestat.c Fri Mar 04 23:50:16 2011 +0800
@@ -137,9 +137,13 @@ int main(int argc, char *argv[])
 { NULL, 0, NULL, 0 },
 };
 
+ if ( argc == 1 ) {
+ show_help();
+ exit(EXIT_SUCCESS);
+ }
 while (1) {
 int ch, opt_idx;
- ch = getopt_long(argc, argv, "vhds:e:l:bcmaupnzx",
+ ch = getopt_long(argc, argv, "vhds:e:l:bcmau:pn:zx",
 long_options, &opt_idx);
 if (ch == -1)
 break;
@@ -435,13 +439,13 @@ int load_file(char *fname)
 
 void show_version(void)
 {
- printf("gtracestat - (C) 2009 Intel Corporation\n");
+ printf("gtracestat - (C) 2009-2011 Intel Corporation\n");
 }
 
 void show_help(void)
 {
 show_version();
- printf("tracestat <trace.data> [-vhdselbcmau]\n");
+ printf("gtracestat <trace.data> [-vhdselbcmau]\n");
 printf(" trace.data raw data got by 'xentrace -e 0x80f000 
trace.dat'\n");
 printf(" -v / --version show version message\n");
 printf(" -h / --help show this message\n");
@@ -453,9 +457,9 @@ void show_help(void)
 printf(" -c / --count give count summary info\n");
 printf(" -a / --average give total/average residency info\n");
 printf(" -m / --maxmin show man/min residency summary info\n");
- printf(" -u / --tsc2us specify how many tsc is a us unit\n");
+ printf(" -u / --tsc2us <tsc-per-us> specify how many tsc is a us unit\n");
 printf(" -p / --px operate on Px entries\n");
- printf(" -n / --tsc2phase specify how many tsc is a phase unit (only in 
px)\n");
+ printf(" -n / --tsc2phase <tsc-per-phase> specify how many tsc is a phase 
unit (only in px)\n");
 printf(" -z / --exp-ratio show the ratio of early break events\n");
 printf(" -x / --exp-pred show the ratio of expected / predicted in Cx 
entry\n");
 }
@@ -745,21 +749,22 @@ void do_maxmin(void)
 
 void do_count(void)
 {
- uint64_t scale[100] = { 50000UL, 100000UL, 200000UL, 400000UL, 800000UL, 
1000000UL };
- int a[100];
+ uint64_t scale[100] = { 50UL, 100UL, 200UL, 400UL, 800UL, 1000UL };
+ int a;
 int scale_len = 6;
 int len = 0;
 int i, j;
 
 printf("Please input the period: (Ctrl+D to quit)\n");
- printf("The default is 50us, 100us, 200us, 400us, 800us, 1000us.\n(unit is 
us, you DO NOT need to add us and specify ZERO us and please be in INCREASING 
order.)\n");
- while (scanf("%d", &a[len]) == 1)
- len++;
- if (len) {
- for (i = 0; i < len; i++)
- scale[i] = a[i] * tsc2us;
+ printf("The default is: 50 100 200 400 800 1000\n"
+ "(unit is us, DO NOT specify ZERO as any entry, keep entries in 
INCREASING order.)\n");
+ while (scanf("%d", &a) == 1) {
+ scale[len++] = a;
 scale_len = len;
 }
+ for (i = 0; i < scale_len; i++)
+ scale[i] = scale[i] * tsc2us;
+
 for (i = 0; i < max_cpu_num; i++) {
 struct cond_rec *r[MAX_CX_NR];
 uint64_t sum[MAX_CX_NR];

Attachment: gtracestat-fix.patch
Description: gtracestat-fix.patch

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
Previous by Date: RE: [Xen-devel] PoD in other (not GPLPV) drivers , James Harper
Next by Date: [Xen-devel] [PATCH] Make explicit message when guest failed to suspend , Frank Pan
Previous by Thread: RE: [Xen-devel] PoD in other (not GPLPV) drivers , George Dunlap
Next by Thread: [Xen-devel] Re: tools: fix several problems in gtracestat , Ian Jackson
Indexes: [Date] [Thread] [Top] [All Lists]

Copyright ©, Citrix Systems Inc. All rights reserved. Legal and Privacy
Citrix This site is hosted by Citrix

AltStyle によって変換されたページ (->オリジナル) /