Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3b14e5b1 authored by Brian Carlstrom's avatar Brian Carlstrom Committed by Narayan Kamath
Browse files

Use set_sched_policy to put dexopt operations in SP_BACKGROUND cgroup

Bug: 15927194

(cherry picked from commit 0378aaf2)

Change-Id: I462b5ac256c4d091ed4023cf4b97dd6a4abcaa5f
parent 7d1cd4aa
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
#include <inttypes.h>
#include <inttypes.h>
#include <sys/capability.h>
#include <sys/capability.h>
#include "installd.h"
#include "installd.h"
#include <cutils/sched_policy.h>
#include <diskusage/dirsize.h>
#include <diskusage/dirsize.h>
#include <selinux/android.h>
#include <selinux/android.h>


@@ -950,6 +951,10 @@ int dexopt(const char *apk_path, uid_t uid, int is_public,
            ALOGE("capset failed: %s\n", strerror(errno));
            ALOGE("capset failed: %s\n", strerror(errno));
            exit(66);
            exit(66);
        }
        }
        if (set_sched_policy(0, SP_BACKGROUND) < 0) {
            ALOGE("set_sched_policy failed: %s\n", strerror(errno));
            exit(70);
        }
        if (flock(out_fd, LOCK_EX | LOCK_NB) != 0) {
        if (flock(out_fd, LOCK_EX | LOCK_NB) != 0) {
            ALOGE("flock(%s) failed: %s\n", out_path, strerror(errno));
            ALOGE("flock(%s) failed: %s\n", out_path, strerror(errno));
            exit(67);
            exit(67);