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

Qualcomm 888/Cortex-X1 profiling

Good day everyone. I am new to the forums so I apologise in advance if I am posting in the wrong forum. I am looking to profile Android applications and collect hardware architectural counters (cache hit/miss rates, branch mispredictions, etc... as detailed as I can really) on newer mobile big.Little architecture (this is for my research project as school). I am looking to purchase a development board based on Qualcomm Snapdragon SOC:Snapdragon 888 Mobile Hardware Development Kit (https://developer.qualcomm.com/hardware/snapdragon-888-hdk). I have a question about profiling support for this SOC:

This SOC has what Qualcomm calls Kryo 680 CPU, which consists of: 1 x Kryo 680 Prime core (based on Arm Cortex-X1), 3 x Kryo 680 Gold core (based on Arm Cortex-A78), and 4 x Kryo 680 Silver core (based on Arm Cortex-A55). It says that these cores are based on Arm processors, and I was wondering if Arm-provided tools would be able to profile these cores. In particular I am looking at profiling the cores running Android 11 with Streamline Profiler of Arm Mobile Studio and later potentially Arm Development Studio. So my question is: will I be able to profile Android apps running on these cores with Streamline Profiler?

Another quick question related more to debugging hardware. The expansion board for this SOC has a 20 pin JTAG port. I know that JTAG is used for debugging and collecting traces. This is what I would be using it for. However, it  is kind of throwing me off that the JTAG is on the display expansion and not on the board itself. I am new to development boards and so I am wondering if JTAG is also used for anything graphics/display/sensor related or is it just a design decision made by Qualcomm to put JTAG connector on the display expansion? Does anyone have any experience with those Qualcomm Development Kits who could shed some light on this?

I am attaching the pdf with information about 888 Development kit in question.snapdragon-888-mobile-hdk-product-brief_87-pu790-1 (2).pdf

Thank you very much,

Pavel.

Parents
  • Hi Pavel, 

    For the architectural counters see the Arm Architecture Reference Manual for the Armv8-A architecture profile. Chapter D7 documents the PMU, and D7.10 documents the events themselves. 

    https://developer.arm.com/documentation/ddi0487/ga

    For the full event list for a specific Cortex core, including microarchitecture events, see the that CPU model's Technical Reference Manual.

    So you anticipate fully supporting profiling Kryo cores from Qualcomm with Arm Mobile Studio? Does that mean I will be able to profile the SnapDragon 888 Development board

    We aim to support them, but we can't test every board and there are some dependencies on Linux Perf being correctly integrated and configured in that board's BSP. So "yes in principle, (at least when we add CPU support - see below), but we've not tested it".

    Are earlier Kryo cores supported now? I am mainly wondering about Kryo 585 

    At the moment the supported list is:

    * https://github.com/ARM-software/gator/blob/master/daemon/pmus.xml#L110

    So no Kryo 500 series at the moment - our aim is to support 56x and 58x in our mid-year release.

    Does Qualcomm provide the micro-architectural counter definitions for deeper profiling?

    I can't really cover what Qualcomm provides - I honestly don't know. The architectural counters must be present, but beyond that I have no idea ...

    Cheers, 
    Pete

Reply
  • Hi Pavel, 

    For the architectural counters see the Arm Architecture Reference Manual for the Armv8-A architecture profile. Chapter D7 documents the PMU, and D7.10 documents the events themselves. 

    https://developer.arm.com/documentation/ddi0487/ga

    For the full event list for a specific Cortex core, including microarchitecture events, see the that CPU model's Technical Reference Manual.

    So you anticipate fully supporting profiling Kryo cores from Qualcomm with Arm Mobile Studio? Does that mean I will be able to profile the SnapDragon 888 Development board

    We aim to support them, but we can't test every board and there are some dependencies on Linux Perf being correctly integrated and configured in that board's BSP. So "yes in principle, (at least when we add CPU support - see below), but we've not tested it".

    Are earlier Kryo cores supported now? I am mainly wondering about Kryo 585 

    At the moment the supported list is:

    * https://github.com/ARM-software/gator/blob/master/daemon/pmus.xml#L110

    So no Kryo 500 series at the moment - our aim is to support 56x and 58x in our mid-year release.

    Does Qualcomm provide the micro-architectural counter definitions for deeper profiling?

    I can't really cover what Qualcomm provides - I honestly don't know. The architectural counters must be present, but beyond that I have no idea ...

    Cheers, 
    Pete

Children