All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Milian Wolff <milian.wolff@kdab.com>
Cc: Linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	David Ahern <dsahern@gmail.com>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Yao Jin <yao.jin@linux.intel.com>,
	kernel-team@lge.com
Subject: Re: [PATCH v2] perf report: always honor callchain order for inlined nodes
Date: Thu, 18 May 2017 18:48:20 +0900	[thread overview]
Message-ID: <20170518094820.GF4885@sejong> (raw)
In-Reply-To: <20170518083759.14421-1-milian.wolff@kdab.com>

On Thu, May 18, 2017 at 10:37:59AM +0200, Milian Wolff wrote:
> So far, the inlined nodes where only reversed when we built perf
> against libbfd. If that was not available, the addr2line fallback
> code path was missing the inline_list__reverse call.
> 
> Now we always add the nodes in the correct order within
> inline_list__append. This removes the need to reverse the list
> and also ensures that all callers construct the list in the right
> order.
> 
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: David Ahern <dsahern@gmail.com>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Cc: Yao Jin <yao.jin@linux.intel.com>
> Signed-off-by: Milian Wolff <milian.wolff@kdab.com>
> ---
>  tools/perf/util/srcline.c | 23 ++++++++---------------
>  1 file changed, 8 insertions(+), 15 deletions(-)
> 
> v2:
> - directly create list in correct order as suggested by Namhyung
> 
> diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c
> index 5e376d64d59e..bbba9c69cfec 100644
> --- a/tools/perf/util/srcline.c
> +++ b/tools/perf/util/srcline.c
> @@ -56,7 +56,10 @@ static int inline_list__append(char *filename, char *funcname, int line_nr,
>  		}
>  	}
>  
> -	list_add_tail(&ilist->list, &node->val);
> +	if (callchain_param.order == ORDER_CALLEE)
> +		list_add_tail(&ilist->list, &node->val);
> +	else
> +		list_add(&ilist->list, &node->val);
>  
>  	return 0;
>  }
> @@ -200,14 +203,6 @@ static void addr2line_cleanup(struct a2l_data *a2l)
>  
>  #define MAX_INLINE_NEST 1024
>  
> -static void inline_list__reverse(struct inline_node *node)
> -{
> -	struct inline_list *ilist, *n;
> -
> -	list_for_each_entry_safe_reverse(ilist, n, &node->val, list)
> -		list_move_tail(&ilist->list, &node->val);
> -}
> -
>  static int addr2line(const char *dso_name, u64 addr,
>  		     char **file, unsigned int *line, struct dso *dso,
>  		     bool unwind_inlines, struct inline_node *node)
> @@ -250,11 +245,6 @@ static int addr2line(const char *dso_name, u64 addr,
>  				ret = 1;
>  			}
>  		}
> -
> -		if ((node != NULL) &&
> -		    (callchain_param.order != ORDER_CALLEE)) {
> -			inline_list__reverse(node);
> -		}
>  	}
>  
>  	if (file) {
> @@ -497,12 +487,15 @@ char *get_srcline(struct dso *dso, u64 addr, struct symbol *sym,
>  struct inline_node *dso__parse_addr_inlines(struct dso *dso, u64 addr)
>  {
>  	const char *dso_name;
> +	struct inline_node *node;
>  
>  	dso_name = dso__name(dso);
>  	if (dso_name == NULL)
>  		return NULL;
>  
> -	return addr2inlines(dso_name, addr, dso);
> +	node = addr2inlines(dso_name, addr, dso);
> +
> +	return node;

Looks like an unnecessary change.

Thanks,
Namhyung


>  }
>  
>  void inline_node__delete(struct inline_node *node)
> -- 
> 2.13.0
> 

  reply	other threads:[~2017-05-18  9:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-18  8:37 [PATCH v2] perf report: always honor callchain order for inlined nodes Milian Wolff
2017-05-18  9:48 ` Namhyung Kim [this message]
2017-05-18 10:16   ` Milian Wolff

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=20170518094820.GF4885@sejong \
    --to=namhyung@kernel.org \
    --cc=Linux-kernel@vger.kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=dsahern@gmail.com \
    --cc=kernel-team@lge.com \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=milian.wolff@kdab.com \
    --cc=yao.jin@linux.intel.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 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.