Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Qpr3 #1

Open
wants to merge 88 commits into
base: lineage-21.0
Choose a base branch
from
Open

Conversation

nightshade7621
Copy link

No description provided.

bengris32 and others added 30 commits July 22, 2024 11:44
* Reference: https://github.com/moto-common/android_device_mediatek_common/tree/master/vendor/wlan

* Perhaps it will help with the Wi-Fi scanning issues,
  and intermittent disconnections we're having. Besides,
  we can't legally use the OSS one anyway.

Change-Id: I9bbf289ad88a12bbdc68ab0abdee410678bf1420
Co-authored-by: electimon <[email protected]>
Signed-off-by: bengris32 <[email protected]>
Bug: 274964641
Test: Pre-submit tests
Change-Id: I4d9114377fe75b593bbfe6a59f03d8f5d607d6a1
* defined in source

Signed-off-by: HELLINFIX <[email protected]>
 * minimize java debug info
 * use everything filter for dexpreopt (AOSPA/android_vendor_pa@ab5061c)
 * disable debug configs in art
 * use non-debug dex2oat

Signed-off-by: Adithya R <[email protected]>
Results in GMS-included build being too large.

Signed-off-by: Nishant Kumar <[email protected]>
Signed-off-by: HELLINFIX <[email protected]>
Signed-off-by: Adithya R <[email protected]>
Signed-off-by: Nishant Kumar <[email protected]>
Signed-off-by: HELLINFIX <[email protected]>
Change-Id: I93628ae9bb730c233ed93c796d640d9854c447f3
Signed-off-by: bengris32 <[email protected]>
- Keep 32-bit [email protected] and [email protected] since our 32-bit audio HAL needs those interfaces.

Signed-off-by: Debayan Kar <[email protected]>
Bug: 309792384
Test: m
Change-Id: I5e9183b840f523f4d5b81dec813d35983882f71d
Signed-off-by: HELLINFIX <[email protected]>
It is inherited by base_system.mk as of QPR2

Change-Id: I020a05b233f61ea28d03199cbc76051e6e97e1dc
Signed-off-by: HELLINFIX <[email protected]>
Signed-off-by: bengris32 <[email protected]>
Change-Id: I3e2fa26fd64b6e3011846e46e766e66eab68c392
* Required for some vendor blobs that refuse to work without mtkpower

* Also pin power blobs

Signed-off-by: bengris32 <[email protected]>
Change-Id: I5a3664d982b909a3b126f38d83bea6a5a14ef177
Signed-off-by: HELLINFIX <[email protected]>
* It seems even  after adding a dummy libmtkperf_client library,
  camera still refuses to work, it seems MediaTek have used a
  mix of that client library, and direct HIDL calls to the power
  implementation. Build a stub mtkpower service to get around
  this limitation.

* https://github.com/mt6768-dev/vendor_mediatek_opensource_interfaces/tree/17ddcd53b8b276454c86c5296f1895ab59800a10/mtkpower/1.2

Signed-off-by: bengris32 <[email protected]>
Change-Id: Iea5c8711ba1d71377c840112dff94813a79bbec4
Based on implementation from hardware/google/pixel as of commit 0338a0e.

Change-Id: I3df57bd3e8298141272add55c911fb5eece9aebe

power-libperfmgr: Hook with display handler

Bug: 147840817
Test: boot and check power hint
Change-Id: I9c0c98e76ef4b5f4756f63ed5122efc366737869

power-libperfmgr: add aidl extension server

Bug: 151896829
Test: boot flame
Change-Id: Ie951008cabe2a5680fbc546a21bdc9a428864ef9

power-libperfmgr: allow powerhint calls as soon as service starts

Bug: 147840817
Test: boot
Change-Id: Ic1d6e04109683b999bb99484930e95dc9813fc59

power-libperfmgr: rename namespace for Pixel power HAL

Bug: 152811907
Test: Build
Change-Id: I6848e929d8a26b540fcee9145376b896c3cd9799

libperfmgr.rc: let perfmgr can change dex2oat priorities

Because perfmgr is a vendor process, it cannot adjust system priority
directly.

Bug: 162791243

Test: build and using emul temp/running burn8 to verify it
Change-Id: I55e49cb7d0b2d4c0e42dff8398b5d42c6546cafa

libperfmgr.rc: let power hal start early

Bug: 162791243
Bug: 72471476
Test: build and using emul temp/running burn8 to verify it
Change-Id: I5ca475be8b73b940e4858634595a7918ae92f6ef

power-libperfmgr: remove Google-specific VR and camera hints

Change-Id: Iac0e65a16f660583d3400a35622113d35d8d1d27

Power: add support for devices without display idle signals

To workaround b/141025174, adding support for devices without display
idle signals. Also added a property to override idle display function.

Besides the idle signal support, this CL also makes touch boost duration
tunable through several new vendor properties. It also named display
idle monitor thread and cleans out the obsolete HIDL Power HAL
implementation.

Bug: 168080943
Bug: 169065024
Bug: 171494137
Test: Boot and trace
Change-Id: I76067d10958654d539624ec4cac8f346103e67bc

Power: advertise power headers are deprecated

