All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf record: Remove unnecessary warning for missing sysfs entry
@ 2018-04-12 11:47 Thomas Richter
  2018-04-12 13:05 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Richter @ 2018-04-12 11:47 UTC (permalink / raw)
  To: linux-kernel, linux-perf-users, acme
  Cc: brueckner, schwidefsky, heiko.carstens, Thomas Richter

Using perf on 4.16.0 kernel on s390 shows warning
   failed: can't open node sysfs data
each time I run command perf record ... for example:

[root@s35lp76 perf]# ./perf record -e rB0000 -- sleep 1
[ perf record: Woken up 1 times to write data ]
failed: can't open node sysfs data
[ perf record: Captured and wrote 0.001 MB perf.data (4 samples) ]
[root@s35lp76 perf]#

BTW: I find this error message not very informative.

It turns out commit e2091cedd51bf ("perf tools: Add MEM_TOPOLOGY
feature to perf data file") tries to open directory named
/sys/devices/system/node/ which does not exist on s390.

This is the call stack:
 __cmd_record
 +---> perf_session__write_header
       +---> perf_header__adds_write
             +---> do_write_feat
	           +---> write_mem_topology
		         +---> build_mem_topology
			       prints warning
The issue starts in do_write_feat() which unconditionally
loops over all features and now includes HEADER_MEM_TOPOLOGY and calls
write_mem_topology().
Function record__init_features() at the beginning of __cmd_record()
sets all features and then turns off some.

Fix this by removed the warning, if the directory is not present
memory node information is not available and won't be displayed.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
---
 tools/perf/util/header.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 121df1683c36..4a3bfc900a68 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -1320,7 +1320,6 @@ static int build_mem_topology(struct memory_node *nodes, u64 size, u64 *cntp)
 
 	dir = opendir(path);
 	if (!dir) {
-		pr_warning("failed: can't open node sysfs data\n");
 		return -1;
 	}
 
-- 
2.14.3

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

* Re: [PATCH] perf record: Remove unnecessary warning for missing sysfs entry
  2018-04-12 11:47 [PATCH] perf record: Remove unnecessary warning for missing sysfs entry Thomas Richter
@ 2018-04-12 13:05 ` Arnaldo Carvalho de Melo
  2018-04-12 13:19   ` Thomas-Mich Richter
  0 siblings, 1 reply; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-04-12 13:05 UTC (permalink / raw)
  To: Thomas Richter
  Cc: linux-kernel, linux-perf-users, brueckner, schwidefsky, heiko.carstens

Em Thu, Apr 12, 2018 at 01:47:23PM +0200, Thomas Richter escreveu:
> Using perf on 4.16.0 kernel on s390 shows warning
>    failed: can't open node sysfs data
> each time I run command perf record ... for example:
> 
> [root@s35lp76 perf]# ./perf record -e rB0000 -- sleep 1
> [ perf record: Woken up 1 times to write data ]
> failed: can't open node sysfs data
> [ perf record: Captured and wrote 0.001 MB perf.data (4 samples) ]
> [root@s35lp76 perf]#
> 
> BTW: I find this error message not very informative.

What an understatement :-)
 
> It turns out commit e2091cedd51bf ("perf tools: Add MEM_TOPOLOGY
> feature to perf data file") tries to open directory named
> /sys/devices/system/node/ which does not exist on s390.
> 
> This is the call stack:
>  __cmd_record
>  +---> perf_session__write_header
>        +---> perf_header__adds_write
>              +---> do_write_feat
> 	           +---> write_mem_topology
> 		         +---> build_mem_topology
> 			       prints warning
> The issue starts in do_write_feat() which unconditionally
> loops over all features and now includes HEADER_MEM_TOPOLOGY and calls
> write_mem_topology().
> Function record__init_features() at the beginning of __cmd_record()
> sets all features and then turns off some.
> 
> Fix this by removed the warning, if the directory is not present
> memory node information is not available and won't be displayed.

Can't we instead improve the error message and turn this into a
pr_debug2? Isn't it a reasonable scenario that the user expects this
topology information to be present and then ends up without it?

Perhaps something like:

	pr_debug2("%s: could't read %s, does this arch have topology information?\n", __func__, path);

- Arnaldo
 
> Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
> ---
>  tools/perf/util/header.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> index 121df1683c36..4a3bfc900a68 100644
> --- a/tools/perf/util/header.c
> +++ b/tools/perf/util/header.c
> @@ -1320,7 +1320,6 @@ static int build_mem_topology(struct memory_node *nodes, u64 size, u64 *cntp)
>  
>  	dir = opendir(path);
>  	if (!dir) {
> -		pr_warning("failed: can't open node sysfs data\n");
>  		return -1;
>  	}
>  
> -- 
> 2.14.3

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

* Re: [PATCH] perf record: Remove unnecessary warning for missing sysfs entry
  2018-04-12 13:05 ` Arnaldo Carvalho de Melo
@ 2018-04-12 13:19   ` Thomas-Mich Richter
  0 siblings, 0 replies; 3+ messages in thread
From: Thomas-Mich Richter @ 2018-04-12 13:19 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo, Thomas Richter
  Cc: linux-kernel, linux-perf-users, brueckner, schwidefsky, heiko.carstens

On 04/12/2018 03:05 PM, Arnaldo Carvalho de Melo wrote:
> Em Thu, Apr 12, 2018 at 01:47:23PM +0200, Thomas Richter escreveu:
>> Using perf on 4.16.0 kernel on s390 shows warning
>>    failed: can't open node sysfs data
>> each time I run command perf record ... for example:
>>
>> [root@s35lp76 perf]# ./perf record -e rB0000 -- sleep 1
>> [ perf record: Woken up 1 times to write data ]
>> failed: can't open node sysfs data
>> [ perf record: Captured and wrote 0.001 MB perf.data (4 samples) ]
>> [root@s35lp76 perf]#
>>
>> BTW: I find this error message not very informative.
> 
> What an understatement :-)
>  
>> It turns out commit e2091cedd51bf ("perf tools: Add MEM_TOPOLOGY
>> feature to perf data file") tries to open directory named
>> /sys/devices/system/node/ which does not exist on s390.
>>
>> This is the call stack:
>>  __cmd_record
>>  +---> perf_session__write_header
>>        +---> perf_header__adds_write
>>              +---> do_write_feat
>> 	           +---> write_mem_topology
>> 		         +---> build_mem_topology
>> 			       prints warning
>> The issue starts in do_write_feat() which unconditionally
>> loops over all features and now includes HEADER_MEM_TOPOLOGY and calls
>> write_mem_topology().
>> Function record__init_features() at the beginning of __cmd_record()
>> sets all features and then turns off some.
>>
>> Fix this by removed the warning, if the directory is not present
>> memory node information is not available and won't be displayed.
> 
> Can't we instead improve the error message and turn this into a
> pr_debug2? Isn't it a reasonable scenario that the user expects this
> topology information to be present and then ends up without it?
> 
> Perhaps something like:
> 
> 	pr_debug2("%s: could't read %s, does this arch have topology information?\n", __func__, path);
> 
> - Arnaldo
>  

Fine with me, I will provide a version 2....

-- 
Thomas Richter, Dept 3303, IBM LTC Boeblingen Germany
--
Vorsitzende des Aufsichtsrats: Martina Koederitz 
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294

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

end of thread, other threads:[~2018-04-12 13:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-12 11:47 [PATCH] perf record: Remove unnecessary warning for missing sysfs entry Thomas Richter
2018-04-12 13:05 ` Arnaldo Carvalho de Melo
2018-04-12 13:19   ` Thomas-Mich Richter

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.