Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1549863 > unrolled thread
| Started by | Andi Kleen <andi@firstfloor.org> |
|---|---|
| First post | 2017-01-03 16:20 +0100 |
| Last post | 2017-01-12 19:20 +0100 |
| Articles | 5 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH 01/11] perf, tools: Factor out scale conversion code Andi Kleen <andi@firstfloor.org> - 2017-01-03 16:20 +0100
Re: [PATCH 01/11] perf, tools: Factor out scale conversion code Jiri Olsa <jolsa@redhat.com> - 2017-01-08 20:00 +0100
Re: [PATCH 01/11] perf, tools: Factor out scale conversion code Jiri Olsa <jolsa@redhat.com> - 2017-01-08 20:00 +0100
Re: [PATCH 01/11] perf, tools: Factor out scale conversion code Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-01-12 14:40 +0100
Re: [PATCH 01/11] perf, tools: Factor out scale conversion code Arnaldo Carvalho de Melo <acme@kernel.org> - 2017-01-12 19:20 +0100
| From | Andi Kleen <andi@firstfloor.org> |
|---|---|
| Date | 2017-01-03 16:20 +0100 |
| Subject | [PATCH 01/11] perf, tools: Factor out scale conversion code |
| Message-ID | <sVz2x-8cw-9@gated-at.bofh.it> |
From: Andi Kleen <ak@linux.intel.com>
Move the scale factor parsing code to an own function
to reuse it in an upcoming patch.
v2: Return error in case strdup returns NULL.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
squash! perf, tools: Factor out scale conversion code
---
tools/perf/util/pmu.c | 64 ++++++++++++++++++++++++++++-----------------------
1 file changed, 35 insertions(+), 29 deletions(-)
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index dc6ccaa4e927..29c254dd7380 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 int convert_scale(const char *scale, char **end, double *sval)
{
- 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';
+ int ret = 0;
/*
* save current locale
@@ -133,8 +111,8 @@ static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *
*/
lc = strdup(lc);
if (!lc) {
- ret = -ENOMEM;
- goto error;
+ ret = -1;
+ goto out;
}
/*
@@ -144,14 +122,42 @@ 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);
+out:
/* restore locale */
setlocale(LC_NUMERIC, lc);
-
free(lc);
+ return ret;
+}
+
+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';
- ret = 0;
+ ret = convert_scale(scale, NULL, &alias->scale);
error:
close(fd);
return ret;
--
2.9.3
[toc] | [next] | [standalone]
| From | Jiri Olsa <jolsa@redhat.com> |
|---|---|
| Date | 2017-01-08 20:00 +0100 |
| Message-ID | <sXqRb-1KB-1@gated-at.bofh.it> |
| In reply to | #1549863 |
On Tue, Jan 03, 2017 at 07:08:23AM -0800, Andi Kleen wrote: > From: Andi Kleen <ak@linux.intel.com> > > Move the scale factor parsing code to an own function > to reuse it in an upcoming patch. > > v2: Return error in case strdup returns NULL. > Signed-off-by: Andi Kleen <ak@linux.intel.com> > > squash! perf, tools: Factor out scale conversion code hm? ^^^ jirka
[toc] | [prev] | [next] | [standalone]
| From | Jiri Olsa <jolsa@redhat.com> |
|---|---|
| Date | 2017-01-08 20:00 +0100 |
| Message-ID | <sXqRb-1KB-17@gated-at.bofh.it> |
| In reply to | #1549863 |
On Tue, Jan 03, 2017 at 07:08:23AM -0800, Andi Kleen wrote:
SNIP
> - goto error;
> -
> - if (scale[sret - 1] == '\n')
> - scale[sret - 1] = '\0';
> - else
> - scale[sret] = '\0';
> + int ret = 0;
>
> /*
> * save current locale
> @@ -133,8 +111,8 @@ static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *
> */
> lc = strdup(lc);
> if (!lc) {
> - ret = -ENOMEM;
> - goto error;
> + ret = -1;
> + goto out;
not sure why you changed the -ENOMEM to -1 ;-) but it's ok anyway
Acked-by: Jiri Olsa <jolsa@kernel.org>
thanks,
jirka
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2017-01-12 14:40 +0100 |
| Message-ID | <sYNLH-4wW-1@gated-at.bofh.it> |
| In reply to | #1553923 |
Em Sun, Jan 08, 2017 at 07:57:53PM +0100, Jiri Olsa escreveu:
> On Tue, Jan 03, 2017 at 07:08:23AM -0800, Andi Kleen wrote:
>
> SNIP
>
> > - goto error;
> > -
> > - if (scale[sret - 1] == '\n')
> > - scale[sret - 1] = '\0';
> > - else
> > - scale[sret] = '\0';
> > + int ret = 0;
> >
> > /*
> > * save current locale
> > @@ -133,8 +111,8 @@ static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *
> > */
> > lc = strdup(lc);
> > if (!lc) {
> > - ret = -ENOMEM;
> > - goto error;
> > + ret = -1;
> > + goto out;
>
> not sure why you changed the -ENOMEM to -1 ;-) but it's ok anyway
These unrelated things are just that, noise, I'll ditch it to reduce
patch size while not introducing any functional change.
> Acked-by: Jiri Olsa <jolsa@kernel.org>
Will keep your ack tho :-)
- Arnaldo
> thanks,
> jirka
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2017-01-12 19:20 +0100 |
| Message-ID | <sYS8G-7eZ-11@gated-at.bofh.it> |
| In reply to | #1557452 |
Em Thu, Jan 12, 2017 at 10:31:57AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Sun, Jan 08, 2017 at 07:57:53PM +0100, Jiri Olsa escreveu:
> > On Tue, Jan 03, 2017 at 07:08:23AM -0800, Andi Kleen wrote:
> >
> > SNIP
> >
> > > - goto error;
> > > -
> > > - if (scale[sret - 1] == '\n')
> > > - scale[sret - 1] = '\0';
> > > - else
> > > - scale[sret] = '\0';
> > > + int ret = 0;
> > >
> > > /*
> > > * save current locale
> > > @@ -133,8 +111,8 @@ static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *
> > > */
> > > lc = strdup(lc);
> > > if (!lc) {
> > > - ret = -ENOMEM;
> > > - goto error;
> > > + ret = -1;
> > > + goto out;
> >
> > not sure why you changed the -ENOMEM to -1 ;-) but it's ok anyway
>
> These unrelated things are just that, noise, I'll ditch it to reduce
> patch size while not introducing any functional change.
But then this return is not even being looked at anywhere :-\
> > Acked-by: Jiri Olsa <jolsa@kernel.org>
>
> Will keep your ack tho :-)
>
> - Arnaldo
>
> > thanks,
> > jirka
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web