public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf report: Fix no libunwind compiled warning break s390 issue
@ 2020-01-07 19:17 Jin Yao
  2020-01-08 10:27 ` Jiri Olsa
  2020-01-20  8:27 ` [tip: perf/core] " tip-bot2 for Jin Yao
  0 siblings, 2 replies; 5+ messages in thread
From: Jin Yao @ 2020-01-07 19:17 UTC (permalink / raw)
  To: acme, jolsa, peterz, mingo, alexander.shishkin
  Cc: Linux-kernel, ak, kan.liang, yao.jin, tmricht, Jin Yao

Commit 800d3f561659 ("perf report: Add warning when libunwind not compiled in")
breaks the s390 platform. S390 uses libdw-dwarf-unwind for call chain
unwinding and had no support for libunwind.

So the warning "Please install libunwind development packages during the perf build."
caused the confusion even if the call-graph is displayed correctly.

This patch adds checking for HAVE_DWARF_SUPPORT, which is set when
libdw-dwarf-unwind is compiled in.

Fixes: 800d3f561659 ("perf report: Add warning when libunwind not compiled in")

Reviewed-by: Thomas Richter <tmricht@linux.ibm.com>
Tested-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
---
 tools/perf/builtin-report.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index de988589d99b..66cd97cc8b92 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -412,10 +412,10 @@ static int report__setup_sample_type(struct report *rep)
 				PERF_SAMPLE_BRANCH_ANY))
 		rep->nonany_branch_mode = true;
 
-#ifndef HAVE_LIBUNWIND_SUPPORT
+#if !defined(HAVE_LIBUNWIND_SUPPORT) && !defined(HAVE_DWARF_SUPPORT)
 	if (dwarf_callchain_users) {
-		ui__warning("Please install libunwind development packages "
-			    "during the perf build.\n");
+		ui__warning("Please install libunwind or libdw "
+			    "development packages during the perf build.\n");
 	}
 #endif
 
-- 
2.17.1


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

* Re: [PATCH] perf report: Fix no libunwind compiled warning break s390 issue
  2020-01-07 19:17 [PATCH] perf report: Fix no libunwind compiled warning break s390 issue Jin Yao
@ 2020-01-08 10:27 ` Jiri Olsa
  2020-01-08 13:02   ` Jin, Yao
  2020-01-20  8:27 ` [tip: perf/core] " tip-bot2 for Jin Yao
  1 sibling, 1 reply; 5+ messages in thread
From: Jiri Olsa @ 2020-01-08 10:27 UTC (permalink / raw)
  To: Jin Yao
  Cc: acme, jolsa, peterz, mingo, alexander.shishkin, Linux-kernel, ak,
	kan.liang, yao.jin, tmricht

On Wed, Jan 08, 2020 at 03:17:45AM +0800, Jin Yao wrote:
> Commit 800d3f561659 ("perf report: Add warning when libunwind not compiled in")
> breaks the s390 platform. S390 uses libdw-dwarf-unwind for call chain
> unwinding and had no support for libunwind.
> 
> So the warning "Please install libunwind development packages during the perf build."
> caused the confusion even if the call-graph is displayed correctly.
> 
> This patch adds checking for HAVE_DWARF_SUPPORT, which is set when
> libdw-dwarf-unwind is compiled in.
> 
> Fixes: 800d3f561659 ("perf report: Add warning when libunwind not compiled in")
> 
> Reviewed-by: Thomas Richter <tmricht@linux.ibm.com>
> Tested-by: Thomas Richter <tmricht@linux.ibm.com>
> Signed-off-by: Jin Yao <yao.jin@linux.intel.com>

perfect, I have the same change prepared for sending, but it's
together with making libdw default dwarf unwinder, which I'm still
not sure we want to do, so it all got posponed ;-)

would you guys be ok with that? with having libdw picked up as default dwarf unwinder..

for the patch:

Acked-by: Jiri Olsa <jolsa@redhat.com>

thanks,
jirka

> ---
>  tools/perf/builtin-report.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
> index de988589d99b..66cd97cc8b92 100644
> --- a/tools/perf/builtin-report.c
> +++ b/tools/perf/builtin-report.c
> @@ -412,10 +412,10 @@ static int report__setup_sample_type(struct report *rep)
>  				PERF_SAMPLE_BRANCH_ANY))
>  		rep->nonany_branch_mode = true;
>  
> -#ifndef HAVE_LIBUNWIND_SUPPORT
> +#if !defined(HAVE_LIBUNWIND_SUPPORT) && !defined(HAVE_DWARF_SUPPORT)
>  	if (dwarf_callchain_users) {
> -		ui__warning("Please install libunwind development packages "
> -			    "during the perf build.\n");
> +		ui__warning("Please install libunwind or libdw "
> +			    "development packages during the perf build.\n");
>  	}
>  #endif
>  
> -- 
> 2.17.1
> 


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

* Re: [PATCH] perf report: Fix no libunwind compiled warning break s390 issue
  2020-01-08 10:27 ` Jiri Olsa
