All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Refactoring with ltrim() and rtrim()
@ 2017-04-07 14:24 Taeung Song
  2017-04-07 14:24 ` [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim() Taeung Song
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Taeung Song @ 2017-04-07 14:24 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu, Taeung Song

Hi, :)

It is to simply refactor the code about stip strings
with ltrim() and rtrim().

I'd appreciate some feedback on this PATCHset.

Thanks,
Taeung

Taeung Song (5):
  perf annotate: Refactor the code to parse disassemble lines with
    {l,r}trim()
  perf stat: Refactor the code to strip csv output with ltrim()
  perf ui browser: Refactor the code to parse color configs with ltrim()
  perf pmu: Refactor wordwrap() with ltrim()
  perf tools: Refactor the code to strip command name with {l,r}trim()

 tools/perf/builtin-stat.c  | 10 ++--------
 tools/perf/ui/browser.c    |  2 +-
 tools/perf/util/annotate.c | 49 ++++++++++------------------------------------
 tools/perf/util/event.c    | 11 ++---------
 tools/perf/util/pmu.c      |  3 +--
 5 files changed, 16 insertions(+), 59 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim()
  2017-04-07 14:24 [PATCH 0/5] Refactoring with ltrim() and rtrim() Taeung Song
@ 2017-04-07 14:24 ` Taeung Song
  2017-04-07 15:01   ` Arnaldo Carvalho de Melo
  2017-04-07 15:04   ` Arnaldo Carvalho de Melo
  2017-04-07 14:24 ` [PATCH 2/5] perf stat: Refactor the code to strip csv output with ltrim() Taeung Song
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 17+ messages in thread
From: Taeung Song @ 2017-04-07 14:24 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu, Taeung Song

When parsing disassemble lines,
use ltrim() and rtrim() to strip them,
not using just while loop and isspace().

Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
 tools/perf/util/annotate.c | 49 ++++++++++------------------------------------
 1 file changed, 10 insertions(+), 39 deletions(-)

diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index a37032b..1b4f17b 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -379,9 +379,7 @@ static int mov__parse(struct arch *arch, struct ins_operands *ops, struct map *m
 	if (comment == NULL)
 		return 0;
 
-	while (comment[0] != '\0' && isspace(comment[0]))
-		++comment;
-
+	comment = ltrim(comment);
 	comment__symbol(ops->source.raw, comment, &ops->source.addr, &ops->source.name);
 	comment__symbol(ops->target.raw, comment, &ops->target.addr, &ops->target.name);
 
@@ -426,9 +424,7 @@ static int dec__parse(struct arch *arch __maybe_unused, struct ins_operands *ops
 	if (comment == NULL)
 		return 0;
 
-	while (comment[0] != '\0' && isspace(comment[0]))
-		++comment;
-
+	comment = ltrim(comment);
 	comment__symbol(ops->target.raw, comment, &ops->target.addr, &ops->target.name);
 
 	return 0;
@@ -777,10 +773,7 @@ static void disasm_line__init_ins(struct disasm_line *dl, struct arch *arch, str
 
 static int disasm_line__parse(char *line, const char **namep, char **rawp)
 {
-	char *name = line, tmp;
-
-	while (isspace(name[0]))
-		++name;
+	char tmp, *name = ltrim(line);
 
 	if (name[0] == '\0')
 		return -1;
@@ -798,12 +791,7 @@ static int disasm_line__parse(char *line, const char **namep, char **rawp)
 		goto out_free_name;
 
 	(*rawp)[0] = tmp;
-
-	if ((*rawp)[0] != '\0') {
-		(*rawp)++;
-		while (isspace((*rawp)[0]))
-			++(*rawp);
-	}
+	*rawp = ltrim(*rawp);
 
 	return 0;
 
@@ -1148,9 +1136,9 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map,
 {
 	struct annotation *notes = symbol__annotation(sym);
 	struct disasm_line *dl;
-	char *line = NULL, *parsed_line, *tmp, *tmp2, *c;
+	char *line = NULL, *parsed_line, *tmp, *tmp2;
 	size_t line_len;
-	s64 line_ip, offset = -1;
+	s64 line_ip = -1, offset = -1;
 	regmatch_t match[2];
 
 	if (getline(&line, &line_len, file) < 0)
@@ -1159,32 +1147,15 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map,
 	if (!line)
 		return -1;
 
-	while (line_len != 0 && isspace(line[line_len - 1]))
-		line[--line_len] = '\0';
-
-	c = strchr(line, '\n');
-	if (c)
-		*c = 0;
-
-	line_ip = -1;
-	parsed_line = line;
+	parsed_line = rtrim(line);
 
 	/* /filename:linenr ? Save line number and ignore. */
-	if (regexec(&file_lineno, line, 2, match, 0) == 0) {
-		*line_nr = atoi(line + match[1].rm_so);
+	if (regexec(&file_lineno, parsed_line, 2, match, 0) == 0) {
+		*line_nr = atoi(parsed_line + match[1].rm_so);
 		return 0;
 	}
 
-	/*
-	 * Strip leading spaces:
-	 */
-	tmp = line;
-	while (*tmp) {
-		if (*tmp != ' ')
-			break;
-		tmp++;
-	}
-
+	tmp = ltrim(parsed_line);
 	if (*tmp) {
 		/*
 		 * Parse hexa addresses followed by ':'
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 2/5] perf stat: Refactor the code to strip csv output with ltrim()
  2017-04-07 14:24 [PATCH 0/5] Refactoring with ltrim() and rtrim() Taeung Song
  2017-04-07 14:24 ` [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim() Taeung Song
@ 2017-04-07 14:24 ` Taeung Song
  2017-04-07 15:06   ` Arnaldo Carvalho de Melo
  2017-04-12  5:35   ` [tip:perf/core] " tip-bot for Taeung Song
  2017-04-07 14:24 ` [PATCH 3/5] perf ui browser: Refactor the code to parse color configs " Taeung Song
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 17+ messages in thread
From: Taeung Song @ 2017-04-07 14:24 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu, Taeung Song,
	Andi Kleen

To strip csv output, use ltrim() instead of
just while loop and isspace() at print_metric_{only}_csv().

Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
 tools/perf/builtin-stat.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 2158ea1..868e086a 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -875,10 +875,7 @@ static void print_metric_csv(void *ctx,
 		return;
 	}
 	snprintf(buf, sizeof(buf), fmt, val);
-	vals = buf;
-	while (isspace(*vals))
-		vals++;
-	ends = vals;
+	ends = vals = ltrim(buf);
 	while (isdigit(*ends) || *ends == '.')
 		ends++;
 	*ends = 0;
@@ -950,10 +947,7 @@ static void print_metric_only_csv(void *ctx, const char *color __maybe_unused,
 		return;
 	unit = fixunit(tbuf, os->evsel, unit);
 	snprintf(buf, sizeof buf, fmt, val);
-	vals = buf;
-	while (isspace(*vals))
-		vals++;
-	ends = vals;
+	ends = vals = ltrim(buf);
 	while (isdigit(*ends) || *ends == '.')
 		ends++;
 	*ends = 0;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 3/5] perf ui browser: Refactor the code to parse color configs with ltrim()
  2017-04-07 14:24 [PATCH 0/5] Refactoring with ltrim() and rtrim() Taeung Song
  2017-04-07 14:24 ` [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim() Taeung Song
  2017-04-07 14:24 ` [PATCH 2/5] perf stat: Refactor the code to strip csv output with ltrim() Taeung Song
@ 2017-04-07 14:24 ` Taeung Song
  2017-04-12  5:35   ` [tip:perf/core] " tip-bot for Taeung Song
  2017-04-07 14:24 ` [PATCH 4/5] perf pmu: Refactor wordwrap() " Taeung Song
  2017-04-07 14:24 ` [PATCH 5/5] perf tools: Refactor the code to strip command name with {l,r}trim() Taeung Song
  4 siblings, 1 reply; 17+ messages in thread
From: Taeung Song @ 2017-04-07 14:24 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu, Taeung Song

When parsing {fore, back} ground color configs,
use ltrim() instead of just while loop and isspace().

Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
 tools/perf/ui/browser.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/ui/browser.c b/tools/perf/ui/browser.c
index 3eb3edb..9e47ccb 100644
--- a/tools/perf/ui/browser.c
+++ b/tools/perf/ui/browser.c
@@ -579,7 +579,7 @@ static int ui_browser__color_config(const char *var, const char *value,
 			break;
 
 		*bg = '\0';
-		while (isspace(*++bg));
+		bg = ltrim(++bg);
 		ui_browser__colorsets[i].bg = bg;
 		ui_browser__colorsets[i].fg = fg;
 		return 0;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 4/5] perf pmu: Refactor wordwrap() with ltrim()
  2017-04-07 14:24 [PATCH 0/5] Refactoring with ltrim() and rtrim() Taeung Song
                   ` (2 preceding siblings ...)
  2017-04-07 14:24 ` [PATCH 3/5] perf ui browser: Refactor the code to parse color configs " Taeung Song
@ 2017-04-07 14:24 ` Taeung Song
  2017-04-12  5:36   ` [tip:perf/core] " tip-bot for Taeung Song
  2017-04-07 14:24 ` [PATCH 5/5] perf tools: Refactor the code to strip command name with {l,r}trim() Taeung Song
  4 siblings, 1 reply; 17+ messages in thread
From: Taeung Song @ 2017-04-07 14:24 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu, Taeung Song,
	Andi Kleen

Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
 tools/perf/util/pmu.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 362051e..11c7525 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -1148,8 +1148,7 @@ static void wordwrap(char *s, int start, int max, int corr)
 			break;
 		s += wlen;
 		column += n;
-		while (isspace(*s))
-			s++;
+		s = ltrim(s);
 	}
 }
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 5/5] perf tools: Refactor the code to strip command name with {l,r}trim()
  2017-04-07 14:24 [PATCH 0/5] Refactoring with ltrim() and rtrim() Taeung Song
                   ` (3 preceding siblings ...)
  2017-04-07 14:24 ` [PATCH 4/5] perf pmu: Refactor wordwrap() " Taeung Song
@ 2017-04-07 14:24 ` Taeung Song
  2017-04-12  5:36   ` [tip:perf/core] " tip-bot for Taeung Song
  4 siblings, 1 reply; 17+ messages in thread
From: Taeung Song @ 2017-04-07 14:24 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu, Taeung Song,
	David Ahern, Don Zickus

After reading command name from /proc/<pid>/status,
use ltrim() and rtrim() to strip command name, not using
just while loop, isspace() and etc.

Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
 tools/perf/util/event.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 76b9c6b..8255a26 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -106,7 +106,7 @@ static int perf_event__get_comm_ids(pid_t pid, char *comm, size_t len,
 	int fd;
 	size_t size = 0;
 	ssize_t n;
-	char *nl, *name, *tgids, *ppids;
+	char *name, *tgids, *ppids;
 
 	*tgid = -1;
 	*ppid = -1;
@@ -134,14 +134,7 @@ static int perf_event__get_comm_ids(pid_t pid, char *comm, size_t len,
 
 	if (name) {
 		name += 5;  /* strlen("Name:") */
-
-		while (*name && isspace(*name))
-			++name;
-
-		nl = strchr(name, '\n');
-		if (nl)
-			*nl = '\0';
-
+		name = rtrim(ltrim(name));
 		size = strlen(name);
 		if (size >= len)
 			size = len - 1;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim()
  2017-04-07 14:24 ` [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim() Taeung Song
@ 2017-04-07 15:01   ` Arnaldo Carvalho de Melo
  2017-04-07 15:04     ` Arnaldo Carvalho de Melo
  2017-04-07 15:04   ` Arnaldo Carvalho de Melo
  1 sibling, 1 reply; 17+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-07 15:01 UTC (permalink / raw)
  To: Taeung Song
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu

Em Fri, Apr 07, 2017 at 11:24:17PM +0900, Taeung Song escreveu:
> When parsing disassemble lines,
> use ltrim() and rtrim() to strip them,
> not using just while loop and isspace().
> 
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
> ---
>  tools/perf/util/annotate.c | 49 ++++++++++------------------------------------
>  1 file changed, 10 insertions(+), 39 deletions(-)
> 
> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
> index a37032b..1b4f17b 100644
> --- a/tools/perf/util/annotate.c
> +++ b/tools/perf/util/annotate.c
> @@ -379,9 +379,7 @@ static int mov__parse(struct arch *arch, struct ins_operands *ops, struct map *m
>  	if (comment == NULL)
>  		return 0;
>  
> -	while (comment[0] != '\0' && isspace(comment[0]))
> -		++comment;
> -
> +	comment = ltrim(comment);
>  	comment__symbol(ops->source.raw, comment, &ops->source.addr, &ops->source.name);
>  	comment__symbol(ops->target.raw, comment, &ops->target.addr, &ops->target.name);
>  
> @@ -426,9 +424,7 @@ static int dec__parse(struct arch *arch __maybe_unused, struct ins_operands *ops
>  	if (comment == NULL)
>  		return 0;
>  
> -	while (comment[0] != '\0' && isspace(comment[0]))
> -		++comment;
> -
> +	comment = ltrim(comment);
>  	comment__symbol(ops->target.raw, comment, &ops->target.addr, &ops->target.name);
>  
>  	return 0;
> @@ -777,10 +773,7 @@ static void disasm_line__init_ins(struct disasm_line *dl, struct arch *arch, str
>  
>  static int disasm_line__parse(char *line, const char **namep, char **rawp)
>  {
> -	char *name = line, tmp;
> -
> -	while (isspace(name[0]))
> -		++name;
> +	char tmp, *name = ltrim(line);
>  
>  	if (name[0] == '\0')
>  		return -1;
> @@ -798,12 +791,7 @@ static int disasm_line__parse(char *line, const char **namep, char **rawp)
>  		goto out_free_name;
>  
>  	(*rawp)[0] = tmp;
> -
> -	if ((*rawp)[0] != '\0') {
> -		(*rawp)++;
> -		while (isspace((*rawp)[0]))
> -			++(*rawp);
> -	}
> +	*rawp = ltrim(*rawp);
>  
>  	return 0;
>  
> @@ -1148,9 +1136,9 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map,
>  {
>  	struct annotation *notes = symbol__annotation(sym);
>  	struct disasm_line *dl;
> -	char *line = NULL, *parsed_line, *tmp, *tmp2, *c;
> +	char *line = NULL, *parsed_line, *tmp, *tmp2;
>  	size_t line_len;
> -	s64 line_ip, offset = -1;
> +	s64 line_ip = -1, offset = -1;

Try to avoid doing these unrelated changes, i.e. moving the setting of
line_ip to -1 from down below to here.

It is unrelated to what you're doing here, i.e. using ltrim/rtrim, and
requires looking at the code to see if this can be done, as I don't know
if line_ip is set to something else in-between... I am removing this,
leaving the patch just for rtrim/ltrim.

>  	regmatch_t match[2];
>  
>  	if (getline(&line, &line_len, file) < 0)
> @@ -1159,32 +1147,15 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map,
>  	if (!line)
>  		return -1;
>  
> -	while (line_len != 0 && isspace(line[line_len - 1]))
> -		line[--line_len] = '\0';
> -
> -	c = strchr(line, '\n');
> -	if (c)
> -		*c = 0;
> -
> -	line_ip = -1;
> -	parsed_line = line;
> +	parsed_line = rtrim(line);
>  
>  	/* /filename:linenr ? Save line number and ignore. */
> -	if (regexec(&file_lineno, line, 2, match, 0) == 0) {
> -		*line_nr = atoi(line + match[1].rm_so);
> +	if (regexec(&file_lineno, parsed_line, 2, match, 0) == 0) {
> +		*line_nr = atoi(parsed_line + match[1].rm_so);
>  		return 0;
>  	}
>  
> -	/*
> -	 * Strip leading spaces:
> -	 */
> -	tmp = line;
> -	while (*tmp) {
> -		if (*tmp != ' ')
> -			break;
> -		tmp++;
> -	}
> -
> +	tmp = ltrim(parsed_line);
>  	if (*tmp) {
>  		/*
>  		 * Parse hexa addresses followed by ':'
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim()
  2017-04-07 14:24 ` [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim() Taeung Song
  2017-04-07 15:01   ` Arnaldo Carvalho de Melo
@ 2017-04-07 15:04   ` Arnaldo Carvalho de Melo
  2017-04-08  0:12     ` Taeung Song
  1 sibling, 1 reply; 17+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-07 15:04 UTC (permalink / raw)
  To: Taeung Song
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu

Em Fri, Apr 07, 2017 at 11:24:17PM +0900, Taeung Song escreveu:
> When parsing disassemble lines,
> use ltrim() and rtrim() to strip them,
> not using just while loop and isspace().
> 
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
> ---
>  tools/perf/util/annotate.c | 49 ++++++++++------------------------------------
>  1 file changed, 10 insertions(+), 39 deletions(-)
> 
> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
> index a37032b..1b4f17b 100644
> --- a/tools/perf/util/annotate.c
> +++ b/tools/perf/util/annotate.c
> @@ -379,9 +379,7 @@ static int mov__parse(struct arch *arch, struct ins_operands *ops, struct map *m
>  	if (comment == NULL)
>  		return 0;
>  
> -	while (comment[0] != '\0' && isspace(comment[0]))
> -		++comment;
> -
> +	comment = ltrim(comment);
>  	comment__symbol(ops->source.raw, comment, &ops->source.addr, &ops->source.name);
>  	comment__symbol(ops->target.raw, comment, &ops->target.addr, &ops->target.name);
>  
> @@ -426,9 +424,7 @@ static int dec__parse(struct arch *arch __maybe_unused, struct ins_operands *ops
>  	if (comment == NULL)
>  		return 0;
>  
> -	while (comment[0] != '\0' && isspace(comment[0]))
> -		++comment;
> -
> +	comment = ltrim(comment);
>  	comment__symbol(ops->target.raw, comment, &ops->target.addr, &ops->target.name);
>  
>  	return 0;
> @@ -777,10 +773,7 @@ static void disasm_line__init_ins(struct disasm_line *dl, struct arch *arch, str
>  
>  static int disasm_line__parse(char *line, const char **namep, char **rawp)
>  {
> -	char *name = line, tmp;
> -
> -	while (isspace(name[0]))
> -		++name;
> +	char tmp, *name = ltrim(line);
>  
>  	if (name[0] == '\0')
>  		return -1;
> @@ -798,12 +791,7 @@ static int disasm_line__parse(char *line, const char **namep, char **rawp)
>  		goto out_free_name;
>  
>  	(*rawp)[0] = tmp;
> -
> -	if ((*rawp)[0] != '\0') {
> -		(*rawp)++;
> -		while (isspace((*rawp)[0]))
> -			++(*rawp);
> -	}
> +	*rawp = ltrim(*rawp);
>  
>  	return 0;
>  
> @@ -1148,9 +1136,9 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map,
>  {
>  	struct annotation *notes = symbol__annotation(sym);
>  	struct disasm_line *dl;
> -	char *line = NULL, *parsed_line, *tmp, *tmp2, *c;
> +	char *line = NULL, *parsed_line, *tmp, *tmp2;
>  	size_t line_len;
> -	s64 line_ip, offset = -1;
> +	s64 line_ip = -1, offset = -1;
>  	regmatch_t match[2];
>  
>  	if (getline(&line, &line_len, file) < 0)
> @@ -1159,32 +1147,15 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map,
>  	if (!line)
>  		return -1;
>  
> -	while (line_len != 0 && isspace(line[line_len - 1]))
> -		line[--line_len] = '\0';
> -
> -	c = strchr(line, '\n');
> -	if (c)
> -		*c = 0;
> -
> -	line_ip = -1;
> -	parsed_line = line;
> +	parsed_line = rtrim(line);
>  
>  	/* /filename:linenr ? Save line number and ignore. */
> -	if (regexec(&file_lineno, line, 2, match, 0) == 0) {
> -		*line_nr = atoi(line + match[1].rm_so);
> +	if (regexec(&file_lineno, parsed_line, 2, match, 0) == 0) {
> +		*line_nr = atoi(parsed_line + match[1].rm_so);

Both should be the same, so this is further noise in the patch, please
refrain from doing extra things in a patch. If you feel this is really
needed, do it in _another_ patch, with proper explanation.

This is a trivial case, but you need to be consistent, avoiding to lump
together unrelated stuff in the same patch.

>  		return 0;
>  	}
>  
> -	/*
> -	 * Strip leading spaces:
> -	 */
> -	tmp = line;
> -	while (*tmp) {
> -		if (*tmp != ' ')
> -			break;
> -		tmp++;
> -	}
> -
> +	tmp = ltrim(parsed_line);
>  	if (*tmp) {
>  		/*
>  		 * Parse hexa addresses followed by ':'
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim()
  2017-04-07 15:01   ` Arnaldo Carvalho de Melo
@ 2017-04-07 15:04     ` Arnaldo Carvalho de Melo
  2017-04-07 18:08       ` Taeung Song
  0 siblings, 1 reply; 17+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-07 15:04 UTC (permalink / raw)
  To: Taeung Song
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu

Em Fri, Apr 07, 2017 at 12:01:30PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Fri, Apr 07, 2017 at 11:24:17PM +0900, Taeung Song escreveu:
> > @@ -1148,9 +1136,9 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map,
> >  {
> >  	struct annotation *notes = symbol__annotation(sym);
> >  	struct disasm_line *dl;
> > -	char *line = NULL, *parsed_line, *tmp, *tmp2, *c;
> > +	char *line = NULL, *parsed_line, *tmp, *tmp2;
> >  	size_t line_len;
> > -	s64 line_ip, offset = -1;
> > +	s64 line_ip = -1, offset = -1;
> 
> Try to avoid doing these unrelated changes, i.e. moving the setting of
> line_ip to -1 from down below to here.
> 
> It is unrelated to what you're doing here, i.e. using ltrim/rtrim, and
> requires looking at the code to see if this can be done, as I don't know
> if line_ip is set to something else in-between... I am removing this,
> leaving the patch just for rtrim/ltrim.

Ok, please do it yourself, after taking into account the other comment
on this patch, I'm looking at the other patches now.

- Arnaldo

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/5] perf stat: Refactor the code to strip csv output with ltrim()
  2017-04-07 14:24 ` [PATCH 2/5] perf stat: Refactor the code to strip csv output with ltrim() Taeung Song
@ 2017-04-07 15:06   ` Arnaldo Carvalho de Melo
  2017-04-07 23:45     ` Taeung Song
  2017-04-12  5:35   ` [tip:perf/core] " tip-bot for Taeung Song
  1 sibling, 1 reply; 17+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-07 15:06 UTC (permalink / raw)
  To: Taeung Song
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu, Andi Kleen

Em Fri, Apr 07, 2017 at 11:24:18PM +0900, Taeung Song escreveu:
> To strip csv output, use ltrim() instead of
> just while loop and isspace() at print_metric_{only}_csv().

Applied.
 
> Cc: Andi Kleen <ak@linux.intel.com>
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
> ---
>  tools/perf/builtin-stat.c | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
> index 2158ea1..868e086a 100644
> --- a/tools/perf/builtin-stat.c
> +++ b/tools/perf/builtin-stat.c
> @@ -875,10 +875,7 @@ static void print_metric_csv(void *ctx,
>  		return;
>  	}
>  	snprintf(buf, sizeof(buf), fmt, val);
> -	vals = buf;
> -	while (isspace(*vals))
> -		vals++;
> -	ends = vals;
> +	ends = vals = ltrim(buf);
>  	while (isdigit(*ends) || *ends == '.')
>  		ends++;
>  	*ends = 0;
> @@ -950,10 +947,7 @@ static void print_metric_only_csv(void *ctx, const char *color __maybe_unused,
>  		return;
>  	unit = fixunit(tbuf, os->evsel, unit);
>  	snprintf(buf, sizeof buf, fmt, val);
> -	vals = buf;
> -	while (isspace(*vals))
> -		vals++;
> -	ends = vals;
> +	ends = vals = ltrim(buf);
>  	while (isdigit(*ends) || *ends == '.')
>  		ends++;
>  	*ends = 0;
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim()
  2017-04-07 15:04     ` Arnaldo Carvalho de Melo
@ 2017-04-07 18:08       ` Taeung Song
  0 siblings, 0 replies; 17+ messages in thread
From: Taeung Song @ 2017-04-07 18:08 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu



On 04/08/2017 12:04 AM, Arnaldo Carvalho de Melo wrote:
> Em Fri, Apr 07, 2017 at 12:01:30PM -0300, Arnaldo Carvalho de Melo escreveu:
>> Em Fri, Apr 07, 2017 at 11:24:17PM +0900, Taeung Song escreveu:
>>> @@ -1148,9 +1136,9 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map,
>>>  {
>>>  	struct annotation *notes = symbol__annotation(sym);
>>>  	struct disasm_line *dl;
>>> -	char *line = NULL, *parsed_line, *tmp, *tmp2, *c;
>>> +	char *line = NULL, *parsed_line, *tmp, *tmp2;
>>>  	size_t line_len;
>>> -	s64 line_ip, offset = -1;
>>> +	s64 line_ip = -1, offset = -1;
>>
>> Try to avoid doing these unrelated changes, i.e. moving the setting of
>> line_ip to -1 from down below to here.
>>
>> It is unrelated to what you're doing here, i.e. using ltrim/rtrim, and
>> requires looking at the code to see if this can be done, as I don't know
>> if line_ip is set to something else in-between... I am removing this,
>> leaving the patch just for rtrim/ltrim.
>
> Ok, please do it yourself, after taking into account the other comment
> on this patch, I'm looking at the other patches now.
>
> - Arnaldo
>

Thank you for detailed feedback.
I understood. As you said, I'll remove unrelated things in this patch.
And I'll send v2 based on your comment.

Thanks,
Taeung

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/5] perf stat: Refactor the code to strip csv output with ltrim()
  2017-04-07 15:06   ` Arnaldo Carvalho de Melo
@ 2017-04-07 23:45     ` Taeung Song
  0 siblings, 0 replies; 17+ messages in thread
From: Taeung Song @ 2017-04-07 23:45 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu, Andi Kleen



On 04/08/2017 12:06 AM, Arnaldo Carvalho de Melo wrote:
> Em Fri, Apr 07, 2017 at 11:24:18PM +0900, Taeung Song escreveu:
>> To strip csv output, use ltrim() instead of
>> just while loop and isspace() at print_metric_{only}_csv().
>
> Applied.

Thank you!
  - Taeung

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim()
  2017-04-07 15:04   ` Arnaldo Carvalho de Melo
@ 2017-04-08  0:12     ` Taeung Song
  0 siblings, 0 replies; 17+ messages in thread
From: Taeung Song @ 2017-04-08  0:12 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: linux-kernel, Jiri Olsa, Namhyung Kim, Ingo Molnar,
	Peter Zijlstra, Wang Nan, Masami Hiramatsu



On 04/08/2017 12:04 AM, Arnaldo Carvalho de Melo wrote:
> Em Fri, Apr 07, 2017 at 11:24:17PM +0900, Taeung Song escreveu:
>> When parsing disassemble lines,
>> use ltrim() and rtrim() to strip them,
>> not using just while loop and isspace().
>>
>> Cc: Jiri Olsa <jolsa@kernel.org>
>> Cc: Namhyung Kim <namhyung@kernel.org>
>> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
>> ---
>>  tools/perf/util/annotate.c | 49 ++++++++++------------------------------------
>>  1 file changed, 10 insertions(+), 39 deletions(-)
>>
>> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
>> index a37032b..1b4f17b 100644
>> --- a/tools/perf/util/annotate.c
>> +++ b/tools/perf/util/annotate.c
>> @@ -379,9 +379,7 @@ static int mov__parse(struct arch *arch, struct ins_operands *ops, struct map *m
>>  	if (comment == NULL)
>>  		return 0;
>>
>> -	while (comment[0] != '\0' && isspace(comment[0]))
>> -		++comment;
>> -
>> +	comment = ltrim(comment);
>>  	comment__symbol(ops->source.raw, comment, &ops->source.addr, &ops->source.name);
>>  	comment__symbol(ops->target.raw, comment, &ops->target.addr, &ops->target.name);
>>
>> @@ -426,9 +424,7 @@ static int dec__parse(struct arch *arch __maybe_unused, struct ins_operands *ops
>>  	if (comment == NULL)
>>  		return 0;
>>
>> -	while (comment[0] != '\0' && isspace(comment[0]))
>> -		++comment;
>> -
>> +	comment = ltrim(comment);
>>  	comment__symbol(ops->target.raw, comment, &ops->target.addr, &ops->target.name);
>>
>>  	return 0;
>> @@ -777,10 +773,7 @@ static void disasm_line__init_ins(struct disasm_line *dl, struct arch *arch, str
>>
>>  static int disasm_line__parse(char *line, const char **namep, char **rawp)
>>  {
>> -	char *name = line, tmp;
>> -
>> -	while (isspace(name[0]))
>> -		++name;
>> +	char tmp, *name = ltrim(line);
>>
>>  	if (name[0] == '\0')
>>  		return -1;
>> @@ -798,12 +791,7 @@ static int disasm_line__parse(char *line, const char **namep, char **rawp)
>>  		goto out_free_name;
>>
>>  	(*rawp)[0] = tmp;
>> -
>> -	if ((*rawp)[0] != '\0') {
>> -		(*rawp)++;
>> -		while (isspace((*rawp)[0]))
>> -			++(*rawp);
>> -	}
>> +	*rawp = ltrim(*rawp);
>>
>>  	return 0;
>>
>> @@ -1148,9 +1136,9 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map,
>>  {
>>  	struct annotation *notes = symbol__annotation(sym);
>>  	struct disasm_line *dl;
>> -	char *line = NULL, *parsed_line, *tmp, *tmp2, *c;
>> +	char *line = NULL, *parsed_line, *tmp, *tmp2;
>>  	size_t line_len;
>> -	s64 line_ip, offset = -1;
>> +	s64 line_ip = -1, offset = -1;
>>  	regmatch_t match[2];
>>
>>  	if (getline(&line, &line_len, file) < 0)
>> @@ -1159,32 +1147,15 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map,
>>  	if (!line)
>>  		return -1;
>>
>> -	while (line_len != 0 && isspace(line[line_len - 1]))
>> -		line[--line_len] = '\0';
>> -
>> -	c = strchr(line, '\n');
>> -	if (c)
>> -		*c = 0;
>> -
>> -	line_ip = -1;
>> -	parsed_line = line;
>> +	parsed_line = rtrim(line);
>>
>>  	/* /filename:linenr ? Save line number and ignore. */
>> -	if (regexec(&file_lineno, line, 2, match, 0) == 0) {
>> -		*line_nr = atoi(line + match[1].rm_so);
>> +	if (regexec(&file_lineno, parsed_line, 2, match, 0) == 0) {
>> +		*line_nr = atoi(parsed_line + match[1].rm_so);
>
> Both should be the same, so this is further noise in the patch, please
> refrain from doing extra things in a patch. If you feel this is really
> needed, do it in _another_ patch, with proper explanation.
>
> This is a trivial case, but you need to be consistent, avoiding to lump
> together unrelated stuff in the same patch.

Thank you for detailed advice!
will do as you comment.

  - Taeung

>
>>  		return 0;
>>  	}
>>
>> -	/*
>> -	 * Strip leading spaces:
>> -	 */
>> -	tmp = line;
>> -	while (*tmp) {
>> -		if (*tmp != ' ')
>> -			break;
>> -		tmp++;
>> -	}
>> -
>> +	tmp = ltrim(parsed_line);
>>  	if (*tmp) {
>>  		/*
>>  		 * Parse hexa addresses followed by ':'
>> --
>> 2.7.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [tip:perf/core] perf stat: Refactor the code to strip csv output with ltrim()
  2017-04-07 14:24 ` [PATCH 2/5] perf stat: Refactor the code to strip csv output with ltrim() Taeung Song
  2017-04-07 15:06   ` Arnaldo Carvalho de Melo
@ 2017-04-12  5:35   ` tip-bot for Taeung Song
  1 sibling, 0 replies; 17+ messages in thread
From: tip-bot for Taeung Song @ 2017-04-12  5:35 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: mhiramat, mingo, namhyung, ak, hpa, treeze.taeung, tglx, acme,
	jolsa, wangnan0, linux-kernel, peterz

Commit-ID:  b07c40df1f4e6f937271921cb116d570bb9c4a31
Gitweb:     http://git.kernel.org/tip/b07c40df1f4e6f937271921cb116d570bb9c4a31
Author:     Taeung Song <treeze.taeung@gmail.com>
AuthorDate: Fri, 7 Apr 2017 23:24:18 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 11 Apr 2017 08:45:10 -0300

perf stat: Refactor the code to strip csv output with ltrim()

To strip csv output, use ltrim() instead of just while loop and
isspace() at print_metric_{only}_csv().

Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1491575061-704-3-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-stat.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 2158ea1..868e086a 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -875,10 +875,7 @@ static void print_metric_csv(void *ctx,
 		return;
 	}
 	snprintf(buf, sizeof(buf), fmt, val);
-	vals = buf;
-	while (isspace(*vals))
-		vals++;
-	ends = vals;
+	ends = vals = ltrim(buf);
 	while (isdigit(*ends) || *ends == '.')
 		ends++;
 	*ends = 0;
@@ -950,10 +947,7 @@ static void print_metric_only_csv(void *ctx, const char *color __maybe_unused,
 		return;
 	unit = fixunit(tbuf, os->evsel, unit);
 	snprintf(buf, sizeof buf, fmt, val);
-	vals = buf;
-	while (isspace(*vals))
-		vals++;
-	ends = vals;
+	ends = vals = ltrim(buf);
 	while (isdigit(*ends) || *ends == '.')
 		ends++;
 	*ends = 0;

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [tip:perf/core] perf ui browser: Refactor the code to parse color configs with ltrim()
  2017-04-07 14:24 ` [PATCH 3/5] perf ui browser: Refactor the code to parse color configs " Taeung Song
@ 2017-04-12  5:35   ` tip-bot for Taeung Song
  0 siblings, 0 replies; 17+ messages in thread
From: tip-bot for Taeung Song @ 2017-04-12  5:35 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: namhyung, tglx, acme, jolsa, peterz, hpa, linux-kernel,
	treeze.taeung, wangnan0, mhiramat, mingo

Commit-ID:  e21600fd41106f7a0ca124cec2404b2b3562768d
Gitweb:     http://git.kernel.org/tip/e21600fd41106f7a0ca124cec2404b2b3562768d
Author:     Taeung Song <treeze.taeung@gmail.com>
AuthorDate: Fri, 7 Apr 2017 23:24:19 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 11 Apr 2017 08:45:10 -0300

perf ui browser: Refactor the code to parse color configs with ltrim()

When parsing {fore, back} ground color configs, use ltrim() instead of
just while loop and isspace().

Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1491575061-704-4-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/ui/browser.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/ui/browser.c b/tools/perf/ui/browser.c
index 3eb3edb..9e47ccb 100644
--- a/tools/perf/ui/browser.c
+++ b/tools/perf/ui/browser.c
@@ -579,7 +579,7 @@ static int ui_browser__color_config(const char *var, const char *value,
 			break;
 
 		*bg = '\0';
-		while (isspace(*++bg));
+		bg = ltrim(++bg);
 		ui_browser__colorsets[i].bg = bg;
 		ui_browser__colorsets[i].fg = fg;
 		return 0;

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [tip:perf/core] perf pmu: Refactor wordwrap() with ltrim()
  2017-04-07 14:24 ` [PATCH 4/5] perf pmu: Refactor wordwrap() " Taeung Song
@ 2017-04-12  5:36   ` tip-bot for Taeung Song
  0 siblings, 0 replies; 17+ messages in thread
From: tip-bot for Taeung Song @ 2017-04-12  5:36 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: peterz, namhyung, mingo, tglx, acme, jolsa, ak, linux-kernel,
	mhiramat, treeze.taeung, wangnan0, hpa

Commit-ID:  aa4beb10a94358bf2474d1fc9c4ccde34660cc9d
Gitweb:     http://git.kernel.org/tip/aa4beb10a94358bf2474d1fc9c4ccde34660cc9d
Author:     Taeung Song <treeze.taeung@gmail.com>
AuthorDate: Fri, 7 Apr 2017 23:24:20 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 11 Apr 2017 08:45:10 -0300

perf pmu: Refactor wordwrap() with ltrim()

Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1491575061-704-5-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/pmu.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 362051e..11c7525 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -1148,8 +1148,7 @@ static void wordwrap(char *s, int start, int max, int corr)
 			break;
 		s += wlen;
 		column += n;
-		while (isspace(*s))
-			s++;
+		s = ltrim(s);
 	}
 }
 

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [tip:perf/core] perf tools: Refactor the code to strip command name with {l,r}trim()
  2017-04-07 14:24 ` [PATCH 5/5] perf tools: Refactor the code to strip command name with {l,r}trim() Taeung Song
@ 2017-04-12  5:36   ` tip-bot for Taeung Song
  0 siblings, 0 replies; 17+ messages in thread
From: tip-bot for Taeung Song @ 2017-04-12  5:36 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: hpa, dzickus, tglx, wangnan0, mhiramat, acme, mingo,
	linux-kernel, peterz, dsahern, namhyung, jolsa, treeze.taeung

Commit-ID:  bdd97ca63faa374c98314d53c0bcaedb473c5a33
Gitweb:     http://git.kernel.org/tip/bdd97ca63faa374c98314d53c0bcaedb473c5a33
Author:     Taeung Song <treeze.taeung@gmail.com>
AuthorDate: Fri, 7 Apr 2017 23:24:21 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 11 Apr 2017 15:23:26 -0300

perf tools: Refactor the code to strip command name with {l,r}trim()

After reading command name from /proc/<pid>/status, use ltrim() and
rtrim() to strip command name, not using just while loop, isspace() and
etc.

Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
Acked-by: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1491575061-704-6-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/event.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 76b9c6b..8255a26 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -106,7 +106,7 @@ static int perf_event__get_comm_ids(pid_t pid, char *comm, size_t len,
 	int fd;
 	size_t size = 0;
 	ssize_t n;
-	char *nl, *name, *tgids, *ppids;
+	char *name, *tgids, *ppids;
 
 	*tgid = -1;
 	*ppid = -1;
@@ -134,14 +134,7 @@ static int perf_event__get_comm_ids(pid_t pid, char *comm, size_t len,
 
 	if (name) {
 		name += 5;  /* strlen("Name:") */
-
-		while (*name && isspace(*name))
-			++name;
-
-		nl = strchr(name, '\n');
-		if (nl)
-			*nl = '\0';
-
+		name = rtrim(ltrim(name));
 		size = strlen(name);
 		if (size >= len)
 			size = len - 1;

^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2017-04-12  5:40 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-07 14:24 [PATCH 0/5] Refactoring with ltrim() and rtrim() Taeung Song
2017-04-07 14:24 ` [PATCH 1/5] perf annotate: Refactor the code to parse disassemble lines with {l,r}trim() Taeung Song
2017-04-07 15:01   ` Arnaldo Carvalho de Melo
2017-04-07 15:04     ` Arnaldo Carvalho de Melo
2017-04-07 18:08       ` Taeung Song
2017-04-07 15:04   ` Arnaldo Carvalho de Melo
2017-04-08  0:12     ` Taeung Song
2017-04-07 14:24 ` [PATCH 2/5] perf stat: Refactor the code to strip csv output with ltrim() Taeung Song
2017-04-07 15:06   ` Arnaldo Carvalho de Melo
2017-04-07 23:45     ` Taeung Song
2017-04-12  5:35   ` [tip:perf/core] " tip-bot for Taeung Song
2017-04-07 14:24 ` [PATCH 3/5] perf ui browser: Refactor the code to parse color configs " Taeung Song
2017-04-12  5:35   ` [tip:perf/core] " tip-bot for Taeung Song
2017-04-07 14:24 ` [PATCH 4/5] perf pmu: Refactor wordwrap() " Taeung Song
2017-04-12  5:36   ` [tip:perf/core] " tip-bot for Taeung Song
2017-04-07 14:24 ` [PATCH 5/5] perf tools: Refactor the code to strip command name with {l,r}trim() Taeung Song
2017-04-12  5:36   ` [tip:perf/core] " tip-bot for Taeung Song

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.