Test: Build
Bug: 169065024
Signed-off-by: Wei Wang <[email protected]>
Change-Id: I3cef3aff4bb2394571a3de13e535283722c308ed

power: add a property for config file

Test: build
Bug: 173222103
Signed-off-by: Wei Wang <[email protected]>
Change-Id: I14e7e0aa349e446f6889cbfc9a914f5314438e6b

power-libperfmgr: Specify version for aidl_interface explicitly

Bug: 150578172
Test: m
Change-Id: I4a9bf218b92252403e9ebbe8f89b10ee1899283f

power: add PowerHintSession for ADPF implementation

Adapted from PoC from ag/13100800

Added more ATRACE for further tuning and debug

Test: APPPID=$(adb shell pidof com.prefabulated.touchlatency); watch -n
      1 adb shell grep uclamp /proc/${APPPID}/sched
Test: atest VtsHalPowerTargetTest
Bug: 177492680
Change-Id: I6bfd61b21dc1cde04f6ba9ae8d3533cd263ad814
Signed-off-by: Wei Wang <[email protected]>

power: reduce log spam and refine trace title

Add bunch of TODO for team as well.

Test: build
Bug: 177492680
Bug: 185368789
Signed-off-by: Wei Wang <[email protected]>
Change-Id: Ic1d5ecea10a60b23343866cd62519fda37bd6ec5

ADPF: use PID algorithm to control cpu resource

The patch includes:
1. Move from folder adpf to aidl.
2. Add PowerSessionManager class to maintain hint status.
   And PowerHintMointor looper thread for monitoring or updating
   PowerHintSession status.
3. Use PID algorithm to replace the step-wise alogrithm for cpu resource
   control.

Test: build, boot to home, trace analysis
Bug: 177493042
Change-Id: Ib7d3f414225b18954350341ca22b7be87a6202e7

power: Fix objects that are derived from refbase

Fixes: ag/14313466
Bug: 177493042
Bug: 191163855
Test: Build
Change-Id: I94812997a8214b77a2e1d0bcf90ef62205c5adf6
Signed-off-by: Wei Wang <[email protected]>

power-libperfmgr: improve adpf logic

Cache active state and reduce log spam
Add value tracing into libperfmgr
Use adaptive stale timeout based on rate limit

Bug: 191331719
Bug: 191296994
Bug: 177493042
Test: boot
Signed-off-by: Wei Wang <[email protected]>
Change-Id: I1c1484c9277209bf68bd287ceae83e2b37684c62

Adpf: honor window setting for P,D caculation

Also change default window setting to 0

Bug: 191409203
Test: Build
Signed-off-by: Wei Wang <[email protected]>
Change-Id: Ieadf50a64e795d9942373c411189adf9daaee779

adpf: clean up ADPF trace points

clean up ADPF trace points and use vendor.powerhal.adpf.uclamp.boost_cap
instead of vendor.powerhal.adpf.uclamp.cap_ratio.

Bug: 191551452
Test: build
Change-Id: I457710b1bd9a7adbb55749d7bb915c736dde2751

Add PID tunables for sample window

Bug: 191480755
Test: Build
Signed-off-by: Wei Wang <[email protected]>
Change-Id: Id559796ee4a423410148b8c2df0524909658af82

Adpf: set uclamp when session is created

When seesion is created, set uclamp to boost CPU for top-app.

Bug: 192143316
Test: Build and run UiBenchSlowNestedRecyclerViewInitialFlingMicrobenchmark test
Change-Id: I748037019fae439ab1863a5ed21aa98b9d26e0dc

ADPF: fix abnormal high uclamp

"GPU completion" task inherits a high uclamp value from RenderThread.
But it's not in the ADPF thread list, so it remains a high uclamp value.
Use SetTaskProfiles("ResetUclampGrp") and
SetTaskProfiles("NoResetUclampGrp") to manage the uclamp_fork_reset for
tasks.

Bug: 191973176
Bug: 192149875
Test: vendor/google_testing/pts/tests/common/utils/perf/run_pts/jank_test.sh
Test: adb shell cat /proc/vendor_sched/dump_task
Change-Id: I6aed171e88c0a6db5f762e7c791344bb3f4b7a90

ADPF: avoid to call close() twice

To get rid of error logs, avoid to call close() twice.

07-29 17:20:35.341 E powerhal-libperfmgr: Unexpected Error! Failed to
look up tid:2585 in TidRefCountMap
07-29 17:20:35.341 E powerhal-libperfmgr: Unexpected Error! Failed to
look up tid:2586 in TidRefCountMap
07-29 17:20:35.341 E powerhal-libperfmgr: Unexpected Error! Failed to
look up tid:2031 in TidRefCountMap
07-29 17:20:35.341 E powerhal-libperfmgr: Unexpected Error! Failed to
look up tid:2585 in TidRefCountMap

Bug: 194775170
Test: build and check log.
Change-Id: I91adf907b837382f68935b9054e19465a499049c

ADPF: fix no boost due to the big negative ILowLimit

Tuning the PID control loop as the below:
ILowLimit: -512 -> -120
kPOver: 2->5
kPunder: 2->3
kDOver: 1->5
kDUnder: 0->0

