Commit graph

747 commits

Author SHA1 Message Date
Bruno Martins
4ec7aee975
sm6375-common: Use common libqti-perfd-client and power-libperfmgr
Change-Id: I22d6b35c72629553817005deaefcae60abc72cfd
2024-07-20 20:16:00 +05:30
Anand S
74fce3f5d0
sm6375-common: Drop power init script
* Switch back to old init script for power stuffs.
* Bring back post boot script.

Change-Id: Ifca0be0f7bb767dfeb601083e66e73c88521f880
2024-07-20 20:16:00 +05:30
Anand S
1f580a9b66
sm6375-common: sepolicy: Label fogos touch hal
Change-Id: I02521006113b41d985ce5d84a1acf54596401b97
2024-07-19 20:16:00 +05:30
Anand S
876282f246
sm6375-common: sepolicy: Drop duplicate genfs entries
Change-Id: I26195c1faa12dd2eaf8d7c5b0ec6487d82527f72
2024-07-19 20:16:00 +05:30
EcrosoftXiao
e03aec7112
sm6375-common: Switch to Thermal 2.0 mock
* QTI Thermal couldn't read the temperature for some reason
* sepolicy: Adjust sepolicy for thermal

Change-Id: Idea1bcdea070913ef35b699fafd1242d740453a9
2024-07-19 20:16:00 +05:30
Vachounet
751c572071
sm6375-common: Enable config_supportDoubleTapWake overlay
Change-Id: I2811745eadbb0ee5db550b16d75f8eef0308bfe6
2024-07-18 20:16:00 +05:30
Georg Veichtlbauer
b1ef939300
sm6375-common: powerhint: Add DT2W
Change-Id: I7d0dfe249798864a39afd4f339b692584faaf3ec
2024-07-18 20:16:00 +05:30
Matt Buckley
c0f264b813
sm6375-common: power-libperfmgr: Remove wakeup behavior from PowerHintSession and PowerSessionManager
Currently, all sessions get boosted any time DISPLAY_UPDATE_IMMINENT is
sent from SurfaceFlinger which can lead to large, unnecessary boosts.
This patch aims to change that by removing the wakeup behavior, relying
instead on sessions to boost themselves with new load change hints.

 * Remove wakeup() from PowerHintSession
 * Remove wakeSessions from PowerSessionManager
 * Remove related timers and message handlers
 * Remove DISPLAY_UPDATE_IMMINENT behavior entirely

Test: manual
Bug: b/260136431
Change-Id: I4610edfefe8fcbef7d4cdbf5768830a9392a54f7
2024-07-18 20:16:00 +05:30
Matt Buckley
3f3622d6be
sm6375-common: power-libperfmgr: Add better tracing for sendHint and refactor existing tracing
Reset traced hint value to -1 on reportActualWorkDuration or stale
timeout, and rewrite existing tracing for readability.

Bug: b/243973548
Test: manual
Change-Id: I135ec5f8971a9902d880e4089b0df746f5b917e2
2024-07-18 20:16:00 +05:30
Jimmy Shiu
beb75b2b3d
sm6375-common: power-libperfmgr: ADPF: refine StaleTimeHandler
Bug: 256515601
Test: build
Change-Id: Ia7f80c838961b837733c457b189f16c6433cf3c3
2024-07-18 20:16:00 +05:30
Jimmy Shiu
798d139e00
sm6375-common: power-libperfmgr: ADPF: remove unused EarlyBoostHandler
Bug: 256515601
Test: build
Change-Id: I9b63c6ee3decaa4c70f38bcc66a0e9e1de464ad6
2024-07-18 20:16:00 +05:30
Vivekachooz
fc7b944e04
sm6375-common: powerhint: Enable CPUDDRLat boost
Change-Id: I5ed88740f92064cf5e7cdcdfb19e1b77eb891a35
2024-07-18 20:16:00 +05:30
Vivekachooz
4b69a52f2c
sm6375-common: powerhint: Tune powerhint
Change-Id: I8fe54e156b15b6d3a58d7f83cf33d1cf83ce2418
2024-07-18 20:16:00 +05:30
Jimmy Shiu
5e76a2a191
sm6375-common: power-libperfmgr: ADPF: send ADPF_FIRST_FRAME hint
To send ADPF_FIRST_FRAME hint when reportWorkDurations was called first
time after stale state.

Bug: 243025173
Test: PtsUiBench & CUJ
Change-Id: I4377b1f549646bcf44bdf26b2657b7bc0646f9a4
Merged-In: I4377b1f549646bcf44bdf26b2657b7bc0646f9a4
2024-07-18 20:16:00 +05:30
Jimmy Shiu
f4fd4bcd5c
sm6375-common: power-libperfmgr: ADPF: support sending power hint
Send a hint only when the system can support the hint.

