From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Michael Petlan <mpetlan@redhat.com>
Cc: linux-perf-users@vger.kernel.org,
Veronika Molnarova <vmolnaro@redhat.com>,
acme@redhat.com, mhiramat@kernel.org,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Athira Rajeev <atrajeev@linux.vnet.ibm.com>,
Kajol Jain <kjain@linux.ibm.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/7] perf testsuite: Add common regex patters
Date: Wed, 31 Jan 2024 10:53:01 -0300 [thread overview]
Message-ID: <ZbpQvUFO0oQ7c_Iq@kernel.org> (raw)
In-Reply-To: <ZbpPa1ZjoOdGw9Yd@kernel.org>
Em Wed, Jan 31, 2024 at 10:47:23AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, Jan 31, 2024 at 12:39:45PM +0100, Michael Petlan escreveu:
> > From: Veronika Molnarova <vmolnaro@redhat.com>
> > Unify perf regexes for checking testing output into a single file
> > to reduce duplicates and prevent errors when editing.
> > This will be used in upcomming patches in shell tests.
> Thanks for working on this!
> The cover letter could've said that this is an effort to upstream a
> pre-existing test suite that is being used for quite a long time, that
> it is available in github, etc :-)
Also it should CC the perf tools reviewers and maintainers:
⬢[acme@toolbox perf-tools]$ scripts/get_maintainer.pl tools/perf/tests/shell/
Peter Zijlstra <peterz@infradead.org> (supporter:PERFORMANCE EVENTS SUBSYSTEM)
Ingo Molnar <mingo@redhat.com> (supporter:PERFORMANCE EVENTS SUBSYSTEM)
Arnaldo Carvalho de Melo <acme@kernel.org> (supporter:PERFORMANCE EVENTS SUBSYSTEM,commit_signer:101/122=83%)
Namhyung Kim <namhyung@kernel.org> (supporter:PERFORMANCE EVENTS SUBSYSTEM,commit_signer:40/122=33%,authored:13/122=11%)
Mark Rutland <mark.rutland@arm.com> (reviewer:PERFORMANCE EVENTS SUBSYSTEM)
Alexander Shishkin <alexander.shishkin@linux.intel.com> (reviewer:PERFORMANCE EVENTS SUBSYSTEM)
Jiri Olsa <jolsa@kernel.org> (reviewer:PERFORMANCE EVENTS SUBSYSTEM)
Ian Rogers <irogers@google.com> (reviewer:PERFORMANCE EVENTS SUBSYSTEM,commit_signer:66/122=54%,authored:17/122=14%)
Adrian Hunter <adrian.hunter@intel.com> (reviewer:PERFORMANCE EVENTS SUBSYSTEM,authored:8/122=7%)
Athira Rajeev <atrajeev@linux.vnet.ibm.com> (commit_signer:50/122=41%,authored:20/122=16%)
Kajol Jain <kjain@linux.ibm.com> (commit_signer:31/122=25%,authored:10/122=8%)
linux-perf-users@vger.kernel.org (open list:PERFORMANCE EVENTS SUBSYSTEM)
linux-kernel@vger.kernel.org (open list:PERFORMANCE EVENTS SUBSYSTEM)
⬢[acme@toolbox perf-tools]$
For reviewers, the series of patches can be accessed via the
linux-perf-users mail archive at:
https://lore.kernel.org/linux-perf-users/ZbpPa1ZjoOdGw9Yd@kernel.org/
There are many, many tests in Michael's test suite, its super great that
this work is being done so that people using 'perf test' will have a far
greater tool testing coverage,
Again, thanks a lot!
- Arnaldo
> > Signed-off-by: Veronika Molnarova <vmolnaro@redhat.com>
> > Signed-off-by: Michael Petlan <mpetlan@redhat.com>
> > ---
> > tools/perf/tests/shell/common/patterns.sh | 256 ++++++++++++++++++++++
> > 1 file changed, 256 insertions(+)
> > create mode 100644 tools/perf/tests/shell/common/patterns.sh
> >
> > diff --git a/tools/perf/tests/shell/common/patterns.sh b/tools/perf/tests/shell/common/patterns.sh
> > new file mode 100644
> > index 000000000000..919a07b8b454
> > --- /dev/null
> > +++ b/tools/perf/tests/shell/common/patterns.sh
> > @@ -0,0 +1,256 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +
> > +export RE_NUMBER="[0-9\.]+"
> > +# Number
> > +# Examples:
> > +# 123.456
> > +
> > +
> > +export RE_NUMBER_HEX="[0-9A-Fa-f]+"
> > +# Hexadecimal number
> > +# Examples:
> > +# 1234
> > +# a58d
> > +# aBcD
> > +# deadbeef
> > +
> > +
> > +export RE_DATE_YYYYMMDD="[0-9]{4}-(?:(?:01|03|05|07|08|10|12)-(?:[0-2][0-9]|3[0-1])|02-[0-2][0-9]|(?:(?:04|06|09|11)-(?:[0-2][0-9]|30)))"
> > +# Date in YYYY-MM-DD form
> > +# Examples:
> > +# 1990-02-29
> > +# 0015-07-31
> > +# 2456-12-31
> > +#! 2012-13-01
> > +#! 1963-09-31
> > +
> > +
> > +export RE_TIME="(?:[0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]"
> > +# Time
> > +# Examples:
> > +# 15:12:27
> > +# 23:59:59
> > +#! 24:00:00
> > +#! 11:25:60
> > +#! 17:60:15
> > +
> > +
> > +export RE_DATE_TIME="\w+\s+\w+\s+$RE_NUMBER\s+$RE_TIME\s+$RE_NUMBER"
> > +# Time and date
> > +# Examples:
> > +# Wed Feb 12 10:46:26 2020
> > +# Mon Mar 2 13:27:06 2020
> > +#! St úno 12 10:57:21 CET 2020
> > +#! Po úno 14 15:17:32 2010
> > +
> > +
> > +export RE_ADDRESS="0x$RE_NUMBER_HEX"
> > +# Memory address
> > +# Examples:
> > +# 0x123abc
> > +# 0xffffffff9abe8ae8
> > +# 0x0
> > +
> > +
> > +export RE_ADDRESS_NOT_NULL="0x[0-9A-Fa-f]*[1-9A-Fa-f]+[0-9A-Fa-f]*"
> > +# Memory address (not NULL)
> > +# Examples:
> > +# 0xffffffff9abe8ae8
> > +#! 0x0
> > +#! 0x0000000000000000
> > +
> > +export RE_PROCESS_PID="\w+\/\d+"
> > +# A process with PID
> > +# Example:
> > +# sleep/4102
> > +
> > +
> > +export RE_EVENT_ANY="[\w\-\:\/_=,]+"
> > +# Name of any event (universal)
> > +# Examples:
> > +# cpu-cycles
> > +# cpu/event=12,umask=34/
> > +# r41e1
> > +# nfs:nfs_getattr_enter
> > +
> > +
> > +export RE_EVENT="[\w\-:_]+"
> > +# Name of an usual event
> > +# Examples:
> > +# cpu-cycles
> > +
> > +
> > +export RE_EVENT_RAW="r$RE_NUMBER_HEX"
> > +# Specification of a raw event
> > +# Examples:
> > +# r41e1
> > +# r1a
> > +
> > +
> > +export RE_EVENT_CPU="cpu/(\w+=$RE_NUMBER_HEX,?)+/p*"
> > +# Specification of a CPU event
> > +# Examples:
> > +# cpu/event=12,umask=34/pp
> > +
> > +
> > +export RE_EVENT_UNCORE="uncore/[\w_]+/"
> > +# Specification of an uncore event
> > +# Examples:
> > +# uncore/qhl_request_local_reads/
> > +
> > +
> > +export RE_EVENT_SUBSYSTEM="[\w\-]+:[\w\-]+"
> > +# Name of an event from subsystem
> > +# Examples:
> > +# ext4:ext4_ordered_write_end
> > +# sched:sched_switch
> > +
> > +
> > +export RE_FILE_NAME="[\w\+\.-]+"
> > +# A filename
> > +# Examples:
> > +# libstdc++.so.6
> > +#! some/path
> > +
> > +
> > +export RE_PATH_ABSOLUTE="(?:\/$RE_FILE_NAME)+"
> > +# A full filepath
> > +# Examples:
> > +# /usr/lib64/somelib.so.5.4.0
> > +# /lib/modules/4.3.0-rc5/kernel/fs/xfs/xfs.ko
> > +# /usr/bin/mv
> > +#! some/relative/path
> > +#! ./some/relative/path
> > +
> > +
> > +export RE_PATH="(?:$RE_FILE_NAME)?$RE_PATH_ABSOLUTE"
> > +# A filepath
> > +# Examples:
> > +# /usr/lib64/somelib.so.5.4.0
> > +# /lib/modules/4.3.0-rc5/kernel/fs/xfs/xfs.ko
> > +# ./.emacs
> > +# src/fs/file.c
> > +
> > +
> > +export RE_DSO="(?:$RE_PATH_ABSOLUTE(?: \(deleted\))?|\[kernel\.kallsyms\]|\[unknown\]|\[vdso\]|\[kernel\.vmlinux\][\.\w]*)"
> > +# A DSO name in various result tables
> > +# Examples:
> > +# /usr/lib64/somelib.so.5.4.0
> > +# /usr/bin/somebinart (deleted)
> > +# /lib/modules/4.3.0-rc5/kernel/fs/xfs/xfs.ko
> > +# [kernel.kallsyms]
> > +# [kernel.vmlinux]
> > +# [vdso]
> > +# [unknown]
> > +
> > +
> > +export RE_LINE_COMMENT="^#.*"
> > +# A comment line
> > +# Examples:
> > +# # Started on Thu Sep 10 11:43:00 2015
> > +
> > +
> > +export RE_LINE_EMPTY="^\s*$"
> > +# An empty line with possible whitespaces
> > +# Examples:
> > +#
> > +
> > +
> > +export RE_LINE_RECORD1="^\[\s+perf\s+record:\s+Woken up $RE_NUMBER times? to write data\s+\].*$"
> > +# The first line of perf-record "OK" output
> > +# Examples:
> > +# [ perf record: Woken up 1 times to write data ]
> > +
> > +
> > +export RE_LINE_RECORD2="^\[\s+perf\s+record:\s+Captured and wrote $RE_NUMBER\s*MB\s+(?:[\w\+\.-]*(?:$RE_PATH)?\/)?perf\.data(?:\.\d+)?\s*\(~?$RE_NUMBER samples\)\s+\].*$"
> > +# The second line of perf-record "OK" output
> > +# Examples:
> > +# [ perf record: Captured and wrote 0.405 MB perf.data (109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB perf.data (~109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB /some/temp/dir/perf.data (109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB ./perf.data (109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB ./perf.data.3 (109 samples) ]
> > +
> > +
> > +export RE_LINE_RECORD2_TOLERANT="^\[\s+perf\s+record:\s+Captured and wrote $RE_NUMBER\s*MB\s+(?:[\w\+\.-]*(?:$RE_PATH)?\/)?perf\.data(?:\.\d+)?\s*(?:\(~?$RE_NUMBER samples\))?\s+\].*$"
> > +# The second line of perf-record "OK" output, even no samples is OK here
> > +# Examples:
> > +# [ perf record: Captured and wrote 0.405 MB perf.data (109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB perf.data (~109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB /some/temp/dir/perf.data (109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB ./perf.data (109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB ./perf.data.3 (109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB perf.data ]
> > +
> > +
> > +export RE_LINE_RECORD2_TOLERANT_FILENAME="^\[\s+perf\s+record:\s+Captured and wrote $RE_NUMBER\s*MB\s+(?:[\w\+\.-]*(?:$RE_PATH)?\/)?perf\w*\.data(?:\.\d+)?\s*\(~?$RE_NUMBER samples\)\s+\].*$"
> > +# The second line of perf-record "OK" output
> > +# Examples:
> > +# [ perf record: Captured and wrote 0.405 MB perf.data (109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB perf_ls.data (~109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB perf_aNyCaSe.data (109 samples) ]
> > +# [ perf record: Captured and wrote 0.405 MB ./perfdata.data.3 (109 samples) ]
> > +#! [ perf record: Captured and wrote 0.405 MB /some/temp/dir/my_own.data (109 samples) ]
> > +#! [ perf record: Captured and wrote 0.405 MB ./UPPERCASE.data (109 samples) ]
> > +#! [ perf record: Captured and wrote 0.405 MB ./aNyKiNDoF.data.3 (109 samples) ]
> > +#! [ perf record: Captured and wrote 0.405 MB perf.data ]
> > +
> > +
> > +export RE_LINE_TRACE_FULL="^\s*$RE_NUMBER\s*\(\s*$RE_NUMBER\s*ms\s*\):\s*$RE_PROCESS_PID\s+.*\)\s+=\s+\-?$RE_NUMBER|$RE_NUMBER_HEX.*$"
> > +# A line of perf-trace output
> > +# Examples:
> > +# 0.115 ( 0.005 ms): sleep/4102 open(filename: 0xd09e2ab2, flags: CLOEXEC ) = 3
> > +# 0.157 ( 0.005 ms): sleep/4102 mmap(len: 3932736, prot: EXEC|READ, flags: PRIVATE|DENYWRITE, fd: 3 ) = 0x7f89d0605000
> > +
> > +export RE_LINE_TRACE_ONE_PROC="^\s*$RE_NUMBER\s*\(\s*$RE_NUMBER\s*ms\s*\):\s*\w+\(.*\)\s+=\s+(?:\-?$RE_NUMBER)|(?:0x$RE_NUMBER_HEX).*$"
> > +# A line of perf-trace output
> > +# Examples:
> > +# 0.115 ( 0.005 ms): open(filename: 0xd09e2ab2, flags: CLOEXEC ) = 3
> > +# 0.157 ( 0.005 ms): mmap(len: 3932736, prot: EXEC|READ, flags: PRIVATE|DENYWRITE, fd: 3 ) = 0x7f89d0605000
> > +
> > +export RE_LINE_TRACE_CONTINUED="^\s*$RE_NUMBER\s*\(\s*$RE_NUMBER\s*ms\s*\):\s*\.\.\.\s*\[continued\]:\s+\w+\(\).*\s+=\s+(?:\-?$RE_NUMBER)|(?:0x$RE_NUMBER_HEX).*$"
> > +# A line of perf-trace output
> > +# Examples:
> > +# 0.000 ( 0.000 ms): ... [continued]: nanosleep()) = 0
> > +# 0.000 ( 0.000 ms): ... [continued]: nanosleep()) = 0x00000000
> > +
> > +export RE_LINE_TRACE_SUMMARY_HEADER="\s*syscall\s+calls\s+(?:errors\s+)?total\s+min\s+avg\s+max\s+stddev"
> > +# A header of a perf-trace summary table
> > +# Example:
> > +# syscall calls total min avg max stddev
> > +# syscall calls errors total min avg max stddev
> > +
> > +
> > +export RE_LINE_TRACE_SUMMARY_CONTENT="^\s*\w+\s+(?:$RE_NUMBER\s+){5,6}$RE_NUMBER%"
> > +# A line of a perf-trace summary table
> > +# Example:
> > +# open 3 0.017 0.005 0.006 0.007 10.90%
> > +# openat 2 0 0.017 0.008 0.009 0.010 12.29%
> > +
> > +
> > +export RE_LINE_REPORT_CONTENT="^\s+$RE_NUMBER%\s+\w+\s+\S+\s+\S+\s+\S+" # FIXME
> > +# A line from typicap perf report --stdio output
> > +# Example:
> > +# 100.00% sleep [kernel.vmlinux] [k] syscall_return_slowpath
> > +
> > +
> > +export RE_TASK="\s+[\w~\/ \.\+:#-]+(?:\[-1(?:\/\d+)?\]|\[\d+(?:\/\d+)?\])"
> > +# A name of a task used for perf sched timehist -s
> > +# Example:
> > +# sleep[62755]
> > +# runtest.sh[62762]
> > +# gmain[705/682]
> > +# xfsaild/dm-0[495]
> > +# kworker/u8:1-ev[62714]
> > +# :-1[-1/62756]
> > +# :-1[-1]
> > +# :-1[62756]
> > +
> > +
> > +export RE_SEGFAULT=".*(?:Segmentation\sfault|SIGSEGV|\score\s|dumped|segfault).*"
> > +# Possible variations of the segfault message
> > +# Example:
> > +# /bin/bash: line 1: 32 Segmentation fault timeout 15s
> > +# Segmentation fault (core dumped)
> > +# Program terminated with signal SIGSEGV
> > +#! WARNING: 12323431 isn't a 'cpu_core', please use a CPU list in the 'cpu_core' range (0-15)
> > --
> > 2.43.0
> >
>
> --
>
> - Arnaldo
--
- Arnaldo
next prev parent reply other threads:[~2024-01-31 13:53 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-31 11:39 [PATCH 1/7] perf testsuite: Add common regex patters Michael Petlan
2024-01-31 11:39 ` [PATCH 2/7] perf testsuite: Add common setting for shell tests Michael Petlan
2024-01-31 11:39 ` [PATCH 3/7] perf testsuite: Add initialization script " Michael Petlan
2024-01-31 11:39 ` [PATCH 4/7] perf testsuite: Add test case for perf probe Michael Petlan
2024-01-31 11:39 ` [PATCH 5/7] perf testsuite: Add common output checking helpers Michael Petlan
2024-01-31 11:39 ` [PATCH 6/7] perf testsuite: Add test for kprobe handling Michael Petlan
2024-01-31 11:39 ` [PATCH 7/7] perf testsuite: Install kprobe tests and common files Michael Petlan
2024-01-31 13:47 ` [PATCH 1/7] perf testsuite: Add common regex patters Arnaldo Carvalho de Melo
2024-01-31 13:53 ` Arnaldo Carvalho de Melo [this message]
2024-02-01 23:59 ` Namhyung Kim
2024-02-02 0:05 ` Namhyung Kim
2024-02-08 16:49 ` Michael Petlan
2024-02-09 7:13 ` Namhyung Kim
2024-02-09 22:56 ` Namhyung Kim
2024-02-15 11:02 ` [PATCH v2 0/7] Add perf testsuite into perf-test Michael Petlan
2024-02-15 11:02 ` [PATCH v2 1/7] perf testsuite: Add common regex patters Michael Petlan
2024-02-15 11:02 ` [PATCH v2 2/7] perf testsuite: Add common setting for shell tests Michael Petlan
2024-02-15 11:02 ` [PATCH v2 3/7] perf testsuite: Add initialization script " Michael Petlan
2024-02-15 11:02 ` [PATCH v2 4/7] perf testsuite: Add test case for perf probe Michael Petlan
2024-02-15 11:02 ` [PATCH v2 5/7] perf testsuite: Add common output checking helpers Michael Petlan
2024-02-15 11:02 ` [PATCH v2 6/7] perf testsuite: Add test for kprobe handling Michael Petlan
2024-02-15 11:02 ` [PATCH v2 7/7] perf testsuite: Install kprobe tests and common files Michael Petlan
2024-02-21 1:58 ` [PATCH v2 0/7] Add perf testsuite into perf-test Namhyung Kim
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=ZbpQvUFO0oQ7c_Iq@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=atrajeev@linux.vnet.ibm.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=kjain@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=mpetlan@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=vmolnaro@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 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.