All of lore.kernel.org
 help / color / mirror / Atom feed
From: Carsten Haitzler <carsten.haitzler@foss.arm.com>
To: James Clark <james.clark@arm.com>, linux-kernel@vger.kernel.org
Cc: coresight@lists.linaro.org, mathieu.poirier@linaro.org,
	mike.leach@linaro.org, linux-perf-users@vger.kernel.org,
	acme@kernel.org, Suzuki K Poulose <suzuki.poulose@arm.com>
Subject: Re: [PATCH 08/14] perf test: Add memcpy thread test shell script
Date: Fri, 8 Jul 2022 10:19:04 +0100	[thread overview]
Message-ID: <5dbda300-2ad3-ca23-6013-f3dd3126ba30@foss.arm.com> (raw)
In-Reply-To: <f6b21fa9-7e0b-cb0d-d708-cfd7f3f53087@arm.com>



On 7/5/22 15:25, James Clark wrote:
> 
> 
> On 01/07/2022 13:07, carsten.haitzler@foss.arm.com wrote:
>> From: "Carsten Haitzler (Rasterman)" <raster@rasterman.com>
>>
>> Add a script to drive the threaded memcpy test that gathers data so
>> it passes a minimum bar for amount and quality of content that we
>> extract from the kernel's perf support.
>>
> 
> On this one I get a failure about 1/50 times on N1SDP (I ran it about 150

I also see inconsistent results. The whole point of these tests is to 
point this out and provide data to track it and then lead eventually to 
improvements/fixes. A failing test is probably good - it found a 
problem. Perf test for me has lots of failures so I'm taking the 
position that failures are OK normally in perf test as long as you know 
what those failures are and why.

> times and saw 3 failures so it's quite consistent). Usually it records
> about a 1.4MB file with one aux record. But when it fails the file is
> only 20K and has one small aux record:
> 
>     0 0 0x1a10 [0x30]: PERF_RECORD_AUXTRACE size: 0x1820  offset: 0  ref: 0x1c23126d7ff3d2ab  idx: 3  tid: 682799  cpu: 3
> 
> Nothing was dropped, and the load on the system wasn't any different
> to when it passes. So I'm not sure if this is a real coresight bug
> or that the test is flaky. There was a bug in SPE before where

The binary is the same with the same content running the same perf 
command every time. Workload doesn't change. The perf data captured does 
change. It sometimes captures so little it fails even the low pass bar 
given in the test.

> threads weren't followed after forking, but only very rarely. It feels
> a bit like that.

That ... would be a "CoreSight" bug though I think, not the test.

> It could also be some contention issue because 10 threads are launched
> but the machine only has 4 cores.

We still should be capturing data reliably (in theory). If you have 10 
threads on a 4 core machine it'll take longer to run for the same 
workload as the threads will have to share the same cores, but this 
should still result in decent data collection as the cores switch 
between threads. That's the point.

> The failure message from the test looks like this:
> 
>     77: CoreSight / Memcpy 16k 10 Threads                               :
>     --- start ---
>     Couldn't synthesize bpf events.
>     [ perf record: Woken up 1 times to write data ]
>     [ perf record: Captured and wrote 0.012 MB ./perf-memcpy_thread-16k_10.data ]
>     Sanity check number of ASYNC is too low (3 < 10)
>      ---- end ----
>     CoreSight / Memcpy 16k 10 Threads: FAILED!
> 
> I didn't see this issue on any of the other tests. Sometimes very small
> files were made if I loaded the system, but the tests still passed.

For me the "Check TID" tests fails very often... but as I said - the 
point here is to find issues and ensure they are reported in results. 
The test even track the results over time/many runs in the csv files so 
you get a good idea of consistency and even how it may statistically 
change over time matching that up to changes in the kernel.

Unless of course you think it's acceptable that sometimes perf record + 
CoreSight will output essentially no data (your 20k example). :)

