All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>, Jiri Olsa <jolsa@redhat.com>,
	Ian Rogers <irogers@google.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-perf-users <linux-perf-users@vger.kernel.org>
Subject: Re: [PATCH 00/11] perf test: test_intel_pt.sh: Add per-thread test
Date: Mon, 26 Sep 2022 20:35:18 +0100	[thread overview]
Message-ID: <YzH+9mzUUXYWpSO3@kernel.org> (raw)
In-Reply-To: <02c1e116-28e3-fe6f-5197-fae2f79c64bb@intel.com>

Em Wed, Sep 14, 2022 at 11:25:07AM +0300, Adrian Hunter escreveu:
> On 13/09/22 20:41, Namhyung Kim wrote:
> > On Mon, Sep 12, 2022 at 1:34 AM Adrian Hunter <adrian.hunter@intel.com> wrote:
> >>
> >> Hi
> >>
> >> Here is a new per-thread test for the test_intel_pt.sh test script.
> >>
> >> The first 9 patches are tidy-ups for the script, mostly based on results
> >> from the shellcheck utility.
> >>
> >> The 10th patch adds debug prints that the script will capture to help
> >> verify correct operation.
> >>
> >> The final patch actually adds the new test.
> >>
> >>
> >> Adrian Hunter (11):
> >>       perf test: test_intel_pt.sh: Add cleanup function
> >>       perf test: test_intel_pt.sh: Use a temp directory
> >>       perf test: test_intel_pt.sh: Fix redirection
> >>       perf test: test_intel_pt.sh: Stop using expr
> >>       perf test: test_intel_pt.sh: Stop using backticks
> >>       perf test: test_intel_pt.sh: Use grep -c instead of grep plus wc -l
> >>       perf test: test_intel_pt.sh: Use quotes around variable expansion
> >>       perf test: test_intel_pt.sh: Fix return checking
> >>       perf test: test_intel_pt.sh: Add more output in preparation for more tests
> >>       perf tools: Add debug messages and comments for testing
> >>       perf test: test_intel_pt.sh: Add per-thread test
> > 
> > I don't think I understood all the black magic in patch 11. :)
> 
> It is not that bad :-)

:-)

Thanks, applied the series.

- Arnaldo
 
