Re: [PATCH v2 0/4] perf: Make SIGTRAP and __perf_pending_irq() work on RT.

From: Arnaldo Carvalho de Melo
Date: Wed Mar 13 2024 - 16:14:36 EST


On Wed, Mar 13, 2024 at 05:12:25PM -0300, Arnaldo Carvalho de Melo wrote:
> On Wed, Mar 13, 2024 at 03:30:52PM -0300, Arnaldo Carvalho de Melo wrote:
> > On Wed, Mar 13, 2024 at 03:14:28PM -0300, Arnaldo Carvalho de Melo wrote:
> > > 'perf test' doesn't show any regression, now I'm running Vince Weaver's
> > > https://github.com/deater/perf_event_tests, storing the results with
> > > this patchset and then without, to do a diff, lets see...

> > So things improved! I'll re-run to see if these results are stable...

> tldr; No dmesg activity, no kernel splats, most tests passed, nothing
> noticeable when running with/without the patch with Vince's regression
> tests. So:

> Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> Reported-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

Too quick, now I'm testing it on top of torvalds/master, no PREEMPT_RT.

- Arnaldo

> - Arnaldo
>
> Further details:
>
> Without the patch:
>
> [root@nine perf_event_tests]# ./run_tests.sh | tee results.$(uname -r).new ; diff -u results.$(uname -r) results.$(uname -r).new
> --- results.6.8.0-rc7-rt6 2024-03-13 15:26:37.923323518 -0300
> +++ results.6.8.0-rc7-rt6.new 2024-03-13 15:32:43.983245095 -0300
> @@ -296,7 +296,7 @@
> + tests/rdpmc/rdpmc_validation
> Testing if userspace rdpmc reads give expected results... PASSED
> + tests/rdpmc/rdpmc_multiplexing
> - Testing if userspace rdpmc multiplexing works... PASSED
> + Testing if userspace rdpmc multiplexing works... FAILED
> + tests/rdpmc/rdpmc_reset
> Testing if resetting while using rdpmc works... PASSED
> + tests/rdpmc/rdpmc_group
> @@ -304,15 +304,15 @@
> + tests/rdpmc/rdpmc_attach
> Testing if rdpmc attach works... PASSED
> + tests/rdpmc/rdpmc_attach_cpu
> - Running on CPU 4
> + Running on CPU 0
> Testing if rdpmc behavior on attach CPU... PASSED
> + tests/rdpmc/rdpmc_attach_global_cpu
> - Running on CPU 6
> + Running on CPU 3
> Testing if rdpmc behavior on attach all procs on other CPU... FAILED
> + tests/rdpmc/rdpmc_attach_other_cpu
> - Measuring on CPU 5
> -Running on CPU 6
> -Measuring on CPU 5
> + Measuring on CPU 0
> +Running on CPU 3
> +Measuring on CPU 0
> Testing if rdpmc behavior on attach other CPU... FAILED
> + tests/rdpmc/rdpmc_multiattach
> Testing if rdpmc multi-attach works... PASSED
>
> A test flipped results.
>
> Trying again with a more compact output:
>
> [root@nine perf_event_tests]# ./run_tests.sh | tee results.$(uname -r).new ; diff -u results.$(uname -r) results.$(uname -r).new | grep ^[+-]
> --- results.6.8.0-rc7-rt6 2024-03-13 15:26:37.923323518 -0300
> +++ results.6.8.0-rc7-rt6.new 2024-03-13 17:06:34.944149451 -0300
> - Running on CPU 4
> -Testing if rdpmc behavior on attach CPU... PASSED
> - + tests/rdpmc/rdpmc_attach_global_cpu
> +Testing if rdpmc behavior on attach CPU... FAILED
> + + tests/rdpmc/rdpmc_attach_global_cpu
> + Running on CPU 0
> - Measuring on CPU 5
> -Running on CPU 6
> -Measuring on CPU 5
> + Measuring on CPU 7
> +Running on CPU 1
> +Measuring on CPU 7
> [root@nine perf_event_tests]#
>
> Since its that rdpmc that is now always failing without this patch
> series, lets try using that .new as the new baseline:
>
> [root@nine perf_event_tests]# ./run_tests.sh | tee results.$(uname -r).new2 ; diff -u results.$(uname -r).new results.$(uname -r).new2 | grep ^[+-]
> --- results.6.8.0-rc7-rt6.new 2024-03-13 17:06:34.944149451 -0300
> +++ results.6.8.0-rc7-rt6.new2 2024-03-13 17:08:41.438282558 -0300
> - Testing "branch-misses" generalized event... FAILED
> + Testing "branch-misses" generalized event... PASSED
> - Testing if userspace rdpmc multiplexing works... PASSED
> + Testing if userspace rdpmc multiplexing works... FAILED
> - Running on CPU 6
> -Testing if rdpmc behavior on attach CPU... FAILED
> + Running on CPU 2
> +Testing if rdpmc behavior on attach CPU... PASSED
> - Running on CPU 0
> + Running on CPU 2
> - Measuring on CPU 7
> -Running on CPU 1
> -Measuring on CPU 7
> + Measuring on CPU 2
> +Running on CPU 0
> +Measuring on CPU 2
> [root@nine perf_event_tests]#