[PATCH v4 0/2] Make sysFS functional on topologies with per core sink

Suzuki K Poulose suzuki.poulose at arm.com
Tue Nov 10 09:57:48 EST 2020


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).

Also, what is

perf --version ?


> # 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



More information about the linux-arm-kernel mailing list