diff options
| author | 2020-12-15 20:54:14 +0000 | |
|---|---|---|
| committer | 2020-12-15 20:54:14 +0000 | |
| commit | 6a6ee5f3186942c0120fd157ef4b07bbffb6accf (patch) | |
| tree | e6bc327702725538f0d71323184c6ed2367a62c5 | |
| parent | 181ff65039995ce09fc3caec2de1c3ec5e2916fe (diff) | |
| parent | 8ac80b0915aad382977017fdaa10814a851662eb (diff) | |
Merge "iorap: Terminate iorapd process when both tracing and prefetching are off." am: 8ac80b0915
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1522026
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I52a5012d525d1556acf24b6e13734f72602832e9
| -rw-r--r-- | startop/iorap/src/com/google/android/startop/iorap/IorapForwardingService.java | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/startop/iorap/src/com/google/android/startop/iorap/IorapForwardingService.java b/startop/iorap/src/com/google/android/startop/iorap/IorapForwardingService.java index 3104c7e7e0a1..f923721b19ea 100644 --- a/startop/iorap/src/com/google/android/startop/iorap/IorapForwardingService.java +++ b/startop/iorap/src/com/google/android/startop/iorap/IorapForwardingService.java @@ -34,6 +34,7 @@ import android.os.Parcel; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemProperties; +import android.provider.DeviceConfig; import android.util.ArraySet; import android.util.Log; @@ -154,9 +155,27 @@ public class IorapForwardingService extends SystemService { @VisibleForTesting protected boolean isIorapEnabled() { + // These two mendel flags should match those in iorapd native process + // system/iorapd/src/common/property.h + boolean isTracingEnabled = + getMendelFlag("iorap_perfetto_enable", "iorapd.perfetto.enable", false); + boolean isReadAheadEnabled = + getMendelFlag("iorap_readahead_enable", "iorapd.readahead.enable", false); // Same as the property in iorapd.rc -- disabling this will mean the 'iorapd' binder process // never comes up, so all binder connections will fail indefinitely. - return IS_ENABLED; + return IS_ENABLED && (isTracingEnabled || isReadAheadEnabled); + } + + private boolean getMendelFlag(String mendelFlag, String sysProperty, boolean defaultValue) { + // TODO(yawanng) use DeviceConfig to get mendel property. + // DeviceConfig doesn't work and the reason is not clear. + // Provider service is already up before IORapForwardService. + String mendelProperty = "persist.device_config." + + DeviceConfig.NAMESPACE_RUNTIME_NATIVE_BOOT + + "." + + mendelFlag; + return SystemProperties.getBoolean(mendelProperty, + SystemProperties.getBoolean(sysProperty, defaultValue)); } //</editor-fold> @@ -239,7 +258,9 @@ public class IorapForwardingService extends SystemService { // // TODO: it would be good to get nodified of 'adb shell stop iorapd' to avoid // printing this warning. - Log.w(TAG, "Failed to connect to iorapd, is it down? Delay for " + sleepTime); + if (DEBUG) { + Log.v(TAG, "Failed to connect to iorapd, is it down? Delay for " + sleepTime); + } // Use a handler instead of Thread#sleep to avoid backing up the binder thread // when this is called from the death recipient callback. @@ -275,7 +296,9 @@ public class IorapForwardingService extends SystemService { // Connect to the native binder service. mIorapRemote = provideIorapRemote(); if (mIorapRemote == null) { - Log.e(TAG, "connectToRemoteAndConfigure - null iorap remote. check for Log.wtf?"); + if (DEBUG) { + Log.e(TAG, "connectToRemoteAndConfigure - null iorap remote. check for Log.wtf?"); + } return false; } invokeRemote(mIorapRemote, |