Linux Perf Users
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Thomas Richter <tmricht@linux.ibm.com>
Cc: "linux-perf-use." <linux-perf-users@vger.kernel.org>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Sumanth Korikkar <sumanthk@linux.ibm.com>
Subject: Re: REGRESSION linux-next since Nov 16th, perf tool broken (at least on s390)
Date: Wed, 22 Nov 2023 09:31:24 +0000	[thread overview]
Message-ID: <2023112248-unskilled-flagman-05e6@gregkh> (raw)
In-Reply-To: <aca1eb79-5dee-4634-8727-eebb251c9e1e@linux.ibm.com>

On Wed, Nov 22, 2023 at 08:38:28AM +0100, Thomas Richter wrote:
> perf tool fails on linux-next since Nov 16th on s390 when invoking perf on
> any PMU event, as in
> 
>   # perf stat -e cycles -- true
> 
>    Performance counter stats for 'true':
> 
>      <not supported>      cycles                                                               
> 
>        0.000598399 seconds time elapsed
> 
>        0.000055000 seconds user
>        0.000567000 seconds sys
> 
>   # perf stat -e pai_ext/NNPA_ALL/ -C0 -- true
>   event syntax error: 'pai_ext/NNPA_ALL/'
>                        \___ Bad event or PMU
> 
>   Unable to find PMU or event on a PMU of 'pai_ext'
> 
>   Initial error:
>   event syntax error: 'pai_ext/NNPA_ALL/'
>                        \___ Cannot find PMU `pai_ext'. Missing kernel support?
>   #
> 
> This error is caused by following commit, which got into linux-next around November 15th:
> 
> commit 652ffc2104ec1f69dd4a46313888c33527145ccf
> Author: Greg KH <gregkh@linuxfoundation.org>
> Date:   Mon Jun 12 15:09:09 2023 +0200
> 
>     perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file
> 
>     Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>     Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
>     Link: https://lkml.kernel.org/r/2023061204-decal-flyable-6090@gregkh
> 
> This commit adds function pmu_dev_is_visible() as the PMU bus function
> to make sysfs attribute files visible.
> On a failing system these sysfs attribute files are exported:
> 
> #  ll /sys/devices/pai_ext/
> drwxr-xr-x. 2 root root    0 Nov 21 14:59 events
> drwxr-xr-x. 2 root root    0 Nov 21 14:59 format
> lrwxrwxrwx. 1 root root    0 Nov 21 14:43 subsystem -> ../../bus/event_source
> -rw-r--r--. 1 root root 4096 Nov 21 14:43 uevent
> #

/sys/devices/pai_ext/ is a real device?  Why there?  That's a very odd
location, what type of device is this?

> These is no file named 'type'. Other files are also missing.
> Therefore the perf tool can not access any PMU event defined by this PMU.
> 
> On a system with proper export of all PMU sysfs attributes (same linux-next kernel):
> #  ll /sys/devices/pai_crypto/
> total 0
> drwxr-xr-x. 2 root root    0 Nov 21 14:44 events
> drwxr-xr-x. 2 root root    0 Nov 21 14:44 format
> -r--r--r--. 1 root root 4096 Nov 21 14:44 nr_addr_filters
> -rw-r--r--. 1 root root 4096 Nov 21 14:44 perf_event_mux_interval_ms
> lrwxrwxrwx. 1 root root    0 Nov 21 14:43 subsystem -> ../../bus/event_source
> -r--r--r--. 1 root root 4096 Nov 21 14:44 type
> -rw-r--r--. 1 root root 4096 Nov 21 14:44 uevent

Ick, again, a "root" device?  That's not right and needs to be fixed
first.

> # cat /sys/devices/pai_crypto/type
> 12
> #
> 
> Also on such a system the perf stat works again:
> # perf stat -e pai_crypto/CRYPTO_ALL/ -C0 -- true
> 
>  Performance counter stats for 'CPU(s) 0':
> 
>                  0      pai_crypto/CRYPTO_ALL/
> 
>        0.000741258 seconds time elapsed
> 
> #
> 
> On s390 there is no need to export sysfs file 'nr_addr_filters', but setting
> this member pmu::nr_addr_filters to a non-zero value before
> calling perf_pmu_register() exhibits the old behavior again.
> 
> In my opinion this breaks previous behavior.
> 
> Is this intended?
> How to fix this?

Looks like no attributes are exported unless nr_addr_filters is present
in the device, right?  That's the way the patch was written, maybe the
change is not correct?  I wrote it a while ago, sorry, I can't
remember...

thanks,

greg k-h

  parent reply	other threads:[~2023-11-22  9:31 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-22  7:38 REGRESSION linux-next since Nov 16th, perf tool broken (at least on s390) Thomas Richter
2023-11-22  8:06 ` Bagas Sanjaya
2023-11-22  9:31 ` Greg KH [this message]
2023-11-23  7:54   ` Thomas Richter
2023-11-23  8:43     ` Greg KH
2023-11-22 10:07 ` Peter Zijlstra
2023-11-22 14:38   ` Thomas Richter
2023-11-22 15:29     ` Peter Zijlstra
2023-11-23 11:38   ` Thomas Richter

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=2023112248-unskilled-flagman-05e6@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=acme@kernel.org \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=sumanthk@linux.ibm.com \
    --cc=tmricht@linux.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox