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

Commit 99b1002b authored by Martin Stjernholm's avatar Martin Stjernholm Committed by Automerger Merge Worker
Browse files

Merge "Use dalvik.vm.background-dex2oat-* system properties for background...

Merge "Use dalvik.vm.background-dex2oat-* system properties for background jobs." am: 25b9b250 am: 9e658a84 am: b16c01a3

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2281212



Change-Id: I4b9fc2b1551b3ed657ee1c861baedcdb2713cfd7
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 8f8d251a b16c01a3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1956,7 +1956,7 @@ int dexopt(const char* dex_path, uid_t uid, const char* pkgname, const char* ins
                      join_fds(context_input_fds), swap_fd.get(), instruction_set, compiler_filter,
                      debuggable, boot_complete, for_restore, target_sdk_version,
                      enable_hidden_api_checks, generate_compact_dex, use_jitzygote_image,
                      compilation_reason);
                      background_job_compile, compilation_reason);

    bool cancelled = false;
    pid_t pid = dexopt_status_->check_cancellation_and_fork(&cancelled);
+17 −4
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ void RunDex2Oat::Initialize(const UniqueFile& output_oat,
                            bool enable_hidden_api_checks,
                            bool generate_compact_dex,
                            bool use_jitzygote,
                            bool background_job_compile,
                            const char* compilation_reason) {
    PrepareBootImageFlags(use_jitzygote);

@@ -92,7 +93,8 @@ void RunDex2Oat::Initialize(const UniqueFile& output_oat,
                               debuggable, target_sdk_version, enable_hidden_api_checks,
                               generate_compact_dex, compilation_reason);

    PrepareCompilerRuntimeAndPerfConfigFlags(post_bootcomplete, for_restore);
    PrepareCompilerRuntimeAndPerfConfigFlags(post_bootcomplete, for_restore,
                                             background_job_compile);

    const std::string dex2oat_flags = GetProperty("dalvik.vm.dex2oat-flags", "");
    std::vector<std::string> dex2oat_flags_args = SplitBySpaces(dex2oat_flags);
@@ -296,7 +298,8 @@ void RunDex2Oat::PrepareCompilerConfigFlags(const UniqueFile& input_vdex,
}

void RunDex2Oat::PrepareCompilerRuntimeAndPerfConfigFlags(bool post_bootcomplete,
                                                          bool for_restore) {
                                                          bool for_restore,
                                                          bool background_job_compile) {
    // CPU set
    {
        std::string cpu_set_format = "--cpu-set=%s";
@@ -306,7 +309,12 @@ void RunDex2Oat::PrepareCompilerRuntimeAndPerfConfigFlags(bool post_bootcomplete
                           "dalvik.vm.restore-dex2oat-cpu-set",
                           "dalvik.vm.dex2oat-cpu-set",
                           cpu_set_format)
                   : MapPropertyToArg("dalvik.vm.dex2oat-cpu-set", cpu_set_format))
                   : (background_job_compile
                      ? MapPropertyToArgWithBackup(
                              "dalvik.vm.background-dex2oat-cpu-set",
                              "dalvik.vm.dex2oat-cpu-set",
                              cpu_set_format)
                      : MapPropertyToArg("dalvik.vm.dex2oat-cpu-set", cpu_set_format)))
                : MapPropertyToArg("dalvik.vm.boot-dex2oat-cpu-set", cpu_set_format);
        AddArg(dex2oat_cpu_set_arg);
    }
@@ -320,7 +328,12 @@ void RunDex2Oat::PrepareCompilerRuntimeAndPerfConfigFlags(bool post_bootcomplete
                           "dalvik.vm.restore-dex2oat-threads",
                           "dalvik.vm.dex2oat-threads",
                           threads_format)
                   : MapPropertyToArg("dalvik.vm.dex2oat-threads", threads_format))
                   : (background_job_compile
                      ? MapPropertyToArgWithBackup(
                              "dalvik.vm.background-dex2oat-threads",
                              "dalvik.vm.dex2oat-threads",
                              threads_format)
                      : MapPropertyToArg("dalvik.vm.dex2oat-threads", threads_format)))
                : MapPropertyToArg("dalvik.vm.boot-dex2oat-threads", threads_format);
        AddArg(dex2oat_threads_arg);
    }
+4 −1
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ class RunDex2Oat {
                    bool enable_hidden_api_checks,
                    bool generate_compact_dex,
                    bool use_jitzygote,
                    bool background_job_compile,
                    const char* compilation_reason);

    void Exec(int exit_code);
