Do not disable tracing in zygote.
We now use the sequence number of the atrace tag rather than a Binder transaction, so zygote can observe changes to the tags. Test: m; flash; adb shell atrace dalvik | grep hprof Bug: 137366208 Bug: 147667830 Change-Id: I50e32a19c538dd255097c035836504b4746b172b
This commit is contained in:
@@ -175,11 +175,7 @@ public final class Trace {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set whether tracing is enabled in this process. Tracing is disabled shortly after Zygote
|
* Set whether tracing is enabled in this process.
|
||||||
* initializes and re-enabled after processes fork from Zygote. This is done because Zygote
|
|
||||||
* has no way to be notified about changes to the tracing tags, and if Zygote ever reads and
|
|
||||||
* caches the tracing tags, forked processes will inherit those stale tags.
|
|
||||||
*
|
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public static void setTracingEnabled(boolean enabled, int debugFlags) {
|
public static void setTracingEnabled(boolean enabled, int debugFlags) {
|
||||||
|
|||||||
@@ -279,10 +279,8 @@ public final class Zygote {
|
|||||||
uid, gid, gids, runtimeFlags, rlimits, mountExternal, seInfo, niceName, fdsToClose,
|
uid, gid, gids, runtimeFlags, rlimits, mountExternal, seInfo, niceName, fdsToClose,
|
||||||
fdsToIgnore, startChildZygote, instructionSet, appDataDir, isTopApp,
|
fdsToIgnore, startChildZygote, instructionSet, appDataDir, isTopApp,
|
||||||
pkgDataInfoList);
|
pkgDataInfoList);
|
||||||
// Enable tracing as soon as possible for the child process.
|
|
||||||
if (pid == 0) {
|
if (pid == 0) {
|
||||||
Zygote.disableExecuteOnly(targetSdkVersion);
|
Zygote.disableExecuteOnly(targetSdkVersion);
|
||||||
Trace.setTracingEnabled(true, runtimeFlags);
|
|
||||||
|
|
||||||
// Note that this event ends at the end of handleChildProc,
|
// Note that this event ends at the end of handleChildProc,
|
||||||
Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "PostFork");
|
Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "PostFork");
|
||||||
@@ -334,9 +332,6 @@ public final class Zygote {
|
|||||||
niceName, startChildZygote, instructionSet, appDataDir, isTopApp,
|
niceName, startChildZygote, instructionSet, appDataDir, isTopApp,
|
||||||
pkgDataInfoList);
|
pkgDataInfoList);
|
||||||
|
|
||||||
// Enable tracing as soon as possible for the child process.
|
|
||||||
Trace.setTracingEnabled(true, runtimeFlags);
|
|
||||||
|
|
||||||
// Note that this event ends at the end of handleChildProc.
|
// Note that this event ends at the end of handleChildProc.
|
||||||
Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "PostFork");
|
Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "PostFork");
|
||||||
|
|
||||||
@@ -393,11 +388,6 @@ public final class Zygote {
|
|||||||
uid, gid, gids, runtimeFlags, rlimits,
|
uid, gid, gids, runtimeFlags, rlimits,
|
||||||
permittedCapabilities, effectiveCapabilities);
|
permittedCapabilities, effectiveCapabilities);
|
||||||
|
|
||||||
// Enable tracing as soon as we enter the system_server.
|
|
||||||
if (pid == 0) {
|
|
||||||
Trace.setTracingEnabled(true, runtimeFlags);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the Java Language thread priority to the default value for new apps.
|
// Set the Java Language thread priority to the default value for new apps.
|
||||||
Thread.currentThread().setPriority(Thread.NORM_PRIORITY);
|
Thread.currentThread().setPriority(Thread.NORM_PRIORITY);
|
||||||
|
|
||||||
|
|||||||
@@ -914,10 +914,6 @@ public class ZygoteInit {
|
|||||||
bootTimingsTraceLog.traceEnd(); // PostZygoteInitGC
|
bootTimingsTraceLog.traceEnd(); // PostZygoteInitGC
|
||||||
|
|
||||||
bootTimingsTraceLog.traceEnd(); // ZygoteInit
|
bootTimingsTraceLog.traceEnd(); // ZygoteInit
|
||||||
// Disable tracing so that forked processes do not inherit stale tracing tags from
|
|
||||||
// Zygote.
|
|
||||||
Trace.setTracingEnabled(false, 0);
|
|
||||||
|
|
||||||
|
|
||||||
Zygote.initNativeState(isPrimaryZygote);
|
Zygote.initNativeState(isPrimaryZygote);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user