Bug: 193165816
Test: cuj/youtuble, cuj/facebook, PtsUiBench
Change-Id: Icc1a9a8d04004f60e47cabb7c4131ea67585be53

power: move trace point to libperfmgr.

Test: systrace
Bug: 199776250
Change-Id: I9bb4d5a50faa93e7bc638ef723bdc2662fb63b24

power: ADPF: limit uclamp high/low values and use I as boost base

1. set uclamp.min high to 384 (from 512)
2. set uclamp.min low to 2 (from 0)
3. set kPo to 2 (from 5)
4. set kPu to 1 (from 3)
5. instead of the previous boost value, use I Error-Integral as the base
   of boost value.
6. add more traces (wakeup, overtime)

Bug: 198708191
Bug: 197586898
Bug: 197540375
Test: build and check trace
      adb shell perfetto -o \
      /data/misc/perfetto-traces/trace_file.perfetto-trace -t 20s sched \
      freq idle am wm gfx view power hal
Change-Id: I35484322a84c2ab19f3024cf6634c1818ba570b0

power: ADPF: fix stale trace status

Bug: 196192645
Test: Manual
Change-Id: Ibdbb8f47a16032ce3249aa667fa0c11e7869748f

power: Add a debug property for switching powerhint.json path

Add a bool property `vendor.powerhal.config.debug`.
Power HAL would use `/data/vendor/etc/powerhint.json` when vendor.powerhal.config.debug = true.

Bug: 218872105
Bug: 206061061
Test: adb wait-for-device root; adb shell mkdir -p /data/vendor/etc/;
      adb push powerhint_mod.json /data/vendor/etc/powerhint.json
Test: adb shell setprop vendor.powerhal.config.debug true && \
      adb shell getprop vendor.powerhal.config.debug && \
      adb shell stop vendor.power-hal-aidl && \
      adb shell start vendor.power-hal-aidl && adb shell stop && adb shell start
Test: adb pull /data/local.prop ; vim local.prop
      + vendor.powerhal.config.debug=true
Test: adb wait-for-device root && adb shell perfetto -o \
      /data/misc/perfetto-traces/trace_file.perfetto-trace -t 20s sched freq \
      idle am wm gfx view power hal && \
      adb pull /data/misc/perfetto-traces/trace_file.perfetto-trace trace_profile_debug.pftrace
Change-Id: Ibaf5df280b989a8268efce1e3ab9a3f1e5510800

power: Add global debug property for override config path properly

An init trigger would restart powerhal as early as the property was
loaded and it is hopefully early than any clients would try to connect.

Also remove the obsolete restart hook with audio.

Bug: 218872105
Test: boot
Signed-off-by: Wei Wang <[email protected]>
Change-Id: Ib55897f65709a963016b729f213718aae5af8e8c

power: Fix race condition between Looper and destructor

1. Clean all messages before add new.
2. Insteading of using `this`, use the unique mStaleHandler sp so Looper
   can hold the sp to keep the instance alive until the last message
   done.

Test: Manual Test
Bug: 219965773
Change-Id: Ic039146f0b966c1f27d86b121d4b72b75ff360e5

power: PowerHintSession: do not update PID controller when target changes

There is no history kept in powerhint session, so let us just keep what
we have in the PID controller and let new samples settle.

Bug: 227003278
Test: Build
Change-Id: Ia8b9a0be288389ec36ac35c668aca013d470c257

power: Make HintManager a singleton class

HintManager is unique and widely used in many different components.
This is for making it easiler to be reloaded for debugging.

Bug: 172285365
Test: adb push \
      out/target/product/raven/data/nativetest64/libperfmgr_test/libperfmgr_test \
      /data/nativetest64/libperfmgr_test/libperfmgr_test && \
      adb shell /data/nativetest64/libperfmgr_test/libperfmgr_test
Change-Id: I3affdfe780073ebbc50fac7bfbdd1530ee9dc8c2

power: ADPF: make uclamp.min stable

Considering the previous uclamp.min value is the base of PID output.
Instead of:
  `next_min = std::min(sUclampMinHighLimit, output);`
We should use:
  `next_min = std::min(sUclampMinHighLimit, current_min + output);`

When session status entered stale state, set the uclamp to 0, but keep
the current_min. That would be helpful for boosting the heavy workload
of the first few frames.

Bug: 204444691
Test: build && manual test

Change-Id: Idb19e2bfd8e9522fae5fd452b1fcc58786e96e65

power: ADPF: Use Adpf Profile for PID tunnables

1. Use Adpf Profile to replace system-property-based PID tunnables.
2. Add a tunable for switch PID on/off
3. Switch Adpf Profile by hint name (ex: REFRESH_120FPS)

Bug: 202158746
Bug: 204444691
Bug: 206061061
Test: Build
Change-Id: Ia673a6bf64d40128ca1797d1e26fe564b3b35ff1

power: ADPF: add Early Hint feature

Add Early Hint feature and integrate with Stale Timer

Bug: 198379880
Test: build and manual test

Change-Id: I17009ee5b9ff922a79ccf5cb68be5b959038267d

