Revert "lmkd: set priority of the kill target from the reaper thread" am: c5e4185a02 am: b4e51e775a am: 97399d18c5

Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/2264594

Change-Id: I6ed5b62d32dc7669e6c7de97cdc04ad9f66ec203
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Suren Baghdasaryan 2022-10-21 23:43:13 +00:00 committed by Automerger Merge Worker
commit aff31f011f
1 changed files with 7 additions and 40 deletions

View File

@ -53,41 +53,6 @@ static inline long get_time_diff_ms(struct timespec *from,
(to->tv_nsec - from->tv_nsec) / (long)NS_PER_MS;
}
static void set_process_group_and_prio(uid_t uid, int pid, const std::vector<std::string>& profiles,
int prio) {
DIR* d;
char proc_path[PATH_MAX];
struct dirent* de;
if (!SetProcessProfilesCached(uid, pid, profiles)) {
ALOGW("Failed to set task profiles for the process (%d) being killed", pid);
}
snprintf(proc_path, sizeof(proc_path), "/proc/%d/task", pid);
if (!(d = opendir(proc_path))) {
ALOGW("Failed to open %s; errno=%d: process pid(%d) might have died", proc_path, errno,
pid);
return;
}
while ((de = readdir(d))) {
int t_pid;
if (de->d_name[0] == '.') continue;
t_pid = atoi(de->d_name);
if (!t_pid) {
ALOGW("Failed to get t_pid for '%s' of pid(%d)", de->d_name, pid);
continue;
}
if (setpriority(PRIO_PROCESS, t_pid, prio) && errno != ESRCH) {
ALOGW("Unable to raise priority of killing t_pid (%d): errno=%d", t_pid, errno);
}
}
closedir(d);
}
static void* reaper_main(void* param) {
Reaper *reaper = static_cast<Reaper*>(param);
struct timespec start_tm, end_tm;
@ -115,11 +80,6 @@ static void* reaper_main(void* param) {
reaper->notify_kill_failure(target.pid);
goto done;
}
set_process_group_and_prio(target.uid, target.pid,
{"CPUSET_SP_FOREGROUND", "SCHED_SP_FOREGROUND"},
ANDROID_PRIORITY_NORMAL);
if (process_mrelease(target.pidfd, 0)) {
ALOGE("process_mrelease %d failed: %s", target.pidfd, strerror(errno));
goto done;
@ -130,6 +90,13 @@ static void* reaper_main(void* param) {
get_time_diff_ms(&start_tm, &end_tm));
}
if (!SetProcessProfilesCached(target.uid, target.pid,
{"CPUSET_SP_FOREGROUND", "SCHED_SP_FOREGROUND"})) {
if (reaper->debug_enabled()) {
ALOGW("Failed to set task profiles for the process (%d) being killed", target.pid);
}
}
done:
close(target.pidfd);
reaper->request_complete();