lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <CAJZ5v0ic=bm76r=z+owZamVpb-fFxy3tqfeFvh_N2ROKpsYo=A@mail.gmail.com> Date: Tue, 10 Apr 2018 12:22:16 +0200 From: "Rafael J. Wysocki" <rafael@...nel.org> To: Yu Chen <yu.c.chen@...el.com> Cc: Len Brown <lenb@...nel.org>, "Rafael J . Wysocki" <rjw@...ysocki.net>, Artem Bityutskiy <artem.bityutskiy@...el.com>, Linux PM <linux-pm@...r.kernel.org>, Linux Kernel Mailing List <linux-kernel@...r.kernel.org> Subject: Re: [PATCH][RFC] tools/power turbostat: if --max_loop, print for specific time of loops On Tue, Apr 10, 2018 at 12:18 PM, Yu Chen <yu.c.chen@...el.com> wrote: > From: Chen Yu <yu.c.chen@...el.com> > > There's a use case during test to only print specific round of loops > if --interval is specified, for example, with this patch applied: > > turbostat -i 5 --max_loops 4 > will capture 4 samples with 5 seconds interval. Why --max_loops and not just --loops or --iterations? > Signed-off-by: Chen Yu <yu.c.chen@...el.com> > --- > tools/power/x86/turbostat/turbostat.c | 19 ++++++++++++++++++- > 1 file changed, 18 insertions(+), 1 deletion(-) > > diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c > index bd9c6b31a504..a35418a59468 100644 > --- a/tools/power/x86/turbostat/turbostat.c > +++ b/tools/power/x86/turbostat/turbostat.c > @@ -48,6 +48,7 @@ char *proc_stat = "/proc/stat"; > FILE *outf; > int *fd_percpu; > struct timespec interval_ts = {5, 0}; > +unsigned int max_loops; > unsigned int debug; > unsigned int quiet; > unsigned int sums_need_wide_columns; > @@ -470,6 +471,7 @@ void help(void) > " {core | package | j,k,l..m,n-p }\n" > "--quiet skip decoding system configuration header\n" > "--interval sec Override default 5-second measurement interval\n" > + "--max_loops times The number of loops if interval is specified\n" > "--help print this help message\n" > "--list list column headers only\n" > "--out file create or truncate \"file\" for all output\n" > @@ -2565,6 +2567,7 @@ void turbostat_loop() > { > int retval; > int restarted = 0; > + int loops = 0; > > restart: > restarted++; > @@ -2583,6 +2586,7 @@ void turbostat_loop() > restarted = 0; > gettimeofday(&tv_even, (struct timezone *)NULL); > > + loops = 0; > while (1) { > if (for_all_proc_cpus(cpu_is_not_present)) { > re_initialize(); > @@ -2626,6 +2630,9 @@ void turbostat_loop() > compute_average(ODD_COUNTERS); > format_all_counters(ODD_COUNTERS); > flush_output_stdout(); > + > + if (++loops >= (max_loops/2)) > + break; > } > } > > @@ -5009,12 +5016,13 @@ void cmdline(int argc, char **argv) > {"Summary", no_argument, 0, 'S'}, > {"TCC", required_argument, 0, 'T'}, > {"version", no_argument, 0, 'v' }, > + {"max_loops", required_argument, 0, 'x'}, > {0, 0, 0, 0 } > }; > > progname = argv[0]; > > - while ((opt = getopt_long_only(argc, argv, "+C:c:Ddhi:JM:m:o:qST:v", > + while ((opt = getopt_long_only(argc, argv, "+C:c:Ddhi:JM:m:o:qST:vx:", > long_options, &option_index)) != -1) { > switch (opt) { > case 'a': > @@ -5076,6 +5084,15 @@ void cmdline(int argc, char **argv) > print_version(); > exit(0); > break; > + case 'x': > + { > + unsigned int loops = strtod(optarg, NULL); > + > + if (loops % 2) > + loops++; > + max_loops = loops; > + } > + break; > } > } > } > -- > 2.13.6 >
Powered by blists - more mailing lists