power: Add minimal binder thread prio as -20 to match process prio

Bug: 227811781
Test: Build
Change-Id: I94670429ede032703661ee8eb8b1ea6456f5cbd5
Signed-off-by: Wei Wang <[email protected]>

power: ADPF: log clean up

Remove ALOGD logs.

Bug: 230205812
Test: adb shell logcat -b all | grep libperf
Change-Id: I4125afec526b76e3905e75c22fc2bfb555810fa8

power: Ignore system hint sessions for universal boost

Currently PowerHAL does not distinguish between system processes and
apps when deciding whether to apply universal boost. This patch
distinguishes system sessions and app sessions and ignores system ones,
making the disabling of universal boost dependent on the presence of app
hint sessions.

Bug: b/230511824
Test: manual
Change-Id: I08dea29b3a45f2ba69ed99a9f188fa83ba143423

power: PowerHAL: remove UclampMinGranularity

This is causing session update skipped and stuck.

Bug: 232336917
Test: /data/nativetest64/libperfmgr_test/libperfmgr_test
Signed-off-by: Wei Wang <[email protected]>
Change-Id: I8928b6f6a60dcf8d21e60228a74d3aa0ab792eff

power: ADPF: uclamp.min integration

Integrate the uclamp.min across sessions.
Add UClampMininit as the display update boost

Bug: 232313238
Test: Manual test
Change-Id: I601f407b0b5383a1e39eac448d45cbaaeb7788fb

power: ADPF: dump ADPF session info

Dump current ADPF profile and ADPF session list into bugreport.

Bug: 204444691
Test: adb root && adb shell dumpsys android.hardware.power.IPower/default
Test: gpaste/6469309887938560
Change-Id: I17c0d615051f5e51c2e1fe99d17c402f9a65679a

power: Fix race between closing a session and receiving a boost

We need to be holding the session lock when we dereference mDescriptor
since mDescriptor is destroyed when the session is closed. This patch
takes the session lock and verifies if it's still open during wakeup.

Test: vts run -m VtsHalGraphicsComposerV2_4TargetTest
Bug: 232992641
Change-Id: I4000a85bf2932cfdcddd3006d671a3c91ed32c48

power: 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

power: 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

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 <[email protected]>
Change-Id: I06330e064060248bb556ae35e0cb8fd302cef231

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

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

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

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

power-libperfmgr: Remove ndk_platform backend. Use the ndk backend.

The ndk_platform backend will soon be deprecated because the ndk backend
can serve the same purpose. This is to eliminate the confusion about
having two variants (ndk and ndk_platform) for the same ndk backend.

Bug: 161456198
Test: m
Change-Id: I14a1c57bd06f1f2aa52491f779c7030d4de03547

power-libperfmgr: : Game Loading Time improvement by boosting CPU via ADPF

Bug: 201769701
Test: atest android.gamemanager.cts.GameManagerTest
Change-Id: I268ca9cc8e2f212bdb9c8bb1c890e7a845170ec6

ADPF: remove unused EarlyBoostHandler

Bug: 256515601
Test: build
Change-Id: I9b63c6ee3decaa4c70f38bcc66a0e9e1de464ad6

ADPF: refine StaleTimeHandler

Bug: 256515601
Test: build
Change-Id: Ia7f80c838961b837733c457b189f16c6433cf3c3

power: 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

power: 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

power-libperfmgr: Add sendHint implementation for PowerHintSession

Have pixel PowerHintSessions implement the new sendHint API to provide
load change hints, allowing hint sessions to rapidly wake up and respond
to sudden changes in workload.

Bug: b/243973548
Test: manual
Change-Id: Ic10a3cee2b88f2bbbf6c74dd1bbad45859145192

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
Original-Change-Id: I135ec5f8971a9902d880e4089b0df746f5b917e2
Change-Id: I9c622ca8d1fdada5a0cda253ebdbfd42f170d184

power-libperfmgr: Reset mLastUpdatedTime when receiving valid load change hint

Bug: b/243973548
Test: manual
Change-Id: I101e7d9b9d5e6f74c3f3000508314173bed14c9c

power-libperfmgr: Implement IPowerHintSession.setThreads

Implement IPowerHintSession.setThreads, when threads are updated,
remove all previous threads and readd new threads, set the boost to
initial state.

Minor: Update IPower version to 4.

Bug: b/244216750
Bug: b/257217984
Test: manual
Change-Id: I29e2574d3a107a3e75bf27a4528635e3eedc2d14

power-libperfmgr: Boost the first frame after certain load change hints

Give the first frame after a load change hint an extra boost for
CPU_LOAD_UP and CPU_LOAD_RESET, as it tends to be much more expensive
than the subsequent frames.

Bug: b/243973548
Test: manual
Change-Id: I78942beefeb836862fb65f8fe1a036dd26a44937

power-libperfmgr: Add a timer mechanism to load signal boost

Currently, load hint signals boost the first frame but rely on frames
reporting an actual duration to end that boost. This change adds a
secondary timer to provide a maximum boost time based on the target,
in case the session fails to report an actual duration or gets rate
limited.

