This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Why can't I capture Cortex-A7/A15 counters on exynos 5 using ARM Streamline?

This is our current setup on a Hardkernel odroid-xu3 board based on EXYNOS5422.

1.- Board is running Ubuntu 14.04.1 LTS. Linux kernel 3.10.59 rebuilt with options:

  CONFIG_GENERIC_TRACER

  CONFIG_TRACING

  CONFIG_CONTEXT_SWITCH_TRACER

  CONFIG_PROFILING

  CONFIG_HIGH_RES_TIMERS

  CONFIG_LOCAL_TIMERS

  CONFIG_PERF_EVENTS

  CONFIG_HW_PERF_EVENTS

  CONFIG_CPU_FREQ

2.- Streamline gatord version 20 (DS-5 v5.20) (built form source)

3.- Gator driver build with MALI support (patch applied as proposed in: http://community.arm.com/thread/6863).

When I capture using the Streamline Data View in Eclipse, I get values in Linux and Mali counters, but for all Cortex-A15 counters I tried, I get no values, just zero.

When I select events using Cortex-A15 counters, like the ones in the picture (Bus: Access,  Clock:Cycles, Instruction: Executed, etc.) All this counters

always show zero values in the captured session. Other counters selected from Mali or Linux seen to work well.

D5-2.PNG

By the way, in the Counter Configuration dialog box I can see Cortex-A15, Linux and Mali counters. But I can´t see any Cortex-A7 counter.

In the documentation I can find example pictures (as the one shown below) where A7 and A15 counters are shown together...

Should I see both of them A7 and A15?

Adding a counter to the Events to Collect list

In this last picture you can see as Mali counters (marked in green) are showing values when I run some OpenCL code on the GPU,

but counters for Cortex-A15 show no activity at all (marked in red).

D5-1.PNG

Is there any special configuration for my Exynos 5 SoC to make Streamline capture the Cortex-A15 and A-7 counters?

I'm stuck right now, I can't find out what I am doing wrong. Any hint will be of great help.


Thanks!

Parents
  • Hello All,

    I was looking for some perf measurement on Odroid-Xu3 at Samsung and was not able to read perf counters from Odroid -Xu3 device.

    I have fixed this issue by adding correct arm-pmu interrupt numbers in dtsi file.

    You can get patch from below link

    https://github.com/kensoc/kendroid_kern ... b65591b06d

    NOTE: Both A15 and A7 hw perf events/counters are not supported at this time.

    By default, A15 hw perf events/counters are enabled.

    To read/measure A7 hw perf events/counters, refer and uncomment arm-pmu section

    of arch/arm/boot/dts/exynos5422_evt0.dtsi file.


    Modified files are:

    modified: arch/arm/boot/dts/exynos5422_evt0.dtsi

    modified: arch/arm/configs/odroidxu3_defconfig

    NOTE:

    If you are using android OS with this modification, you will observer VOLD service crash and SDCARD won't mount correctly.

    Solution:

    When we have added ARM-PMU interrupt, kernel has changed platform device tree creations

    and due to which "odroid-sysfs.16" was no more available and newly populated name is "odroid-sysfs.17".

    This path was not recognized by VOLD service and file open was returning NULL which intern passed in fread operation and vold service was crashing.

    Source path is: $ANDROIDSRC/system/vold/main.cpp +161

    Old path is: /sys/bus/platform/drivers/odroid-sysfs/odroid_sysfs.16/boot_mode

    New path is: /sys/bus/platform/drivers/odroid-sysfs/odroid_sysfs.17/boot_mode

    Request to maintainer : pull this changes into mainline kernel and android source

Reply
  • Hello All,

    I was looking for some perf measurement on Odroid-Xu3 at Samsung and was not able to read perf counters from Odroid -Xu3 device.

    I have fixed this issue by adding correct arm-pmu interrupt numbers in dtsi file.

    You can get patch from below link

    https://github.com/kensoc/kendroid_kern ... b65591b06d

    NOTE: Both A15 and A7 hw perf events/counters are not supported at this time.

    By default, A15 hw perf events/counters are enabled.

    To read/measure A7 hw perf events/counters, refer and uncomment arm-pmu section

    of arch/arm/boot/dts/exynos5422_evt0.dtsi file.


    Modified files are:

    modified: arch/arm/boot/dts/exynos5422_evt0.dtsi

    modified: arch/arm/configs/odroidxu3_defconfig

    NOTE:

    If you are using android OS with this modification, you will observer VOLD service crash and SDCARD won't mount correctly.

    Solution:

    When we have added ARM-PMU interrupt, kernel has changed platform device tree creations

    and due to which "odroid-sysfs.16" was no more available and newly populated name is "odroid-sysfs.17".

    This path was not recognized by VOLD service and file open was returning NULL which intern passed in fread operation and vold service was crashing.

    Source path is: $ANDROIDSRC/system/vold/main.cpp +161

    Old path is: /sys/bus/platform/drivers/odroid-sysfs/odroid_sysfs.16/boot_mode

    New path is: /sys/bus/platform/drivers/odroid-sysfs/odroid_sysfs.17/boot_mode

    Request to maintainer : pull this changes into mainline kernel and android source

Children
No data