@ 2020-01-08 13:02   ` Jin, Yao
  2020-01-08 14:35     ` Jiri Olsa
  0 siblings, 1 reply; 5+ messages in thread
From: Jin, Yao @ 2020-01-08 13:02 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: acme, jolsa, peterz, mingo, alexander.shishkin, Linux-kernel, ak,
	kan.liang, yao.jin, tmricht



On 1/8/2020 6:27 PM, Jiri Olsa wrote:
> On Wed, Jan 08, 2020 at 03:17:45AM +0800, Jin Yao wrote:
>> Commit 800d3f561659 ("perf report: Add warning when libunwind not compiled in")
>> breaks the s390 platform. S390 uses libdw-dwarf-unwind for call chain
>> unwinding and had no support for libunwind.
>>
>> So the warning "Please install libunwind development packages during the perf build."
>> caused the confusion even if the call-graph is displayed correctly.
>>
>> This patch adds checking for HAVE_DWARF_SUPPORT, which is set when
>> libdw-dwarf-unwind is compiled in.
>>
>> Fixes: 800d3f561659 ("perf report: Add warning when libunwind not compiled in")
>>
>> Reviewed-by: Thomas Richter <tmricht@linux.ibm.com>
>> Tested-by: Thomas Richter <tmricht@linux.ibm.com>
>> Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
> 
> perfect, I have the same change prepared for sending, but it's
> together with making libdw default dwarf unwinder, which I'm still
> not sure we want to do, so it all got posponed ;-)
>  > would you guys be ok with that? with having libdw picked up as 
default dwarf unwinder..
> 

I've roughly compared the performance between libunwind-dev and 
libdw-dev. While in my test (on KBL desktop), for the same perf report 
command-line, it looks the perf built with libunwind-dev is much faster 
than the perf built with libdw-dev.

The command line is as following:

perf record --call-graph dwarf ./div
perf report -g graph --stdio

Maybe you give it a try. :)

> for the patch:
> 
> Acked-by: Jiri Olsa <jolsa@redhat.com>
> 
Thanks for reviewing the patch.

Thanks
Jin Yao

> thanks,
> jirka
> 
>> ---
>>   tools/perf/builtin-report.c | 6 +++---
>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
>> index de988589d99b..66cd97cc8b92 100644
>> --- a/tools/perf/builtin-report.c
>> +++ b/tools/perf/builtin-report.c
>> @@ -412,10 +412,10 @@ static int report__setup_sample_type(struct report *rep)
>>   				PERF_SAMPLE_BRANCH_ANY))
>>   		rep->nonany_branch_mode = true;
>>   
>> -#ifndef HAVE_LIBUNWIND_SUPPORT
>> +#if !defined(HAVE_LIBUNWIND_SUPPORT) && !defined(HAVE_DWARF_SUPPORT)
>>   	if (dwarf_callchain_users) {
>> -		ui__warning("Please install libunwind development packages "
>> -			    "during the perf build.\n");
>> +		ui__warning("Please install libunwind or libdw "
>> +			    "development packages during the perf build.\n");
>>   	}
>>   #endif
>>   
>> -- 
>> 2.17.1
>>
> 

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

* Re: [PATCH] perf report: Fix no libunwind compiled warning break s390 issue
  2020-01-08 13:02   ` Jin, Yao
@ 2020-01-08 14:35     ` Jiri Olsa
  0 siblings, 0 replies; 5+ messages in thread
From: Jiri Olsa @ 2020-01-08 14:35 UTC (permalink / raw)
  To: Jin, Yao
  Cc: acme, jolsa, peterz, mingo, alexander.shishkin, Linux-kernel, ak,
	kan.liang, yao.jin, tmricht

