From 2eb8ad6245597ab05855448958360c3700a29bce Mon Sep 17 00:00:00 2001 From: Connor O'Brien Date: Mon, 7 Dec 2020 18:45:46 -0800 Subject: [PATCH] Clear BPF data in KernelCpuUidTimeReader.removeUid() Currently KernelCpuUidTimeReader removes BPF cputime data in removeUidsInRange(), but not in removeUid(), causing a leak where data for some UIDs persists after it should have been removed. Update removeUid() so that BPF data for removed UIDs is removed in both paths. Bug: 174739872 Test: open Chrome app & tabs & then close them; confirm isolated UID data is removed. Change-Id: I46315e37c2ac21a3964bb18f8fc9e050a83f97fe Signed-off-by: Connor O'Brien --- core/java/com/android/internal/os/KernelCpuUidTimeReader.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/java/com/android/internal/os/KernelCpuUidTimeReader.java b/core/java/com/android/internal/os/KernelCpuUidTimeReader.java index f7fad2c5bbaa1..2dd51b4459e7d 100644 --- a/core/java/com/android/internal/os/KernelCpuUidTimeReader.java +++ b/core/java/com/android/internal/os/KernelCpuUidTimeReader.java @@ -143,6 +143,10 @@ public abstract class KernelCpuUidTimeReader { */ public void removeUid(int uid) { mLastTimes.delete(uid); + + if (mBpfTimesAvailable) { + mBpfReader.removeUidsInRange(uid, uid); + } } /**