Bug: 243025173
Test: PtsUiBench & CUJ
Change-Id: If56d0c22f8dd61f5fe27ba79f08f2963269abe41
Merged-In: If56d0c22f8dd61f5fe27ba79f08f2963269abe41
2024-07-18 20:16:00 +05:30
Sugakesshaa
c4d4353fdd
sm6375-common: powerhint: Tune scheduler parameters
- kanged from powerhal boosting on CLO

Change-Id: Ic8b5a9d2b6b2a0b7a92c85445e30cd45936b60d2
2024-07-18 20:16:00 +05:30
Adithya R
cc6d0d7bca
sm6375-common: power-libperfmgr: Allow certain hints to be processed always
These don't affect performance, so we don't need to disable them
for battery saver or sustained performance mode.

Change-Id: I483d7fa6d0067f21d46b6811ba324793415218c7
2024-07-18 20:16:00 +05:30
Adithya R
431daebc40
sm6375-common: power-libperfmgr: Properly handle sustained performance mode
* when tested with [1], even after exiting the app, spm was
   still active in powerhal thereby keeping max freqs limited
   and blocking boosts

 * enable/disable it properly and end all other hints before
   enabling, to fix this issue

 * while we're at it, don't handle max freq for anything other
   than spm in powerhint

[1] https://android.googlesource.com/platform/cts/+/refs/heads/master/hostsidetests/sustainedperf

Change-Id: I6e37dfa7ffab0137d70cb5ba5d1b156133416062
Signed-off-by: Adithya R <gh0strider.2k18.reborn@gmail.com>
2024-07-18 20:16:00 +05:30
Adithya R
52a7d65121
sm6375-common: power-libperfmgr: Disable boosting when battery saver is on
* end all running boosts when battery saver is turned on,
   and block all boosts until its turned off

Change-Id: I6793d694747c27591e69594d9d46da3490673d63
Signed-off-by: Adithya R <gh0strider.2k18.reborn@gmail.com>
2024-07-18 20:16:00 +05:30
Chiawei Wang
ce80b10348
sm6375-common: configs: use min_pwrlevel to configure GPU freq
Bug: 146334579
Bug: 146336388
Test: run pts -m PtsPerformanceTestCases -t com.google.android.perf.pts.PowerHALAPITest
Test: run pts -m PtsPerformanceTestCases -t com.google.android.perf.pts.PowerHintJsonVerifyTest
Change-Id: I18c0210463f29831cc94c629a98718406ebdf21b
2024-07-18 20:16:00 +05:30
Wilson Chan
98d5b5b8d0
sm6375-common: configs: Add Flipendo powerhint
Bug: 153940282
Test: Manually check powerhint succeeds and check perf
Change-Id: Ia3482d3e3b69562aa7c0e5dd326037d1b3806930
2024-07-18 20:16:00 +05:30
Vivekachooz
1f4bd589cc
sm6375-common: configs: Enable FIXED_PERFORMANCE in powerhint
Change-Id: I30d519369162d577e419b1c0982a4ac1783fb3b7
2024-07-18 20:16:00 +05:30
Vivekachooz
4b9e90d4fb
sm6375-common: configs: Tune CPUBWMinFreq to a higher frequency
Change-Id: Iceb807b2175141576381fa9dd9a96c8845db3d3b
2024-07-18 20:16:00 +05:30
Vivekachooz
c89c6beec2
sm6375-common: rootdir: Cleanup power init script
* Let powerhint handle this

Change-Id: If98c748567995b2bbb33bf0d9c1e2192b0c43b7c
2024-07-18 20:16:00 +05:30
Vivekachooz
5ac3c047b3
sm6375-common: configs: Rearrange powerhint
Change-Id: I77e792f4d453ce6c0b929cad7236be38e6ba475e
2024-07-18 20:16:00 +05:30
Subhajeet Muhuri
4562fbcd20
sm6375-common: powerhint: Remove audio hints
Signed-off-by: Subhajeet Muhuri <subhajeet.muhuri@aosip.dev>
Change-Id: Ife1cb1e356e62283f3c4d353931458adaf84e975
2024-07-18 20:16:00 +05:30
Vivekachooz
d2cffdfdb0
sm6375-common: rootdir: Tune background cgroup uclamp values
* Values taken from gs201

Change-Id: Ice4cb9b6ee4845e5a965ead26f2775a1522b065c
2024-07-18 20:16:00 +05:30
Jake Weinstein
0c0f036d7a
sm6375-common: Use foreground cpuset/uclamp for gralloc
Makes sure rendering has enough capacity.

