linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Marco Elver <elver@google.com>
Cc: Namhyung Kim <namhyung@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Clark Williams <williams@redhat.com>,
	Kate Carcia <kcarcia@redhat.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	Juri Lelli <juri.lelli@redhat.com>,
	Mike Galbraith <efault@gmx.de>,
	Peter Zijlstra <peterz@infradead.org>
Subject: Re: [PATCH 2/2] perf tests sigtrap: Skip if running on a kernel with sleepable spinlocks
Date: Thu, 30 Nov 2023 10:01:15 -0300	[thread overview]
Message-ID: <ZWiHm/RmtmOfQwVI@kernel.org> (raw)
In-Reply-To: <ZWeiNj7B+5dJosE9@kernel.org>

Em Wed, Nov 29, 2023 at 05:42:30PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, Nov 29, 2023 at 04:57:47PM +0100, Marco Elver escreveu:
> > > @@ -175,7 +208,16 @@ static int run_stress_test(int fd, pthread_t *threads, pthread_barrier_t *barrie
> > >         ret = run_test_threads(threads, barrier);
> > >         TEST_ASSERT_EQUAL("disable failed", ioctl(fd, PERF_EVENT_IOC_DISABLE, 0), 0);

> > > -       TEST_ASSERT_EQUAL("unexpected sigtraps", ctx.signal_count, NUM_THREADS * ctx.iterate_on);
> > > +       expected_sigtraps = NUM_THREADS * ctx.iterate_on;

> > > +       if (ctx.signal_count < expected_sigtraps && kernel_with_sleepable_spinlocks()) {
> > > +               pr_debug("Expected %d sigtraps, got %d, running on a kernel with sleepable spinlocks.\n",
> > > +                        expected_sigtraps, ctx.signal_count);
> > > +               pr_debug("See https://lore.kernel.org/all/e368f2c848d77fbc8d259f44e2055fe469c219cf.camel@gmx.de/\n");

> > No changes from the RT side since? A fix exists, but apparently not
> > good enough... Sigh.

> Yeah, my impression, and first attempt at writing that patch wast that
> no sigtraps were being sent, but then when I tried with a random, more
> recent machine in the Red Hat labs, I got some signals, way less than
> the expected ones, but some, maybe this is an interesting data point?
 
> I'll try again to reproduce in the local machine, old i7 lenovo notebook
> and at the newer machine, a Xeon(R) Silver 4216, 32 cpu and report here.

So, on the i7 lenovo:

[root@nine ~]# uname -a
Linux nine 5.14.0-284.30.1.rt14.315.el9_2.x86_64 #1 SMP PREEMPT_RT Fri Aug 25 10:53:59 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@nine ~]# grep "model name" /proc/cpuinfo
model name	: Intel(R) Core(TM) i7-2920XM CPU @ 2.50GHz
model name	: Intel(R) Core(TM) i7-2920XM CPU @ 2.50GHz
model name	: Intel(R) Core(TM) i7-2920XM CPU @ 2.50GHz
model name	: Intel(R) Core(TM) i7-2920XM CPU @ 2.50GHz
model name	: Intel(R) Core(TM) i7-2920XM CPU @ 2.50GHz
model name	: Intel(R) Core(TM) i7-2920XM CPU @ 2.50GHz
model name	: Intel(R) Core(TM) i7-2920XM CPU @ 2.50GHz
model name	: Intel(R) Core(TM) i7-2920XM CPU @ 2.50GHz
[root@nine ~]# grep "model name" /proc/cpuinfo  | wc -l
8
[root@nine ~]#
[root@nine ~]# perf test -v sigtrap
 68: Sigtrap                                                         :
--- start ---
test child forked, pid 77679
Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
See https://lore.kernel.org/all/e368f2c848d77fbc8d259f44e2055fe469c219cf.camel@gmx.de/
test child finished with -2
---- end ----
Sigtrap: Skip
[root@nine ~]# perf test -v sigtrap |& grep Expected
Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]# perf test -v sigtrap |& grep Expected
Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]# perf test -v sigtrap |& grep Expected
Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]# perf test -v sigtrap |& grep Expected
Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]# perf test -v sigtrap |& grep Expected
Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]# perf test -v sigtrap |& grep Expected
Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]# perf test -v sigtrap |& grep Expected
Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]# perf test -v sigtrap |& grep Expected
Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]# perf test -v sigtrap |& grep Expected
Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]# perf test -v sigtrap |& grep Expected
Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]# uname -a

Consistently 0 sigtraps delivered:

