Skip to content
New issue

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

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

Already on GitHub? # to your account

Matrix v2.0.2 #660

Merged
merged 77 commits into from
Nov 1, 2021
Merged
Changes from 1 commit
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
1805ff5
Add battery test with power metrics
kaedea Jun 23, 2021
5e4d36d
Update battery metrics test
kaedea Jun 23, 2021
876bdc5
Update battery tests for thread polling
kaedea Jun 25, 2021
345f9aa
Update battery test with app stat
kaedea Jun 28, 2021
6819b0a
Merge branch 'feature/dev-battery-canary' into feature/dev-battery-ca…
kaedea Sep 6, 2021
4ac51b2
Add battery metrics test
kaedea Sep 8, 2021
c737f7c
Add battery PowerProfile
kaedea Sep 9, 2021
cdedcba
Update battery metric test with cpu load
kaedea Sep 10, 2021
5da4ba5
Update power profile
kaedea Sep 10, 2021
062e0a9
Add battery cpu stat feature
kaedea Sep 10, 2021
049b19b
Update cpuStats feature impl
kaedea Sep 10, 2021
a2e2f8e
Add battery cpu sipping test
kaedea Sep 10, 2021
6b63a62
Update battery metrics test
kaedea Sep 13, 2021
ec59808
Add battery metrics: kernel cpu pid times reader
kaedea Sep 13, 2021
b694fae
Update battery cpu stat impl
kaedea Sep 13, 2021
cd2c459
Update battery cpuStat compat check
kaedea Sep 13, 2021
823bb36
Make clean-up cycle shorter
gryamy Sep 15, 2021
9b91f03
Update battery cpuStat compat check
kaedea Sep 16, 2021
50bfc4e
Add battery composite monitors
kaedea Sep 18, 2021
8a895e2
Polish deprecated codes
kaedea Sep 18, 2021
f9a1ace
Update battery callback
kaedea Sep 18, 2021
73d8b2a
Introduce MemGuard.
tys282000 Sep 23, 2021
f293e6d
Update battery metrics with powprofile init
kaedea Sep 26, 2021
6af67af
Merge branch 'feature/dev' into feature/dev-battery-canary-metrics
kaedea Sep 28, 2021
7007e51
Try lock free array
gryamy Sep 29, 2021
73293fa
Remove lock free queue
gryamy Sep 29, 2021
2b14de9
Add lock_free_array_queue.h
gryamy Sep 29, 2021
0e0f66e
MemoryHook refactor
gryamy Sep 30, 2021
e08c899
MemoryHook remove deprecated flags
gryamy Sep 30, 2021
1a2ffe6
Merge branch 'feature/dev-2021-sep' into 'feature/dev' (merge request…
gryamy Sep 30, 2021
2793bac
Merge branch 'feature/dev-battery-canary-metrics' into 'feature/dev' …
gryamy Sep 30, 2021
41bdb77
Merge branch 'feature/dev-memhook-chore' into 'feature/dev' (merge re…
gryamy Sep 30, 2021
f866ad8
v2.0.2
gryamy Sep 30, 2021
76cfb3b
Merge branch 'feature/memguard' into 'feature/dev' (merge request !104)
gryamy Sep 30, 2021
89f4428
MemGuard: Block MTE utils so far to avoid issues in ndk r21.
tys282000 Oct 9, 2021
59b6959
Merge branch 'feature/tomys_block_mte_utils' into 'feature/dev' (merg…
Oct 9, 2021
2c15fe7
Fix battery powerprofile npe
kaedea Oct 9, 2021
811a5f9
compat with APG7
Yves0 Oct 9, 2021
03365d5
Fix leak misjudgement while returning same ptr by realloc()
gryamy Oct 11, 2021
11f0c8f
Merge branch 'feature/dev-battery-canary-metrics' into 'feature/dev' …
gryamy Oct 12, 2021
d05d060
Merge branch 'feature/dev-agp7-compat' into 'feature/dev' (merge requ…
gryamy Oct 12, 2021
84ccf5a
History Messages Recorder & Dense Messages Tracer
Oct 12, 2021
c5ddab1
Merge branch 'feature/dev_leafjia_history_msg' into 'feature/dev' (me…
gryamy Oct 13, 2021
4656832
ASM: upgrade ASM to 7.0
Yves0 Oct 14, 2021
d0eedfa
trace: pass twice to fix stack frame
Yves0 Oct 14, 2021
dd895d4
trace: add class check
Yves0 Oct 14, 2021
1a1274d
trace: try to fix stack frame
Yves0 Oct 14, 2021
67020e9
trace: verify again
Yves0 Oct 15, 2021
038456f
SignalAnrTracer: add printTraceFilePath setter
Yves0 Oct 15, 2021
9e44d93
Merge branch 'feature/dev-signal-tracer' into 'feature/dev' (merge re…
gryamy Oct 15, 2021
b68bed6
Revert Merge branch 'feature/dev-signal-tracer' into 'feature/dev' (m…
gryamy Oct 15, 2021
0a95a7c
Merge branch 'revert-9e44d939' into 'feature/dev' (merge request !110)
gryamy Oct 15, 2021
bdbcce0
trace: asm - use COMPUTE_FRAMES flag
Yves0 Oct 15, 2021
cdbf1f1
trace: fix TypeNotPresentException
Yves0 Oct 18, 2021
10f7f7c
trace-debug: enable input check
Yves0 Oct 18, 2021
b836f14
trace: disable input check, throw exception when error occurs
Yves0 Oct 19, 2021
ace86ba
Merge branch 'feature/dev-trace-fix' into 'feature/dev' (merge reques…
gryamy Oct 19, 2021
d7aa7b9
filter system by thread name
Sep 16, 2021
6098e59
Fix battery power profile anr issue
kaedea Oct 20, 2021
717627e
Merge branch 'feature/dev-battery-canary-metrics' into 'feature/dev' …
gryamy Oct 20, 2021
19097b9
Merge branch 'feature/dev-opengl-filter-by-thread-name' into 'feature…
gryamy Oct 20, 2021
d02bc15
trace: add ErrorMsg log
Yves0 Oct 22, 2021
d180e26
Merge branch 'feature/dev' of http://git.code.oa.com/matrix/matrix in…
Yves0 Oct 22, 2021
dedfccc
tracer: fix AGP-asm compat issue
Yves0 Oct 25, 2021
8200955
Merge branch 'feature/dev-trace-fix' into 'feature/dev' (merge reques…
gryamy Oct 25, 2021
cb96800
tracer: add extension param - skipCheckClass
Yves0 Oct 25, 2021
a6ca302
Merge branch 'feature/dev-trace-fix' into 'feature/dev' (merge reques…
gryamy Oct 28, 2021
6667017
v2.0.2
gryamy Oct 28, 2021
b6917a6
Merge branch 'feature/dev' of http://git.code.oa.com/matrix/matrix in…
gryamy Oct 28, 2021
e918817
trace: skip checking class by default
Yves0 Oct 28, 2021
12473dc
Merge branch 'feature/dev-trace-fix' into 'feature/dev' (merge reques…
gryamy Oct 28, 2021
8765add
MemoryHook: realloc bugfix
gryamy Oct 28, 2021
f784ece
[memguard] Add ReadMe.
tys282000 Oct 28, 2021
fa82ce1
Fix ZipSlip vulnerability
gryamy Oct 29, 2021
4184982
Add 039/040 dex version check
gryamy Oct 29, 2021
e6df151
Merge branch 'feature/memguard' into 'feature/dev' (merge request !117)
gryamy Oct 29, 2021
e836bbc
Fix checkstyle
gryamy Oct 29, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix battery power profile anr issue
  • Loading branch information
kaedea committed Oct 20, 2021
commit 6098e591f8e0e4ac472b276a5426f0d727610209
Original file line number Diff line number Diff line change
@@ -14,6 +14,8 @@
import java.util.Collections;
import java.util.List;

import androidx.annotation.WorkerThread;

import static com.tencent.matrix.batterycanary.utils.BatteryCanaryUtil.JIFFY_MILLIS;
import static com.tencent.matrix.batterycanary.utils.BatteryCanaryUtil.ONE_HOR;

@@ -46,10 +48,18 @@ public void onTurnOn() {
public void onForeground(boolean isForeground) {
super.onForeground(isForeground);
if (!isForeground) {
tryInitPowerProfile();
if (mPowerProfile == null) {
mCore.getHandler().post(new Runnable() {
@Override
public void run() {
tryInitPowerProfile();
}
});
}
}
}

@WorkerThread
private void tryInitPowerProfile() {
if (mPowerProfile != null) {
return;
@@ -93,27 +103,32 @@ public CpuStateSnapshot currentCpuStateSnapshot() {
if (!isSupported()) {
throw new IOException("PowerProfile not supported");
}
// Cpu core steps jiffies
snapshot.cpuCoreStates = new ArrayList<>();
for (int i = 0; i < mPowerProfile.getCpuCoreNum(); i++) {
final int numSpeedSteps = mPowerProfile.getNumSpeedStepsInCpuCluster(mPowerProfile.getClusterByCpuNum(i));
KernelCpuSpeedReader cpuStepJiffiesReader = new KernelCpuSpeedReader(i, numSpeedSteps);
long[] cpuCoreStepJiffies = cpuStepJiffiesReader.readAbsolute();
ListEntry<DigitEntry<Long>> cpuCoreState = ListEntry.ofDigits(cpuCoreStepJiffies);
snapshot.cpuCoreStates.add(cpuCoreState);
}
synchronized (this) {
if (!isSupported()) {
throw new IOException("PowerProfile not supported");
}
// Cpu core steps jiffies
snapshot.cpuCoreStates = new ArrayList<>();
for (int i = 0; i < mPowerProfile.getCpuCoreNum(); i++) {
final int numSpeedSteps = mPowerProfile.getNumSpeedStepsInCpuCluster(mPowerProfile.getClusterByCpuNum(i));
KernelCpuSpeedReader cpuStepJiffiesReader = new KernelCpuSpeedReader(i, numSpeedSteps);
long[] cpuCoreStepJiffies = cpuStepJiffiesReader.readAbsolute();
ListEntry<DigitEntry<Long>> cpuCoreState = ListEntry.ofDigits(cpuCoreStepJiffies);
snapshot.cpuCoreStates.add(cpuCoreState);
}

// Proc cluster steps jiffies
int[] clusterSteps = new int[mPowerProfile.getNumCpuClusters()];
for (int i = 0; i < clusterSteps.length; i++) {
clusterSteps[i] = mPowerProfile.getNumSpeedStepsInCpuCluster(i);
}
KernelCpuUidFreqTimeReader procStepJiffiesReader = new KernelCpuUidFreqTimeReader(Process.myPid(), clusterSteps);
List<long[]> procStepJiffies = procStepJiffiesReader.readAbsolute();
snapshot.procCpuCoreStates = new ArrayList<>();
for (long[] item : procStepJiffies) {
ListEntry<DigitEntry<Long>> procCpuCoreState = ListEntry.ofDigits(item);
snapshot.procCpuCoreStates.add(procCpuCoreState);
// Proc cluster steps jiffies
int[] clusterSteps = new int[mPowerProfile.getNumCpuClusters()];
for (int i = 0; i < clusterSteps.length; i++) {
clusterSteps[i] = mPowerProfile.getNumSpeedStepsInCpuCluster(i);
}
KernelCpuUidFreqTimeReader procStepJiffiesReader = new KernelCpuUidFreqTimeReader(Process.myPid(), clusterSteps);
List<long[]> procStepJiffies = procStepJiffiesReader.readAbsolute();
snapshot.procCpuCoreStates = new ArrayList<>();
for (long[] item : procStepJiffies) {
ListEntry<DigitEntry<Long>> procCpuCoreState = ListEntry.ofDigits(item);
snapshot.procCpuCoreStates.add(procCpuCoreState);
}
}
} catch (Exception e) {
MatrixLog.w(TAG, "Read cpu core state fail: " + e.getMessage());