Change-Id: I7ad051248353485a8090bec578b2c4325ea06024
Signed-off-by: Adithya R <gh0strider.2k18.reborn@gmail.com>
2024-07-18 20:16:00 +05:30
Jake Weinstein
9be114c30d
sm6375-common: Use foreground uclamp for hwcomposer
Matches SF, makes sure rendering always
has enough capacity.

Also switches to task_profiles.

Change-Id: I2a2de504be7d3f4f66f31445f44fbbf9376bd927
Signed-off-by: Adithya R <gh0strider.2k18.reborn@gmail.com>
2024-07-18 20:16:00 +05:30
Vishalcj17
75531a87f2
sm6375-common: Switch hwcomposer to foreground CPU set
* Greatly affects the performance/latency of the display
   considering you have foreground set to 0-6 cores on <SM7350
   whilst being power efficient.

 * This shows an improvement on HWUI graph and even jankbench.

Change-Id: I6438375d844e1b1f38872fb53bdfadfb644fc722
Signed-off-by: Adithya R <gh0strider.2k18.reborn@gmail.com>
2024-07-18 20:16:00 +05:30
Suren Baghdasaryan
b721be0fd8
sm6375-common: Replace direct pid writes with setting task profiles for audio interfaces
For easy transition from SchedTune to UtilClamp, direct access to these
cgroups should be abstracted by using task profiles. Replace writepid
commands with new task_profiles command.

Bug: 155419956
Test: change .rc file and confirm task profile is applied
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Ide373c283359cf4b73af4cb0813d8c0306942595
2024-07-18 20:16:00 +05:30
Sugakesshaa
1c76650adc
sm6375-common: powerhint: Setup uclamp boosting
- Make use of uclamp boost for top-app and foreground
  hints based on newer pixels

Co-authored-by: Vivekachooz <vivekachooz@gmail.com>
Change-Id: I70c4262230841b3c7bf84b4165916a22312f829f
2024-07-18 20:16:00 +05:30
Subhajeet Muhuri
220856c963
sm6375-common: powerhint: Drop PM QoS boosting
Change-Id: Idcedcc3f4ff1998b6fb59437a2517ee9e0bc75bb
Signed-off-by: Subhajeet Muhuri <subhajeet.muhuri@aosip.dev>
2024-07-18 20:16:00 +05:30
Subhajeet Muhuri
dc8d9f8a10
sm6375-common: Set top-app schedtune.boost to 1
Fix for:
W libperfmgr: Failed to write to node: /dev/stune/top-app/schedtune.boost with value: 10, fd: -1

Change-Id: I1e394919b75e192def99c444993546634c951781
2024-07-18 20:16:00 +05:30
Vivekachooz
df75d5ee49
sm6375-common: Import and adapt powerhint from redfin
* From redfin-user-13-TQ3A.230901.001-10750268-release-keys

Change-Id: I923c1adf70d035c9def0032ccf29530ce92ebe66
2024-07-18 20:16:00 +05:30
Vivekachooz
b96db6ee48
sm6375-common: Update permissions for powerhal
Change-Id: Id43043a24dd19eab0234def5121e811d18174096
2024-07-18 20:16:00 +05:30
Bruno Martins
276a5c6fcd
sm6375-common: Create power init script
* Gather all performance related items in one place
   and drop all deprecated services.

Change-Id: I4dbdc164c60136b0957a8c1ff67feafbaf471747
2024-07-18 20:16:00 +05:30
Sebastiano Barezzi
5606a905c5
sm6375-common: libqti-perfd-client: Move to C
* Why bothering with C++ mangling when we can just build it as a standard C library?

Change-Id: I45ea977edf7ea7fab6fece76f3049654a8d24c5d
2024-07-18 20:16:00 +05:30
Chenyang Zhong
6b6029c515
sm6375-common: libqti-perfd-client: return a dummy value
Return a positive integer for perf lock acquire and release so
that Goodix/FPC fingerprint sensor blobs will not complain.

Goodix:
E [goodixHAL][gf_hal_milan_f_series]: goodix_perf_lock_acquire: Failed to acquire perf lock, err: 0
E [goodixHAL][gf_hal_milan_f_series]: goodix_perf_lock_release: Perf lock release error 0

FPC:
E fpc_tac : fpc_perf_lock_acquire: Incorrect params, Failed to acquire perf lock, err
E fpc_tac : fpc_perf_lock_release: Perf lock release error 0

Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
Change-Id: I861672e9a738c2204755d802670f4b28b662f286
2024-07-18 20:16:00 +05:30
Bruno Martins
ddaba172c6
sm6375-common: libqti-perfd-client: Remove namespace declaration
It's pointless when using extern "C".