[root@nine ~]# for a in $(seq 100) ; do perf test -v sigtrap |& grep Expected ; done | sort | uniq -c
    100 Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]# for a in $(seq 1000) ; do perf test -v sigtrap |& grep Expected ; done | sort | uniq -c
   1000 Expected 15000 sigtraps, got 0, running on a kernel with sleepable spinlocks.
[root@nine ~]#

While on the bigger machine:

[root@perf160 ~]# uname -a
Linux perf160.perf.lab.eng.bos.redhat.com 5.14.0-362.8.1.el9_3.x86_64+rt #1 SMP PREEMPT_RT Tue Oct 3 10:26:54 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@perf160 ~]#

[acme@perf160 ~]$ grep "model name" /proc/cpuinfo  | wc -l
32
[acme@perf160 ~]$ grep "model name" /proc/cpuinfo | head -1
model name	: Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz
[acme@perf160 ~]$
[acme@perf160 ~]$ perf test -v sigtrap
 68: Sigtrap                                                         :
--- start ---
test child forked, pid 72084
Expected 15000 sigtraps, got 1845, running on a kernel with sleepable spinlocks.
See https://lore.kernel.org/all/e368f2c848d77fbc8d259f44e2055fe469c219cf.camel@gmx.de/
test child finished with -2
---- end ----
Sigtrap: Skip
[acme@perf160 ~]$ perf test -v sigtrap
 68: Sigtrap                                                         :
--- start ---
test child forked, pid 72091
Expected 15000 sigtraps, got 2060, running on a kernel with sleepable spinlocks.
See https://lore.kernel.org/all/e368f2c848d77fbc8d259f44e2055fe469c219cf.camel@gmx.de/
test child finished with -2
---- end ----
Sigtrap: Skip
[acme@perf160 ~]$

[root@perf160 ~]# for a in $(seq 100) ; do perf test -v sigtrap |& grep Expected ; done | sort | uniq -c | sort -n
      1 Expected 15000 sigtraps, got 1010, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1064, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1139, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1165, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1166, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1177, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1206, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1279, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1321, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1359, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1368, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1400, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1432, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1490, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1520, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1527, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1532, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1566, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1597, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1600, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1630, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1652, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1689, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1706, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1709, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1753, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1765, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1778, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1830, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1896, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1901, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1903, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1908, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1909, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1930, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1951, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1976, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 1980, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2010, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2012, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2071, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2075, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2166, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2169, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2185, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2189, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2229, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2241, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2249, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2297, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2303, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2313, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2325, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2326, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2350, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2359, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2378, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2448, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2479, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2480, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2489, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2501, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2569, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2573, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2597, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2605, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2639, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2647, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2719, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2754, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2804, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2805, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2860, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 2882, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3152, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3177, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3179, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3249, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3261, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3332, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3388, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3395, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3465, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3487, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3622, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3677, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3782, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 3901, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 4087, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 4235, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 4372, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 4570, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 571, running on a kernel with sleepable spinlocks.
      1 Expected 15000 sigtraps, got 622, running on a kernel with sleepable spinlocks.
      2 Expected 15000 sigtraps, got 1929, running on a kernel with sleepable spinlocks.
      2 Expected 15000 sigtraps, got 1967, running on a kernel with sleepable spinlocks.
      2 Expected 15000 sigtraps, got 2072, running on a kernel with sleepable spinlocks.
[root@perf160 ~]# 

I guess I'll try to get hold of the older kernel with 0 sigtraps to see
if I get the same behaviour (consistent 0 sigtraps) on that kernel on
the bigger machine :-\

- Arnaldo

  reply	other threads:[~2023-11-30 13:01 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-29 15:47 [PATCH 0/2] Skip the 'perf test sigtrap' on kernels with sleepable spinlocks Arnaldo Carvalho de Melo
2023-11-29 15:47 ` [PATCH 1/2] perf test sigtrap: Generalize the BTF routine to reuse it in this test Arnaldo Carvalho de Melo
2023-11-29 15:47 ` [PATCH 2/2] perf tests sigtrap: Skip if running on a kernel with sleepable spinlocks Arnaldo Carvalho de Melo
2023-11-29 15:57   ` Marco Elver
2023-11-29 20:42     ` Arnaldo Carvalho de Melo
2023-11-30 13:01       ` Arnaldo Carvalho de Melo [this message]
2023-11-30 13:28         ` Marco Elver

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=ZWiHm/RmtmOfQwVI@kernel.org \
    --to=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=adrian.hunter@intel.com \
    --cc=efault@gmx.de \
    --cc=elver@google.com \
    --cc=irogers@google.com \
    --cc=jolsa@kernel.org \
    --cc=juri.lelli@redhat.com \
    --cc=kcarcia@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=williams@redhat.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;
as well as URLs for NNTP newsgroup(s).