This patch also refactors the existing timer into a generic superclass
to make sharing timer logic easier.

Bug: 261130508
Test: manual
Change-Id: Icc7fbaed0cb764b6960a8f92a2b6505c7a8583dc

power-libperfmgr: Increase reset hint timer and base it on stale timeout

Current reset hint is too aggressive to turn off and uses arbitrary
scaling. This patch seeks to fix existing issues by changing how the
reset hint timeout is calculated.

Bug: 266266524
Bug: 266259814
Test: manual
Change-Id: Ic458ccdd0efeea36ce273681f4ff842d03f9ad7e

power-libperfmgr: Fix boost timer resetting stale timer

Currently the boost timer resets the stale timer when it turns off.
That's less than ideal, but this should fix it.

This also adds code to prevent multiple sequential boosts from re-using
uclamp.min values when calculating what to return to once the boost ends

Bug: 267385642
Bug: 267391322
Test: manual
Change-Id: I70d835f4add242c10788aa893fb2f49774e1a538

power-libperfmgr: Remove cpu_load_up relative boost to PID

Increasingly, cpu_load_up exists as a tool to boost stray expensive
frames rather than to increase the PID setpoint, so this change reflects
that and seeks to prevent power regressions in its use towards this goal

Bug: 261130508
Test: manual
Change-Id: I6608f92decbdfc59d92b4e5716a75b323c1d2c3e

power-libperfmgr: Remove mTidRefCountMap

mTidSessionListMap alone can be used to check the ref count.

Bug: b/268744922
Test: n/a
Change-Id: Ic7a3aa32560790683e402253e9e04eadb288e1f7

power-libperfmgr: ADPF: clear ResetUclampGrp flag when app's paused

Set the profile on resume/pause

Bug: 245675204
Bug: 275687673
Test: adb shell dumpsys android.hardware.power.IPower/default
Change-Id: Icadf526a2f262e77d7adb2184f61b3ccba44c601

power-libperfmgr: Send LOAD_RESET on hint session creation

Replace current init behavior with a reset hint. This makes sense,
because creating a session is implicitly a "load reset" plus HWUI may
not always send a reset hint after its background refactor. This will
also reduce first-frame boost latency for new sessions.

Bug: 279505058
Test: manual
Change-Id: I5bdeedecbd4e0afb7d777be332e5dd9fb386e1ac

power-libperfmgr: Set min MIF freq for 1st frame

Give the first frame minimum mif freq to avoid the situation that
mif at lower level but memlat can't reflect the loading in time.

Bug: 259275437
Bug: 263383561
Test: manual

Original-Change-Id: I1dbcc23fa4a7bc2e3daf05b7cc0489a1ac5953d5
Change-Id: I2f34ba6111027832cf0e544ebc288116855c47cb
Signed-off-by: Luke Chang <[email protected]>

power-libperfmgr: ADPF: support sending power hint

Send a hint only when the system can support the hint.

Bug: 243025173
Test: PtsUiBench & CUJ
Original-Change-Id: If56d0c22f8dd61f5fe27ba79f08f2963269abe41
Change-Id: I2c190ac357aa8c5b5da52e3e1566f4f62c388ba6

power-libperfmgr: ADPF: report verbose log for dead thread uclamp min update

If thread is detected as dead while setting the uclamp min, it currently
sends warning log. This caused log spamming issue. Change it to verbose
log first, then consider long term solution in master branch.

Bug: 296159697
Test: Manual
Change-Id: Ia8ea632be75a431ce0f9faa4c3792635f540be16

power-libperfmgr: ADPF: use errno to check the failure type

Bug: 296159697
Test: Manual
Change-Id: Idb74d12fd0d1028514382a4e09116b506b5ec176

spaced: Build power-service.spaced-libperfmgr

Signed-off-by: HELLINFIX <[email protected]>
Signed-off-by: HELLINFIX <[email protected]>
Change-Id: Ic8620581ae940e9e2df0de6cdbf48febf05621ff
Signed-off-by: Nishant Kumar <[email protected]>
Signed-off-by: bengris32 <[email protected]>
Change-Id: I76faaacd145d35322aff73a024c3d4c94e022ecf
Signed-off-by: Nishant Kumar <[email protected]>

spaced: sepolicy: Address libperfmgr denials

Change-Id: I3648727fbac0aceb30af4006d806daa729d36ac9
Signed-off-by: bengris32 <[email protected]>
* 09-19 16:25:59.992   698   698 I auditd  : type=1400 audit(0.0:9): avc: denied { call } for comm="vendor.mediatek" scontext=u:r:mtk_hal_power:s0 tcontext=u:r:hal_power_default:s0 tclass=binder permissive=0

Signed-off-by: Nishant Kumar <[email protected]>
Change-Id: I7abf540c6fdd674346410f8f04265be8d88d8aab
Signed-off-by: Nishant Kumar <[email protected]>
Change-Id: If3c69f9dc3906166f68371bd395fd81f29b97095
Change-Id: Ia85573431faa3c58cb2fdb65d13db6c53dbe4be1
Signed-off-by: bengris32 <[email protected]>
Change-Id: I4d8520dd6d97b11a22e4481bd74dadff4cc3eba3
Signed-off-by: bengris32 <[email protected]>
Signed-off-by: Nishant Kumar <[email protected]>