Change-Id: Ibdf9f06a70aa3a75687b33781c78cf2172bb334d
2024-07-18 20:16:00 +05:30
Lucchetto
1e25d6fd85
sm6375-common: Create dummy libqti-perfd-client
* proprietary perfd blobs can finally be nuked without breaking goodix
* we could even map the functions to use libperfmgr powerhints in the future

Change-Id: I124652f3041761966a3e3bd97c757fecc39cc5fb
2024-07-18 20:16:00 +05:30
Sugakesshaa
ca771e2087
sm6375-common: sepolicy: Allow libperfmgr to write to proc_sched nodes
Change-Id: Ic8d9f03befb2ea5722d340d9f2b797b1cf8f0f50
2024-07-18 20:16:00 +05:30
Arian
4bbb9ac9bc
sm6375-common: sepolicy: Address pixel power HAL denials
Change-Id: I7327bd54c0d12fde03472695a5598d2a3d22f716
2024-07-18 20:16:00 +05:30
Subhajeet Muhuri
642f408f24
sm6375-common: Include hardware/google/interfaces and hardware/google/pixel
* Required by power-libperfmgr

Change-Id: I4053938614be26c7066ea83d97955739f39b4144
2024-07-18 20:16:00 +05:30
Bruno Martins
e3669945b5
sm6375-common: power-libperfmgr: enable powerhint parsing after boot completion
Change-Id: Ie065f234bfd949264b962bae80e400a446f65b80
2024-07-18 20:16:00 +05:30
Jimmy Shiu
3478253879
sm6375-common: power-libperfmgr: ADPF: fix use-after-free crash
The main problem is the timer thread could be woken after the session
was destroyed. We did have a closed flag which was set in destructor and the flag would be checked before handleMessage accessing the session
instance. To fix the problem, the operations of flag checking and session instance accessing should be guarded by the lock.

Bug: 236674672
Test: manual test
Change-Id: I49a18efbc135b1bc070b101038a8a0bcc6e19fec
(cherry picked from commit 5c75978f530b27bd976d8695ed79acd336c24776)
Merged-In: I49a18efbc135b1bc070b101038a8a0bcc6e19fec
2024-07-18 20:16:00 +05:30
jimmyshiu
523949c628
sm6375-common: power-libperfmgr: ADPF: optimize the wakeup performance and fix unstable boost.
Optimize boost:
A more efficient way is to trigger the wakeup boost through mTidSessionListMap, so the time
   complexity reduce from O(n^3) to O(n^2).

The original code path:
  PSM:wakeSessions() contains a loop that is O(n),
  inside the loop, it calls to PHS::wakeup() which call to
  PSM::setUclampMinLocked(), and
  PSM::setUclampMinLocked() contains two loops O(n^2)

The new code path:
  PSM::wakeSessions() directly checks all the ADPF tasks O(n) and
  get the wakeup boost value O(n), then directly set the uclamp.min
  The time complexity lower to O(n^2).

Fix unstable boost:
The original flow is to find max boost and wake it up from stale state
one by one. But the previous woken ones would not be counted when the later ones finding their max boost value.
The new flow boost all the tasks first, then wake up all those sessions.

Bug: 235510337
Test: Manually playing UIBench -> Transitions -> ActivityTransition
Change-Id: I995673b74401e198eb72188134ba1ebc134f971c
2024-07-18 20:16:00 +05:30
Wei Wang
de130faac2
sm6375-common: power-libperfmgr: ADPF: extend non-stale session timer in wakeup
For DISPLAY_UPDATE_IMMINENT wakeup signal, non-stale
session's timer should be also extended. This resolves
the performance issue caused those sessions to go stale    
prematurely.

Bug: 241621485
Test: Build
Signed-off-by: Wei Wang <wvw@google.com>
Change-Id: I06330e064060248bb556ae35e0cb8fd302cef231
2024-07-18 20:16:00 +05:30
jimmyshiu
fbcc05b19b
sm6375-common: power-libperfmgr: ADPF: Fix updateHintBoost blocks the binder thread
post the task into a looper thread.

Bug: 232992641
Test: Manually playing UIBench -> Transitions -> ActivityTransition
Change-Id: Ibd241834f904b4c87a51363e766e110d2818d496
2024-07-18 20:16:00 +05:30
jimmyshiu
620a6da869
sm6375-common: power-libperfmgr: Fix uclamp_min stuck at high freq
Separate Stale and EarlyBoost handlers and refine the code.

Test: adb shell dumpsys android.hardware.power.IPower/default
Test: Manual
Bug: 232992641

Change-Id: I81a4fd96fb7311ae5bbb7cbabe72378c9cad4aa3
2024-07-18 20:16:00 +05:30