diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 7c442b4..1edf75a 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -13738,10 +13738,6 @@
         return u;
     }
 
-    public void onCleanupUserLocked(int userId) {
-        onCleanupUserLocked(userId, mClocks.elapsedRealtime());
-    }
-
     public void onCleanupUserLocked(int userId, long elapsedRealtimeMs) {
         final int firstUidForUser = UserHandle.getUid(userId, 0);
         final int lastUidForUser = UserHandle.getUid(userId, UserHandle.PER_USER_RANGE - 1);
diff --git a/services/core/java/com/android/server/SystemServiceManager.java b/services/core/java/com/android/server/SystemServiceManager.java
index 5556e48..c967a1b 100644
--- a/services/core/java/com/android/server/SystemServiceManager.java
+++ b/services/core/java/com/android/server/SystemServiceManager.java
@@ -58,12 +58,12 @@
     // Constants used on onUser(...)
     // NOTE: do not change their values, as they're used on Trace calls and changes might break
     // performance tests that rely on them.
-    private static final String USER_STARTING = "Start";
-    private static final String USER_UNLOCKING = "Unlocking";
-    private static final String USER_UNLOCKED = "Unlocked";
-    private static final String USER_SWITCHING = "Switch";
-    private static final String USER_STOPPING = "Stop";
-    private static final String USER_STOPPED = "Cleanup";
+    private static final String USER_STARTING = "Start"; // Logged as onStartUser
+    private static final String USER_UNLOCKING = "Unlocking"; // Logged as onUnlockingUser
+    private static final String USER_UNLOCKED = "Unlocked"; // Logged as onUnlockedUser
+    private static final String USER_SWITCHING = "Switch"; // Logged as onSwitchUser
+    private static final String USER_STOPPING = "Stop"; // Logged as onStopUser
+    private static final String USER_STOPPED = "Cleanup"; // Logged as onCleanupUser
 
     private static File sSystemDir;
     private final Context mContext;
diff --git a/services/core/java/com/android/server/wallpaper/IWallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/IWallpaperManagerService.java
index 60b08dd..a4ddf11 100644
--- a/services/core/java/com/android/server/wallpaper/IWallpaperManagerService.java
+++ b/services/core/java/com/android/server/wallpaper/IWallpaperManagerService.java
@@ -29,7 +29,7 @@
     void onBootPhase(int phase);
 
     /**
-     * @see com.android.server.SystemService#onUnlockUser(int)
+     * @see com.android.server.SystemService#onUserUnlocking
      */
     void onUnlockUser(final int userId);
 }
\ No newline at end of file
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/BaseIDevicePolicyManager.java b/services/devicepolicy/java/com/android/server/devicepolicy/BaseIDevicePolicyManager.java
index ce61d50..6f1d451e 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/BaseIDevicePolicyManager.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/BaseIDevicePolicyManager.java
@@ -44,19 +44,19 @@
     /**
      * To be called by {@link DevicePolicyManagerService#Lifecycle} when a new user starts.
      *
-     * @see {@link SystemService#onStartUser}
+     * @see {@link SystemService#onUserStarting}
      */
     abstract void handleStartUser(int userId);
     /**
      * To be called by {@link DevicePolicyManagerService#Lifecycle} when a user is being unlocked.
      *
-     * @see {@link SystemService#onUnlockUser}
+     * @see {@link SystemService#onUserUnlocking}
      */
     abstract void handleUnlockUser(int userId);
     /**
      * To be called by {@link DevicePolicyManagerService#Lifecycle} when a user is being stopped.
      *
-     * @see {@link SystemService#onStopUser}
+     * @see {@link SystemService#onUserStopping}
      */
     abstract void handleStopUser(int userId);
 
diff --git a/startop/iorap/src/com/google/android/startop/iorap/SystemServiceUserEvent.java b/startop/iorap/src/com/google/android/startop/iorap/SystemServiceUserEvent.java
index b77c03c..2e7bafe 100644
--- a/startop/iorap/src/com/google/android/startop/iorap/SystemServiceUserEvent.java
+++ b/startop/iorap/src/com/google/android/startop/iorap/SystemServiceUserEvent.java
@@ -36,15 +36,15 @@
  */
 public class SystemServiceUserEvent implements Parcelable {
 
-    /** @see com.android.server.SystemService#onStartUser */
+    /** @see com.android.server.SystemService#onUserStarting */
     public static final int TYPE_START_USER = 0;
-    /** @see com.android.server.SystemService#onUnlockUser */
+    /** @see com.android.server.SystemService#onUserUnlocking */
     public static final int TYPE_UNLOCK_USER = 1;
-    /** @see com.android.server.SystemService#onSwitchUser*/
+    /** @see com.android.server.SystemService#onUserSwitching*/
     public static final int TYPE_SWITCH_USER = 2;
-    /** @see com.android.server.SystemService#onStopUser */
+    /** @see com.android.server.SystemService#onUserStopping */
     public static final int TYPE_STOP_USER = 3;
-    /** @see com.android.server.SystemService#onCleanupUser */
+    /** @see com.android.server.SystemService#onUserStopped */
     public static final int TYPE_CLEANUP_USER = 4;
     private static final int TYPE_MAX = TYPE_CLEANUP_USER;
 