On Wed, Jan 08, 2020 at 09:02:02PM +0800, Jin, Yao wrote:
> 
> 
> On 1/8/2020 6:27 PM, Jiri Olsa wrote:
> > On Wed, Jan 08, 2020 at 03:17:45AM +0800, Jin Yao wrote:
> > > Commit 800d3f561659 ("perf report: Add warning when libunwind not compiled in")
> > > breaks the s390 platform. S390 uses libdw-dwarf-unwind for call chain
> > > unwinding and had no support for libunwind.
> > > 
> > > So the warning "Please install libunwind development packages during the perf build."
> > > caused the confusion even if the call-graph is displayed correctly.
> > > 
> > > This patch adds checking for HAVE_DWARF_SUPPORT, which is set when
> > > libdw-dwarf-unwind is compiled in.
> > > 
> > > Fixes: 800d3f561659 ("perf report: Add warning when libunwind not compiled in")
> > > 
> > > Reviewed-by: Thomas Richter <tmricht@linux.ibm.com>
> > > Tested-by: Thomas Richter <tmricht@linux.ibm.com>
> > > Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
> > 
> > perfect, I have the same change prepared for sending, but it's
> > together with making libdw default dwarf unwinder, which I'm still
> > not sure we want to do, so it all got posponed ;-)
> >  > would you guys be ok with that? with having libdw picked up as
> default dwarf unwinder..
> > 
> 
> I've roughly compared the performance between libunwind-dev and libdw-dev.
> While in my test (on KBL desktop), for the same perf report command-line, it
> looks the perf built with libunwind-dev is much faster than the perf built
> with libdw-dev.

ok, that's valid point.. the reason we start discussing it, was that
libunwind does not seem to support compressed ELF debug sections,
which works via libdw unwind

> 
> The command line is as following:
> 
> perf record --call-graph dwarf ./div
> perf report -g graph --stdio

I'll try to do some profiling and check with outr contact in libdw
to comment/check on that

thanks,
jirka


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

* [tip: perf/core] perf report: Fix no libunwind compiled warning break s390 issue
  2020-01-07 19:17 [PATCH] perf report: Fix no libunwind compiled warning break s390 issue Jin Yao
  2020-01-08 10:27 ` Jiri Olsa
@ 2020-01-20  8:27 ` tip-bot2 for Jin Yao
  1 sibling, 0 replies; 5+ messages in thread
From: tip-bot2 for Jin Yao @ 2020-01-20  8:27 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Jin Yao, Thomas Richter, Jiri Olsa, Alexander Shishkin,
	Andi Kleen, Jin Yao, Kan Liang, Peter Zijlstra,
	Arnaldo Carvalho de Melo, x86, LKML

The following commit has been merged into the perf/core branch of tip:

Commit-ID:     c3314a74f86dc00827e0945c8e5039fc3aebaa3c
Gitweb:        https://git.kernel.org/tip/c3314a74f86dc00827e0945c8e5039fc3aebaa3c
Author:        Jin Yao <yao.jin@linux.intel.com>
AuthorDate:    Wed, 08 Jan 2020 03:17:45 +08:00
Committer:     Arnaldo Carvalho de Melo <acme@redhat.com>
CommitterDate: Tue, 14 Jan 2020 12:02:19 -03:00

perf report: Fix no libunwind compiled warning break s390 issue

Commit 800d3f561659 ("perf report: Add warning when libunwind not
compiled in") breaks the s390 platform. S390 uses libdw-dwarf-unwind for
call chain unwinding and had no support for libunwind.

So the warning "Please install libunwind development packages during the
perf build." caused the confusion even if the call-graph is displayed
correctly.

This patch adds checking for HAVE_DWARF_SUPPORT, which is set when
libdw-dwarf-unwind is compiled in.

Fixes: 800d3f561659 ("perf report: Add warning when libunwind not compiled in")
Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
Reviewed-by: Thomas Richter <tmricht@linux.ibm.com>
Tested-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jin Yao <yao.jin@intel.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/20200107191745.18415-1-yao.jin@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-report.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 627bb65..9483b3f 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -412,10 +412,10 @@ static int report__setup_sample_type(struct report *rep)
 				PERF_SAMPLE_BRANCH_ANY))
 		rep->nonany_branch_mode = true;
 
-#ifndef HAVE_LIBUNWIND_SUPPORT
+#if !defined(HAVE_LIBUNWIND_SUPPORT) && !defined(HAVE_DWARF_SUPPORT)
 	if (dwarf_callchain_users) {
-		ui__warning("Please install libunwind development packages "
-			    "during the perf build.\n");
+		ui__warning("Please install libunwind or libdw "
+			    "development packages during the perf build.\n");
 	}
 #endif
 

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

end of thread, other threads:[~2020-01-20  8:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-01-07 19:17 [PATCH] perf report: Fix no libunwind compiled warning break s390 issue Jin Yao
2020-01-08 10:27 ` Jiri Olsa
2020-01-08 13:02   ` Jin, Yao
2020-01-08 14:35     ` Jiri Olsa
2020-01-20  8:27 ` [tip: perf/core] " tip-bot2 for Jin Yao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox