From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Andi Kleen <andi@firstfloor.org>
Cc: jolsa@kernel.org, sukadev@linux.vnet.ibm.com, eranian@google.com,
linux-kernel@vger.kernel.org, Andi Kleen <ak@linux.intel.com>
Subject: Re: [PATCH 01/10] perf, tools: Factor out scale conversion code
Date: Fri, 14 Oct 2016 12:35:57 -0300 [thread overview]
Message-ID: <20161014153557.GD12815@kernel.org> (raw)
In-Reply-To: <1476393332-20732-2-git-send-email-andi@firstfloor.org>
Em Thu, Oct 13, 2016 at 02:15:23PM -0700, Andi Kleen escreveu:
> From: Andi Kleen <ak@linux.intel.com>
>
> Move the scale factor parsing code to an own function
> to reuse it in an upcoming patch.
>
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
> ---
> tools/perf/util/pmu.c | 64 +++++++++++++++++++++++++++------------------------
> 1 file changed, 34 insertions(+), 30 deletions(-)
>
> diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
> index b1474dcadfa2..9adae7e7477c 100644
> --- a/tools/perf/util/pmu.c
> +++ b/tools/perf/util/pmu.c
> @@ -94,32 +94,10 @@ static int pmu_format(const char *name, struct list_head *format)
> return 0;
> }
>
> -static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *name)
> +static double convert_scale(const char *scale, char **end)
> {
> - struct stat st;
> - ssize_t sret;
> - char scale[128];
> - int fd, ret = -1;
> - char path[PATH_MAX];
> char *lc;
> -
> - snprintf(path, PATH_MAX, "%s/%s.scale", dir, name);
> -
> - fd = open(path, O_RDONLY);
> - if (fd == -1)
> - return -1;
> -
> - if (fstat(fd, &st) < 0)
> - goto error;
> -
> - sret = read(fd, scale, sizeof(scale)-1);
> - if (sret < 0)
> - goto error;
> -
> - if (scale[sret - 1] == '\n')
> - scale[sret - 1] = '\0';
> - else
> - scale[sret] = '\0';
> + double sval;
>
> /*
> * save current locale
> @@ -132,10 +110,8 @@ static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *
> * call below.
> */
> lc = strdup(lc);
> - if (!lc) {
> - ret = -ENOMEM;
> - goto error;
> - }
> + if (!lc)
> + return 1.0;
So if we can't convert the scale because of an allocation failure
related to locale issues we silently trow it away and do no scale at
all?
- Arnaldo
>
> /*
> * force to C locale to ensure kernel
> @@ -144,13 +120,41 @@ static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *
> */
> setlocale(LC_NUMERIC, "C");
>
> - alias->scale = strtod(scale, NULL);
> + sval = strtod(scale, end);
>
> /* restore locale */
> setlocale(LC_NUMERIC, lc);
> -
> free(lc);
> + return sval;
> +}
> +
> +static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *name)
> +{
> + struct stat st;
> + ssize_t sret;
> + char scale[128];
> + int fd, ret = -1;
> + char path[PATH_MAX];
> +
> + snprintf(path, PATH_MAX, "%s/%s.scale", dir, name);
> +
> + fd = open(path, O_RDONLY);
> + if (fd == -1)
> + return -1;
> +
> + if (fstat(fd, &st) < 0)
> + goto error;
> +
> + sret = read(fd, scale, sizeof(scale)-1);
> + if (sret < 0)
> + goto error;
> +
> + if (scale[sret - 1] == '\n')
> + scale[sret - 1] = '\0';
> + else
> + scale[sret] = '\0';
>
> + alias->scale = convert_scale(scale, NULL);
> ret = 0;
> error:
> close(fd);
> --
> 2.5.5
next prev parent reply other threads:[~2016-10-14 15:36 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-13 21:15 Support Intel uncore event lists Andi Kleen
2016-10-13 21:15 ` [PATCH 01/10] perf, tools: Factor out scale conversion code Andi Kleen
2016-10-14 15:35 ` Arnaldo Carvalho de Melo [this message]
2016-10-14 15:45 ` Andi Kleen
2016-10-14 16:08 ` Arnaldo Carvalho de Melo
2016-10-14 16:15 ` Andi Kleen
2016-10-14 16:25 ` Arnaldo Carvalho de Melo
2016-10-14 16:36 ` Andi Kleen
2016-10-14 16:38 ` Arnaldo Carvalho de Melo
2016-10-13 21:15 ` [PATCH 02/10] perf, tools: Only print Using CPUID message once Andi Kleen
2016-10-14 15:44 ` Arnaldo Carvalho de Melo
2016-10-24 19:02 ` [tip:perf/core] perf pmu: " tip-bot for Andi Kleen
2016-10-13 21:15 ` [PATCH 03/10] perf, tools: Add support for parsing uncore json files Andi Kleen
2016-10-14 9:07 ` Jiri Olsa
2016-10-14 12:18 ` Jiri Olsa
2016-10-14 12:21 ` Jiri Olsa
2016-10-14 12:23 ` Jiri Olsa
2016-10-14 15:32 ` Andi Kleen
2016-10-13 21:15 ` [PATCH 04/10] perf, tools: Support per pmu json aliases Andi Kleen
2016-10-14 12:31 ` Jiri Olsa
2016-10-13 21:15 ` [PATCH 05/10] perf, tools: Support event aliases for non cpu// pmus Andi Kleen
2016-10-17 9:35 ` Jiri Olsa
2016-10-17 10:28 ` Jiri Olsa
2016-10-13 21:15 ` [PATCH 06/10] perf, tools: Add debug support for outputing alias string Andi Kleen
2016-10-13 21:15 ` [PATCH 07/10] perf, tools: Collapse identically named events in perf stat Andi Kleen
2016-10-17 10:55 ` Jiri Olsa
2016-10-17 11:23 ` Jiri Olsa
2016-10-17 11:26 ` Jiri Olsa
2016-10-17 16:30 ` Andi Kleen
2016-10-17 17:28 ` Jiri Olsa
2016-10-17 18:12 ` Andi Kleen
2016-10-13 21:15 ` [PATCH 08/10] perf, tools: Expand PMU events by prefix match Andi Kleen
2016-10-17 11:35 ` Jiri Olsa
2016-10-17 11:40 ` Jiri Olsa
2016-10-17 16:56 ` Andi Kleen
2016-10-17 17:26 ` Jiri Olsa
2016-10-13 21:15 ` [PATCH 09/10] perf, tools: Support DividedBy header in JSON event list Andi Kleen
2016-10-17 11:44 ` Jiri Olsa
2016-10-17 16:27 ` Andi Kleen
2016-10-17 17:43 ` Jiri Olsa
2016-10-17 17:46 ` Jiri Olsa
2016-10-17 18:28 ` Andi Kleen
2016-10-13 21:15 ` [PATCH 10/10] perf, tools, stat: Output generic dividedby metric Andi Kleen
2016-10-17 10:58 ` Support Intel uncore event lists Jiri Olsa
-- strict thread matches above, loose matches on Subject: below --
2016-11-19 0:36 Support Intel uncore event lists in perf Andi Kleen
2016-11-19 0:36 ` [PATCH 01/10] perf, tools: Factor out scale conversion code Andi Kleen
2016-11-23 9:26 ` Jiri Olsa
2016-11-23 9:46 ` Jiri Olsa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161014153557.GD12815@kernel.org \
--to=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=andi@firstfloor.org \
--cc=eranian@google.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sukadev@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).