> Thanks
> James
> 
>> Signed-off-by: Carsten Haitzler <carsten.haitzler@arm.com>
>> ---
>>   .../shell/coresight/memcpy_thread_16k_10.sh    | 18 ++++++++++++++++++
>>   1 file changed, 18 insertions(+)
>>   create mode 100755 tools/perf/tests/shell/coresight/memcpy_thread_16k_10.sh
>>
>> diff --git a/tools/perf/tests/shell/coresight/memcpy_thread_16k_10.sh b/tools/perf/tests/shell/coresight/memcpy_thread_16k_10.sh
>> new file mode 100755
>> index 000000000000..d21ba8545938
>> --- /dev/null
>> +++ b/tools/perf/tests/shell/coresight/memcpy_thread_16k_10.sh
>> @@ -0,0 +1,18 @@
>> +#!/bin/sh -e
>> +# CoreSight / Memcpy 16k 10 Threads
>> +
>> +# SPDX-License-Identifier: GPL-2.0
>> +# Carsten Haitzler <carsten.haitzler@arm.com>, 2021
>> +
>> +TEST="memcpy_thread"
>> +. $(dirname $0)/../lib/coresight.sh
>> +ARGS="16 10 1"
>> +DATV="16k_10"
>> +DATA="$DATD/perf-$TEST-$DATV.data"
>> +
>> +perf record $PERFRECOPT -o "$DATA" "$BIN" $ARGS
>> +
>> +perf_dump_aux_verify "$DATA" 10 10 10
>> +
>> +err=$?
>> +exit $err

  parent reply	other threads:[~2022-07-08  9:19 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-01 12:07 Patch series to add to and imporve tests for CoreSight carsten.haitzler
2022-07-01 12:07 ` [PATCH 01/14] perf test: Refactor shell tests allowing subdirs carsten.haitzler
2022-07-01 12:07 ` [PATCH 02/14] perf test: Add CoreSight shell lib shared code for future tests carsten.haitzler
2022-07-01 12:07 ` [PATCH 03/14] perf test: Add build infra for perf test tools for CoreSight tests carsten.haitzler
2022-07-01 12:07 ` [PATCH 04/14] perf test: Add asm pureloop test tool carsten.haitzler
2022-07-01 12:07 ` [PATCH 05/14] perf test: Add asm pureloop test shell script carsten.haitzler
2022-07-01 12:07 ` [PATCH 06/14] perf test: Add git ignore for perf data generated by the CoreSight tests carsten.haitzler
2022-07-01 12:07 ` [PATCH 07/14] perf test: Add memcpy thread test tool carsten.haitzler
2022-07-01 12:07 ` [PATCH 08/14] perf test: Add memcpy thread test shell script carsten.haitzler
2022-07-05 14:25   ` James Clark
2022-07-05 14:28     ` James Clark
2022-07-08  9:19     ` Carsten Haitzler [this message]
2022-07-01 12:07 ` [PATCH 09/14] perf test: Add thread loop test tool carsten.haitzler
2022-07-01 12:07 ` [PATCH 10/14] perf test: Add thread loop test shell scripts carsten.haitzler
2022-07-05 13:53   ` James Clark
2022-07-08  9:21     ` Carsten Haitzler
2022-07-08 10:27       ` Mike Leach
2022-07-08 16:45         ` Carsten Haitzler
2022-07-01 12:08 ` [PATCH 11/14] perf test: Add unroll thread test tool carsten.haitzler
2022-07-01 12:08 ` [PATCH 12/14] perf test: Add unroll thread test shell script carsten.haitzler
2022-07-01 12:08 ` [PATCH 13/14] perf test: Add git ignore for tmp and output files of CoreSight tests carsten.haitzler
2022-07-01 12:08 ` [PATCH 14/14] perf test: Add relevant documentation about CoreSight testing carsten.haitzler
2022-07-02  3:02   ` Bagas Sanjaya
2022-07-08  9:27     ` Carsten Haitzler
2022-07-08 10:43       ` Mike Leach
2022-07-05 22:41   ` kernel test robot
2022-07-12 13:57 A patch series improving data quality of perf test for CoreSight carsten.haitzler
2022-07-12 13:57 ` [PATCH 08/14] perf test: Add memcpy thread test shell script carsten.haitzler

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=5dbda300-2ad3-ca23-6013-f3dd3126ba30@foss.arm.com \
    --to=carsten.haitzler@foss.arm.com \
    --cc=acme@kernel.org \
    --cc=coresight@lists.linaro.org \
    --cc=james.clark@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=mike.leach@linaro.org \
    --cc=suzuki.poulose@arm.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.