spaced: sepolicy: Allow libperfmgr to control GPU nodes

Change-Id: I4d8520dd6d97b11a22e4481bd74dadff4cc3eba3
Signed-off-by: bengris32 <[email protected]>
Change-Id: I76a3eb3cd981f592055f034e9f09cd3b7d3f30d2
Signed-off-by: bengris32 <[email protected]>
Change-Id: I9702683916af85ab7ef297927a54e7feb3d2d882
Signed-off-by: bengris32 <[email protected]>
Signed-off-by: HELLINFIX <[email protected]>
Bug: 74868067
Test: reboot test
Change-Id: Ie1f076e61fb5c80ca7f21c9f3f031c044788d1b6
Signed-off-by: HELLINFIX <[email protected]>
Change-Id: I70e4a1a7b97e55e60100b920d65a302442292633
Signed-off-by: bengris32 <[email protected]>
EmanuelCN and others added 29 commits July 22, 2024 11:44
Change-Id: Ib9871a0c4c5c3a26905ffc9aab9c98e1d343f002
Signed-off-by: HELLINFIX <[email protected]>
- This is for Fixing Lagging if Scroll to Menu Application and QS Scroll Down.

Change-Id: I75959ac082f3509560b0280da217baad38a617c5
 * Let framework handle the other ones

Change-Id: Ib8bf299a417d82fe6196e1b071b5a7b2f9c3e5d8
The framework disables aggressive power-save modes when appropriate,
such as when the device lacks a significant motion detector.

Change-Id: I1999b04876f1ddce1574c050b6bc582e9a9a96da
This sets the new "touch to unlock anytime" feature on devices
with side mounted fingerprint sensor, to on by default, as it was
before qpr3.

Change-Id: Ia63de646d4585b77b1883f8466f35ad6bdf9f953
Signed-off-by: neilchetty <[email protected]>
Signed-off-by: HELLINFIX <[email protected]>
Signed-off-by: Nishant Kumar <[email protected]>
Signed-off-by: HELLINFIX <[email protected]>
Co-authored-by: chandu078 <[email protected]>
Signed-off-by: HELLINFIX <[email protected]>
 * `fastchg_fw_update` seems to be needed to initialize VOOC / Warp charging.

Change-Id: I03dd1abe9c2c7be0b7b7576721b6f6338f1afd46
Change-Id: I39c214c263ed14dd61b8e9d4df79e9f6d0ad7032
https://pastebin.com/raw/cQKDwuHP

Change-Id: I5cdd2e4493d9d66c7de2f59a83d6db53e7f51884
As of 14 QPR2 this is broken, let's remove it instead of updating it
every 3 months. breakfast is the way to go.

Change-Id: I097bd54b894d9a49c7ce8b1ab6f343349e268fd8
Change-Id: Ie1435961dc43f7750a80b9986977194835d916f3
* Commit Ib4590b7a3b839a993f6c747c5f09a6312f7ab329 modified
  GraphicBufferMapper::unlock overload. Create a shim to provide the old
  symbol for blobs that need it

Change-Id: I0e90ac0b383b05904df83076d990ad9335a40664
Change-Id: I5fb266abda9d6c3aca5101086bbacf30ec464488
Change-Id: Icc7a1f9c748578f5b58499e7a76213673c4bcf54
Signed-off-by: bengris32 <[email protected]>
Signed-off-by: HELLINFIX <[email protected]>
 * Got removed in A14 QPR2
 * https://android.googlesource.com/platform/frameworks/native/+/1fd9bfca9d86a3b0d0ff46596ec948b147f44619
 * We have set auto_latch_unsignaled property to
   disabled state to keep latch-unsignaled as the default
   behavior.

Change-Id: I3443d6e5b0916a3098dad556ec46cf53069ae348
Signed-off-by: SamarV-121 <[email protected]>
No longer needed now init listens for property changes on a
separate thread.

Bug: 186580823
Test: Cuttlefish boots successfully
Change-Id: Ief3a546d2154231d18957c2f703bd128966d7288
No need after b663b422112dc26b8ed955daa07dd437e7c2de2b

Also better scrolling experience with default values

This reverts commit a8eabeb22e6b0c23a3dc279816e77dd98f2da624.

Change-Id: I00a6bc8ce884396601fd1cc8fac6e1a332566964
- while lz4hc,9 provides better compression ratio, it has the cost of
  tremendous compression time and potential hit while decompressing
- internal tests on aarch64 seem to suggest the decompression hit
  is larger than x86_64

Change-Id: I5c102c03f95ace982b85a6ffa5c33aa9ce4637a4
Signed-off-by: Omkar Chandorkar <[email protected]>
…eage build

Change-Id: I9e4e05d726ca74050100721e4f307ed8d9ac2bf2
Pixel 7 onwards also do the same, meaning that the user inconvenience is
none if not minimal.

This saves non-negligible amount of RAM.

