Samsung Performance SDK only has effect on the most powerful cores


I am using the Samsung Performance SDK to try to limit the usage of the high performance CPU cores, so that my application can save more battery. My S21 Ultra with Exynos 2100 has 3 clusters:
1x2.9 GHz Cortex-X1 & 3x2.80 GHz Cortex-A78 & 4x2.2 GHz Cortex-A55

While using the SDK to limit the maximum frequency of the high performance cores, I expect that it has effects on all 4 big cores Cortex 78 and Cortex X1. However, it seems that this only affects the Cortex X1 core.

What can I do to limit the frequency of these Cortex A78 cores?

Luan Pham

Hello @minhluan1590 ,

Hope you are doing well. Thank you for your interest in the Galaxy Performance SDK.
In order to limit the maximum frequency of every core you can try using the following CustomParameter:

customParameter.add(TYPE_CPU_MAX, 0, 1000);

In the above example TYPE_CPU_MAX sets the maximum frequency of the cores to the lowest level (denoted by 0) allowed by Performance SDK for 1000ms.
To learn more you can check out the Javadocs from here.

PS: If you find this answer helpful please press the “like” button so that others can find it more easily.

Best Regards,
Samsung Developer Program

Hi @shuvo.saha,

Thank you a lot for your answer. Actually, Samsung Performance SDK does some verbose log while initializing, which showing that the MIN BUS, MIN CPU, MIN GPU parameters require 1000 ms timeout, but the MAX BUS, MAX CPU and MAX GPU can have timeout value very big.

I did follow your guide, which setting TYPE_CPU_MAX to zero every 800 ms, using 1000 ms timeout, it seems that it still has no effect at all.

Does Samsung Performance SDK have some special requirement that I don’t see in the documentation?

Bets regards,
Luan Pham