From: Linu Cherian <linuc.decode@gmail.com>
To: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
Coresight ML <coresight@lists.linaro.org>,
Mathieu Poirier <mathieu.poirier@linaro.org>,
Linu Cherian <lcherian@marvell.com>,
Mike Leach <mike.leach@linaro.org>
Subject: Re: [PATCH v4 0/2] Make sysFS functional on topologies with per core sink
Date: Thu, 12 Nov 2020 14:27:52 +0530 [thread overview]
Message-ID: <CAAHhmWjTUO_qDi-i2VORVsKt+h8Q+wEB7c0gcShi9RdxJx0CWA@mail.gmail.com> (raw)
In-Reply-To: <e9d63953-61dd-c0b9-3c2c-12d3ed19de5e@arm.com>
Hi Suzuki,
On Tue, Nov 10, 2020 at 8:27 PM Suzuki K Poulose <suzuki.poulose@arm.com> wrote:
>
> Hi Linu
>
> On 11/10/20 12:57 PM, Linu Cherian wrote:
> > Hi Suzuki,
> >
> ...
>
> >> We are facing some issues while trying out perf. This doesn't appear
> >> to be related to your patch though. Will share the details once we
> >> do some initial analysis on it.
> >>
> >> Thanks.
> >
> > # ./perf record -vvv -e cs_etm// --per-thread uname -a
> > Using CPUID 0x00000000430f0b40
> > Attempting to add event pmu 'cs_etm' with '' that may result in non-fatal errors
> > nr_cblocks: 0
> > affinity: SYS
> > mmap flush: 1
> > comp level: 0
> > maps__set_modules_path_dir: cannot open
> > /lib/modules/5.9.0-rc5-00116-g91c9ea890e1a dir
> > Problems setting modules path maps, continuing anyway...
> > ------------------------------------------------------------
> > perf_event_attr:
> > type 8
> > size 120
> > { sample_period, sample_freq } 1
> > sample_type IP|TID|IDENTIFIER
> > read_format ID
> > disabled 1
> > enable_on_exec 1
> > sample_id_all 1
> > exclude_guest 1
> > ------------------------------------------------------------
> > sys_perf_event_open: pid 3333 cpu -1 group_fd -1 flags 0x8 = 5
> > ------------------------------------------------------------
> > perf_event_attr:
> > type 1
> > size 120
> > config 0x9
> > { sample_period, sample_freq } 1
> > sample_type IP|TID|IDENTIFIER
> > read_format ID
> > disabled 1
> > exclude_kernel 1
> > exclude_hv 1
> > mmap 1
> > comm 1
> > enable_on_exec 1
> > task 1
> > sample_id_all 1
> > exclude_guest 1
> > mmap2 1
> > comm_exec 1
> > context_switch 1
> > ksymbol 1
> > bpf_event 1
> > ------------------------------------------------------------
> > sys_perf_event_open: pid 3333 cpu -1 group_fd -1 flags 0x8 = 6
> > mmap size 589824B
> > AUX area mmap length 4194304
> > ------------------------------------------------------------
> > perf_event_attr:
> > type 1
> > size 120
> > config 0x9
> > watermark 1
> > sample_id_all 1
> > bpf_event 1
> > { wakeup_events, wakeup_watermark } 1
> > ------------------------------------------------------------
> > sys_perf_event_open: pid -1 cpu -1 group_fd -1 flags 0x8
> > sys_perf_event_open failed, error -22
> > switching off bpf_event
> > ------------------------------------------------------------
> > perf_event_attr:
> > type 1
> > size 120
> > config 0x9
> > watermark 1
> > sample_id_all 1
> > { wakeup_events, wakeup_watermark } 1
> > ------------------------------------------------------------
> > sys_perf_event_open: pid -1 cpu -1 group_fd -1 flags 0x8
> > sys_perf_event_open failed, error -22
> > switching off cloexec flag
> > ------------------------------------------------------------
> > perf_event_attr:
> > type 1
> > size 120
> > config 0x9
> > watermark 1
> > sample_id_all 1
> > { wakeup_events, wakeup_watermark } 1
> > ------------------------------------------------------------
> > sys_perf_event_open: pid -1 cpu -1 group_fd -1 flags 0
> > sys_perf_event_open failed, error -22
> > switching off sample_id_all
> > ------------------------------------------------------------
> > perf_event_attr:
> > type 1
> > size 120
> > config 0x9
> > watermark 1
> > { wakeup_events, wakeup_watermark } 1
> > ------------------------------------------------------------
> > sys_perf_event_open: pid -1 cpu -1 group_fd -1 flags 0
> > sys_perf_event_open failed, error -22
> > Couldn't start the BPF side band thread:
> > BPF programs starting from now on won't be annotatable
> > Synthesizing auxtrace information
> > cannot find cgroup mount point
> > Couldn't synthesize cgroup events.
> > Control descriptor is not initialized
> > Linux marvell 5.9.0-rc5-00116-g91c9ea890e1a #823 SMP PREEMPT Tue Nov
> > 10 10:49:15 IST 2020 aarch64 aarch64 aarch64 GNU/Linux
>
> > auxtrace idx 0 old 0 head 0xdd50 diff 0xdd50
>
> I haven't seen this in the normal verbose output.
>
> > [ perf record: Woken up 1 times to write data ]
> > symbol:init_start file:(null) line:0 offset:0 return:0 lazy:(null)
> > snip ..
> > symbol:memory_mallopt file:(null) line:0 offset:0 return:0 lazy:(null)
> > failed to write feature CPUDESC
> > failed to write feature MEM_TOPOLOGY
> > failed to write feature CPU_PMU_CAPS
> > [ perf record: Captured and wrote 0.056 MB perf.data ]
> >
> > # ./perf report
> > 0x368 [0x50]: failed to process type: 1 [Cannot allocate memory]
> > Error:
> > failed to process sample
>
> I have no clue about it. Are you able to run it under GDB ? (Looks like
> you have built the perf, so if you have sources, it may be a good idea
> to run under the GDB and figure out where that error is coming from).
>
Yeah gdb helped figuring out the issue.
The issue is in the opencsd, where it doesn't seem to support multiple streams
when the formatter is not enabled. .
Note:Our Silicon has formatter disabled and we already had changes in perf tool
to take care of the formatter status.
The below hack helped.
diff --git a/decoder/source/ocsd_dcd_tree.cpp b/decoder/source/ocsd_dcd_tree.cpp
index be15e36..0210dec 100644
--- a/decoder/source/ocsd_dcd_tree.cpp
+++ b/decoder/source/ocsd_dcd_tree.cpp
@@ -401,7 +401,7 @@ ocsd_err_t DecodeTree::createDecoder(const
std::string &decoderName, const int c
int crtFlags = createFlags;
uint8_t CSID = 0; // default for single stream decoder (no
deformatter) - we ignore the ID
- if(usingFormatter())
+ //if(usingFormatter())
{
CSID = pConfig->getTraceID();
crtFlags |= OCSD_CREATE_FLG_INST_ID;
Not sure if this is the right fix though.
This is how i tested,
1. # taskset 0x2 ./perf record -e cs_etm//u -F 10 --per-thread ping -c
30 127.0.0.1
2. # Ctrl-Z // Put the process in background
3. # taskset -p 0x4 <pid of ping process> // Move the ping process to core 2
4. # fg // Get the process to foreground
5. ./perf report
snip ...
# Samples: 66K of event 'branches:uH'
# Event count (approx.): 66953
#
# Children Self Command Shared Object Symbol
# ........ ........ ....... .....................
........................................
#
15.94% 15.94% ping ld-2.31.so [.] _dl_lookup_symbol_x
14.93% 14.93% ping ld-2.31.so [.] do_lookup_x
10.68% 10.68% ping libc-2.31.so [.] _dl_addr
9.87% 9.87% ping ld-2.31.so [.] _dl_relocate_object
6.75% 6.75% ping ld-2.31.so [.] strcmp
3.62% 3.62% ping ld-2.31.so [.] check_match
2.72% 2.72% ping libc-2.31.so [.] __vfprintf_internal
1.90% 1.90% ping libc-2.31.so [.] _int_malloc
1.29% 1.29% ping libc-2.31.so [.] getenv
1.28% 1.28% ping libc-2.31.so [.] strcmp
1.17% 1.17% ping libc-2.31.so [.]
_IO_file_xsputn@@GLIBC_2.17
1.16% 1.16% ping ld-2.31.so [.] _dl_name_match_p
snip ...
Also i could verify using prints in the tmc-etr-driver that the trace
buffer gets reused across cores
as well.
> Also, what is
>
> perf --version ?
perf version 5.9.0-rc5
>
>
> > # To display the perf.data header info, please use --header/--header-only option
> >
> > ============================================================================
> >
> > Appreciate your help on getting some debug hints on what is going wrong.
>
>
> >
> > One strange thing noted here is sys_perf_event_open, passing cpu = -1
> > and pid = -1,
> > which doesnt appear to be valid as per tools/perf/design.txt
>
> I see that on my Juno, but it still works. I believe that is for the
> generic PMU (pmu.type == 1) and not the coresight PMU, which I believe
> is (type == 8) in your case (the first event).
>
> Suzuki
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-11-12 8:59 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-04 2:41 [PATCH v4 0/2] Make sysFS functional on topologies with per core sink Linu Cherian
2020-09-04 2:41 ` [PATCH v4 1/2] coresight: etm: perf: Sink selection using sysfs is deprecated Linu Cherian
2020-09-04 2:41 ` [PATCH v4 2/2] coresight: Make sysFS functional on topologies with per core sink Linu Cherian
2020-09-14 19:36 ` Mathieu Poirier
2020-09-15 4:40 ` Linu Cherian
2020-10-05 11:27 ` [PATCH v4 0/2] " Suzuki K Poulose
2020-10-06 13:21 ` Linu Cherian
2020-10-06 16:12 ` Mathieu Poirier
2020-10-06 16:43 ` Suzuki K Poulose
2020-10-06 16:56 ` Mathieu Poirier
2020-10-26 4:33 ` Linu Cherian
2020-10-26 18:17 ` Suzuki K Poulose
2020-10-27 13:13 ` Linu Cherian
2020-11-07 5:43 ` Linu Cherian
2020-11-10 12:57 ` Linu Cherian
2020-11-10 14:57 ` Suzuki K Poulose
2020-11-12 8:57 ` Linu Cherian [this message]
2020-11-12 9:20 ` Suzuki K Poulose
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=CAAHhmWjTUO_qDi-i2VORVsKt+h8Q+wEB7c0gcShi9RdxJx0CWA@mail.gmail.com \
--to=linuc.decode@gmail.com \
--cc=coresight@lists.linaro.org \
--cc=lcherian@marvell.com \
--cc=linux-arm-kernel@lists.infradead.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.