> Consider the output from the test:
> 
> 
> 	$ perf test -v " intel pt"
> 	Couldn't bump rlimit(MEMLOCK), failures may take place when creating BPF maps, etc
> 	102: Miscellaneous Intel PT testing                                  :
> 	--- start ---
> 	test child forked, pid 155646
> <SNIP>
> 	--- Test per-thread recording ---
> 	Workload PIDs are 155669 and 155670
> 	perf PID is 155681
> 	Waiting for "perf record has started" message
> 	OK
> 	pid 155669 cpu -1 fd 5 : sys_perf_event_open: pid 155669  cpu -1 group_fd -1  flags 0x8 = 5
> 
> awk has matched the debug message and determined the values for pid, cpu and fd
> 
> 	pid 155673 cpu -1 fd 6 : sys_perf_event_open: pid 155673  cpu -1 group_fd -1  flags 0x8 = 6
> 	pid 155670 cpu -1 fd 7 : sys_perf_event_open: pid 155670  cpu -1 group_fd -1  flags 0x8 = 7
> 	pid 155672 cpu -1 fd 8 : sys_perf_event_open: pid 155672  cpu -1 group_fd -1  flags 0x8 = 8
> 	pid 155669 cpu -1 fd 9 : sys_perf_event_open: pid 155669  cpu -1 group_fd -1  flags 0x8 = 9
> 	pid 155673 cpu -1 fd 10 : sys_perf_event_open: pid 155673  cpu -1 group_fd -1  flags 0x8 = 10
> 	pid 155670 cpu -1 fd 11 : sys_perf_event_open: pid 155670  cpu -1 group_fd -1  flags 0x8 = 11
> 	pid 155672 cpu -1 fd 12 : sys_perf_event_open: pid 155672  cpu -1 group_fd -1  flags 0x8 = 12
> 	fd 5 : idx 0: mmapping fd 5
> 	
> awk has matched the debug message and determined the values for fd
> 	
> 	fd 9 fd_to 5 : idx 0: set output fd 9 -> 5
> 	
> awk has matched the debug message and determined the values for fd and fd_to
> 
> 	fd 6 : idx 1: mmapping fd 6
> 	fd 10 fd_to 6 : idx 1: set output fd 10 -> 6
> 	fd 7 : idx 2: mmapping fd 7
> 	fd 11 fd_to 7 : idx 2: set output fd 11 -> 7
> 	fd 8 : idx 3: mmapping fd 8
> 	fd 12 fd_to 8 : idx 3: set output fd 12 -> 8
> 	Checking 8 fds
> 
> Now awk is checking:
> - every fd is mmapped or set-output
> - there is 1 mmap per unique pid
> - there is 1 mmap per unique cpu
> - there are the right number of different pids
> i.e.
> 	END {
> 		print "Checking " length(fd_array) " fds"
> 		for (fd in fd_array) {
> 			if (fd in mmap_array) {
> 				pid = pid_array[fd]
> 				if (pid != -1) {
> 					if (pid in pids) {
> 						print "More than 1 mmap for PID " pid
> 						exit 1
> 					}
> 					pids[pid] = 1
> 				}
> 				cpu = cpu_array[fd]
> 				if (cpu != -1) {
> 					if (cpu in cpus) {
> 						print "More than 1 mmap for CPU " cpu
> 						exit 1
> 					}
> 					cpus[cpu] = 1
> 				}
> 			} else if (!(fd in set_output_array)) {
> 				print "No mmap for fd " fd
> 				exit 1
> 			}
> 		}
> 		n = length(pids)
> 		if (n != thread_cnt) {
> 			print "Expected " thread_cnt " per-thread mmaps - found " n
> 			exit 1
> 		}
> 	}
> 
> > At least we can move some helper functions to the lib and
> > reuse them in other tests.  I'll test that later..
> > 
> > So for patch 01-10,
> > 
> > Acked-by: Namhyung Kim <namhyung@kernel.org>
> > 
> > Thanks,
> > Namhyung
> > 
> > 
> >>
> >>  tools/lib/perf/evlist.c                 |   2 +
> >>  tools/perf/builtin-record.c             |   8 +
> >>  tools/perf/tests/shell/test_intel_pt.sh | 307 ++++++++++++++++++++++++++++++--
> >>  tools/perf/util/evsel.c                 |   2 +
> >>  4 files changed, 304 insertions(+), 15 deletions(-)
> >>
> >>
> >> Regards
> >> Adrian

-- 

- Arnaldo

      reply	other threads:[~2022-09-26 19:35 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-12  8:34 [PATCH 00/11] perf test: test_intel_pt.sh: Add per-thread test Adrian Hunter
2022-09-12  8:34 ` [PATCH 01/11] perf test: test_intel_pt.sh: Add cleanup function Adrian Hunter
2022-09-12  8:34 ` [PATCH 02/11] perf test: test_intel_pt.sh: Use a temp directory Adrian Hunter
2022-09-12  8:34 ` [PATCH 03/11] perf test: test_intel_pt.sh: Fix redirection Adrian Hunter
2022-09-12  8:34 ` [PATCH 04/11] perf test: test_intel_pt.sh: Stop using expr Adrian Hunter
2022-09-12  8:34 ` [PATCH 05/11] perf test: test_intel_pt.sh: Stop using backticks Adrian Hunter
2022-09-12  8:34 ` [PATCH 06/11] perf test: test_intel_pt.sh: Use grep -c instead of grep plus wc -l Adrian Hunter
2022-09-12  8:34 ` [PATCH 07/11] perf test: test_intel_pt.sh: Use quotes around variable expansion Adrian Hunter
2022-09-12  8:34 ` [PATCH 08/11] perf test: test_intel_pt.sh: Fix return checking Adrian Hunter
2022-09-12  8:34 ` [PATCH 09/11] perf test: test_intel_pt.sh: Add more output in preparation for more tests Adrian Hunter
2022-09-12  8:34 ` [PATCH 10/11] perf tools: Add debug messages and comments for testing Adrian Hunter
2022-09-12  8:34 ` [PATCH 11/11] perf test: test_intel_pt.sh: Add per-thread test Adrian Hunter
2022-09-13 17:37   ` Namhyung Kim
2022-09-13 17:41 ` [PATCH 00/11] " Namhyung Kim
2022-09-14  8:25   ` Adrian Hunter
2022-09-26 19:35     ` Arnaldo Carvalho de Melo [this message]

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=YzH+9mzUUXYWpSO3@kernel.org \
    --to=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=irogers@google.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=namhyung@kernel.org \
    /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.