Change-Id: Ide8671817d15e79ab61a1665cf3f60e599ff3981
Signed-off-by: Juhyung Park <[email protected]>
Signed-off-by: Cyber Knight <[email protected]>
HELLINFIX pushed a commit that referenced this pull request Sep 9, 2024
F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
F DEBUG   : Build fingerprint: 'TECNO/derp_CK9n/TECNO-CK9n:14/UQ1A.240105.004/1705262734:userdebug/release-keys'
F DEBUG   : Revision: '0'
F DEBUG   : ABI: 'arm64'
F DEBUG   : Timestamp: 2024-01-15 07:00:58.417643390+0300
F DEBUG   : Process uptime: 0s
F DEBUG   : Cmdline: /vendor/bin/hw/camerahalserver
F DEBUG   : pid: 980, tid: 980, name: camerahalserver  >>> /vendor/bin/hw/camerahalserver <<<
F DEBUG   : uid: 1047
F DEBUG   : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
F DEBUG   : Abort message: 'incStrongRequireStrong() called on 0xb400007c8713e060 which isn't already owned'
F DEBUG   :     x0  0000000000000000  x1  00000000000003d4  x2  0000000000000006  x3  0000007fcfa16110
F DEBUG   :     x4  1f63646b6b60621f  x5  1f63646b6b60621f  x6  1f63646b6b60621f  x7  7f7f7f7f7f7f7f7f
F DEBUG   :     x8  00000000000000f0  x9  0000007e17a410a0  x10 0000000000000001  x11 0000007e17a8aafc
F DEBUG   :     x12 0000007fcfa160d0  x13 0000000000000050  x14 0000007fcfa162a0  x15 000000004cec4ec5
F DEBUG   :     x16 0000007e17af5d28  x17 0000007e17ad1590  x18 0000007aea4865b0  x19 00000000000003d4
F DEBUG   :     x20 00000000000003d4  x21 00000000ffffffff  x22 0000000000000000  x23 0000000000000000
F DEBUG   :     x24 b400007c770ccc49  x25 b400007c770ccbd0  x26 b400007c770ccd78  x27 0000007e1d6cf010
F DEBUG   :     x28 b400007c770ccd38  x29 0000007fcfa16190
F DEBUG   :     lr  0000007e17a7af7c  sp  0000007fcfa160f0  pc  0000007e17a7afa8  pst 0000000000001000
F DEBUG   : 24 total frames
F DEBUG   : backtrace:
F DEBUG   :       #00 pc 000000000005bfa8  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: c10bee742de5116242eed0af3f77a198)
F DEBUG   :       #1 pc 0000000000006474  /system/lib64/liblog.so (__android_log_default_aborter+12) (BuildId: 1cc03ec120c57b82f45b9a1de7a40c57)
F DEBUG   :       #02 pc 0000000000007080  /system/lib64/liblog.so (__android_log_assert+308) (BuildId: 1cc03ec120c57b82f45b9a1de7a40c57)
F DEBUG   :       #03 pc 0000000000010090  /apex/com.android.vndk.v34/lib64/libutils.so (android::RefBase::incStrongRequireStrong(void const*) const+76) (BuildId: 4713e0eeb56bedf22e708218829ccdde)
F DEBUG   :       #04 pc 0000000000013ff0  /apex/com.android.vndk.v34/lib64/libutils.so (android::Thread::run(char const*, int, unsigned long)+116) (BuildId: 4713e0eeb56bedf22e708218829ccdde)
F DEBUG   :       #05 pc 000000000004bfc4  /vendor/lib64/libmtkcam_device3_app.so (NSCam::v3::AppStreamMgr::CallbackHandler::CallbackHelper::CallbackHelper(std::__1::shared_ptr<NSCam::v3::AppStreamMgr::CommonInfo>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, android::sp<NSCam::v3::AppStreamMgr::CallbackHandler>, android::sp<NSCam::v3::AppStreamMgr::CallbackHandler::CallbackHelper>, std::__1::shared_ptr<NSCam::v3::AppStreamMgr::CamDejitter>)+500) (BuildId: 838a869d6580091ae8bf19713640b8d1)
F DEBUG   :       #06 pc 000000000003c438  /vendor/lib64/libmtkcam_device3_app.so (NSCam::v3::AppStreamMgr::CallbackHandler::CallbackHandler(std::__1::shared_ptr<NSCam::v3::AppStreamMgr::CommonInfo>, std::__1::shared_ptr<NSCam::v3::AppStreamMgr::CamDejitter>)+848) (BuildId: 838a869d6580091ae8bf19713640b8d1)
F DEBUG   :       #07 pc 0000000000022a54  /vendor/lib64/libmtkcam_device3_app.so (NSCam::v3::AppStreamMgr::initialize()+332) (BuildId: 838a869d6580091ae8bf19713640b8d1)
F DEBUG   :       #08 pc 0000000000022140  /vendor/lib64/libmtkcam_device3_app.so (NSCam::v3::IAppStreamManager::create(NSCam::v3::Utils::CreationInfo const&)+40) (BuildId: 838a869d6580091ae8bf19713640b8d1)
F DEBUG   :       #09 pc 00000000000237b8  /vendor/lib64/libmtkcam_device3_hal.so (NSCam::v3::CameraDevice3SessionImpl::onOpenLocked(std::__1::shared_ptr<NSCam::v3::CameraDevice3SessionCallback> const&)+1436) (BuildId: f4be1271df6c6f5f77f6311c9b53c500)
F DEBUG   :       #10 pc 0000000000035fc4  /vendor/lib64/libmtkcam_device3_hal.so (std::__1::__function::__func<NSCam::v3::CameraDevice3SessionImpl::open(std::__1::shared_ptr<NSCam::v3::CameraDevice3SessionCallback>)::$_4, std::__1::allocator<NSCam::v3::CameraDevice3SessionImpl::open(std::__1::shared_ptr<NSCam::v3::CameraDevice3SessionCallback>)::$_4>, void ()>::operator()()+32) (BuildId: f4be1271df6c6f5f77f6311c9b53c500)
F DEBUG   :       #11 pc 0000000000022c38  /vendor/lib64/libmtkcam_device3_hal.so (NSCam::v3::CameraDevice3SessionImpl::tryRunCommandLocked(long, char const*, std::__1::function<void ()>)+344) (BuildId: f4be1271df6c6f5f77f6311c9b53c500)
F DEBUG   :       #12 pc 000000000002c3a8  /vendor/lib64/libmtkcam_device3_hal.so (NSCam::v3::CameraDevice3SessionImpl::open(std::__1::shared_ptr<NSCam::v3::CameraDevice3SessionCallback>)+1652) (BuildId: f4be1271df6c6f5f77f6311c9b53c500)
F DEBUG   :       #13 pc 0000000000016f18  /vendor/lib64/libmtkcam_device3_hidl.so (NSCam::hidl_dev3::HidlCameraDeviceSession::initialize()+1736) (BuildId: 9cec9fe3b1125b4a3f4168a8b0dbd6de)
F DEBUG   :       #14 pc 00000000000164a0  /vendor/lib64/libmtkcam_device3_hidl.so (NSCam::hidl_dev3::HidlCameraDeviceSession::open(android::sp<android::hardware::camera::device::V3_5::ICameraDeviceCallback> const&)+1572) (BuildId: 9cec9fe3b1125b4a3f4168a8b0dbd6de)
F DEBUG   :       #15 pc 00000000000140e8  /vendor/lib64/libmtkcam_device3_hidl.so (NSCam::hidl_dev3::HidlCameraDevice3::open(android::sp<android::hardware::camera::device::V3_2::ICameraDeviceCallback> const&, std::__1::function<void (android::hardware::camera::common::V1_0::Status, android::sp<android::hardware::camera::device::V3_2::ICameraDeviceSession> const&)>)+216) (BuildId: 9cec9fe3b1125b4a3f4168a8b0dbd6de)
F DEBUG   :       #16 pc 000000000001b234  /vendor/lib64/[email protected] (android::hardware::camera::device::V3_2::BnHwCameraDevice::_hidl_open(android::hidl::base::V1_0::BnHwBase*, android::hardware::Parcel const&, android::hardware::Parcel*, std::__1::function<void (android::hardware::Parcel&)>)+416) (BuildId: 834de8f922f598bcc053c3ac3e680937)
F DEBUG   :       #17 pc 0000000000020424  /vendor/lib64/[email protected] (android::hardware::camera::device::V3_6::BnHwCameraDevice::onTransact(unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int, std::__1::function<void (android::hardware::Parcel&)>)+784) (BuildId: 21ada917b894669ec4fded4b1f0bc3d0)
F DEBUG   :       #18 pc 0000000000093704  /apex/com.android.vndk.v34/lib64/libhidlbase.so (android::hardware::BHwBinder::transact(unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int, std::__1::function<void (android::hardware::Parcel&)>)+156) (BuildId: 374b9f1aa072682b6e1dffee3b01a97f)
F DEBUG   :       #19 pc 0000000000098508  /apex/com.android.vndk.v34/lib64/libhidlbase.so (android::hardware::IPCThreadState::executeCommand(int)+2720) (BuildId: 374b9f1aa072682b6e1dffee3b01a97f)
F DEBUG   :       #20 pc 0000000000097910  /apex/com.android.vndk.v34/lib64/libhidlbase.so (android::hardware::IPCThreadState::getAndExecuteCommand()+224) (BuildId: 374b9f1aa072682b6e1dffee3b01a97f)
F DEBUG   :       #21 pc 0000000000098aac  /apex/com.android.vndk.v34/lib64/libhidlbase.so (android::hardware::IPCThreadState::joinThreadPool(bool)+176) (BuildId: 374b9f1aa072682b6e1dffee3b01a97f)
F DEBUG   :       #22 pc 00000000000022c0  /vendor/bin/hw/camerahalserver (main+620) (BuildId: 3bcb4628f7d40cdff8441fea9eab93a6)
F DEBUG   :       #23 pc 0000000000054698  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+104) (BuildId: c10bee742de5116242eed0af3f77a198)

Change-Id: I465d31f8981a08d59973f1a1458b0550b3e16454
Signed-off-by: xyzuniverse <[email protected]>
Signed-off-by: fjrXTR <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.