@@ -76,7 +77,9 @@ class RunDex2Oat {
                                    bool enable_hidden_api_checks,
                                    bool generate_compact_dex,
                                    const char* compilation_reason);
    void PrepareCompilerRuntimeAndPerfConfigFlags(bool post_bootcomplete, bool for_restore);
    void PrepareCompilerRuntimeAndPerfConfigFlags(bool post_bootcomplete,
                                                  bool for_restore,
                                                  bool background_job_compile);

    virtual std::string GetProperty(const std::string& key, const std::string& default_value);
    virtual bool GetBoolProperty(const std::string& key, bool default_value);
+50 −0
Original line number Diff line number Diff line
@@ -115,6 +115,7 @@ class RunDex2OatTest : public testing::Test {
        bool enable_hidden_api_checks = false;
        bool generate_compact_dex = true;
        bool use_jitzygote = false;
        bool background_job_compile = false;
        const char* compilation_reason = nullptr;
    };

@@ -259,6 +260,7 @@ class RunDex2OatTest : public testing::Test {
                          args->enable_hidden_api_checks,
                          args->generate_compact_dex,
                          args->use_jitzygote,
                          args->background_job_compile,
                          args->compilation_reason);
        runner.Exec(/*exit_code=*/ 0);
    }
@@ -375,6 +377,30 @@ TEST_F(RunDex2OatTest, CpuSetPostBootCompleteNotForRestore) {
    VerifyExpectedFlags();
}

TEST_F(RunDex2OatTest, CpuSetPostBootCompleteBackground) {
    setSystemProperty("dalvik.vm.background-dex2oat-cpu-set", "1,3");
    setSystemProperty("dalvik.vm.dex2oat-cpu-set", "1,2");
    auto args = RunDex2OatArgs::MakeDefaultTestArgs();
    args->post_bootcomplete = true;
    args->background_job_compile = true;
    CallRunDex2Oat(std::move(args));

    SetExpectedFlagUsed("--cpu-set", "=1,3");
    VerifyExpectedFlags();
}

TEST_F(RunDex2OatTest, CpuSetPostBootCompleteBackground_Backup) {
    setSystemProperty("dalvik.vm.background-dex2oat-cpu-set", "");
    setSystemProperty("dalvik.vm.dex2oat-cpu-set", "1,2");
    auto args = RunDex2OatArgs::MakeDefaultTestArgs();
    args->post_bootcomplete = true;
    args->background_job_compile = true;
    CallRunDex2Oat(std::move(args));

    SetExpectedFlagUsed("--cpu-set", "=1,2");
    VerifyExpectedFlags();
}

TEST_F(RunDex2OatTest, CpuSetPostBootCompleteForRestore) {
    setSystemProperty("dalvik.vm.restore-dex2oat-cpu-set", "1,2");
    setSystemProperty("dalvik.vm.dex2oat-cpu-set", "2,3");
@@ -481,6 +507,30 @@ TEST_F(RunDex2OatTest, ThreadsPostBootCompleteNotForRestore) {
    VerifyExpectedFlags();
}

TEST_F(RunDex2OatTest, ThreadsPostBootCompleteBackground) {
    setSystemProperty("dalvik.vm.background-dex2oat-threads", "2");
    setSystemProperty("dalvik.vm.dex2oat-threads", "3");
    auto args = RunDex2OatArgs::MakeDefaultTestArgs();
    args->post_bootcomplete = true;
    args->background_job_compile = true;
    CallRunDex2Oat(std::move(args));

    SetExpectedFlagUsed("-j", "2");
    VerifyExpectedFlags();
}

TEST_F(RunDex2OatTest, ThreadsPostBootCompleteBackground_Backup) {
    setSystemProperty("dalvik.vm.background-dex2oat-threads", "");
    setSystemProperty("dalvik.vm.dex2oat-threads", "3");
    auto args = RunDex2OatArgs::MakeDefaultTestArgs();
    args->post_bootcomplete = true;
    args->background_job_compile = true;
    CallRunDex2Oat(std::move(args));

    SetExpectedFlagUsed("-j", "3");
    VerifyExpectedFlags();
}

TEST_F(RunDex2OatTest, ThreadsPostBootCompleteForRestore) {
    setSystemProperty("dalvik.vm.restore-dex2oat-threads", "4");
    setSystemProperty("dalvik.vm.dex2oat-threads", "5");