Merge "Handle the boot profile format when analyzing profiles" am: dbd5b4325b

Change-Id: I6657784360dc5c5b16f6c25c773d3e8fab761c67
This commit is contained in:
Treehugger Robot 2020-05-04 23:59:29 +00:00 committed by Automerger Merge Worker
commit b9fe624f3d

View file

@ -318,6 +318,16 @@ static const char* kJitZygoteImage =
// Phenotype property name for enabling profiling the boot class path.
static const char* PROFILE_BOOT_CLASS_PATH = "profilebootclasspath";
static bool IsBootClassPathProfilingEnable() {
std::string profile_boot_class_path = GetProperty("dalvik.vm.profilebootclasspath", "");
profile_boot_class_path =
server_configurable_flags::GetServerConfigurableFlag(
RUNTIME_NATIVE_BOOT_NAMESPACE,
PROFILE_BOOT_CLASS_PATH,
/*default_value=*/ profile_boot_class_path);
return profile_boot_class_path == "true";
}
class RunDex2Oat : public ExecVHelper {
public:
RunDex2Oat(int zip_fd,
@ -450,14 +460,7 @@ class RunDex2Oat : public ExecVHelper {
ENABLE_JITZYGOTE_IMAGE,
/*default_value=*/ "");
std::string profile_boot_class_path = GetProperty("dalvik.vm.profilebootclasspath", "");
profile_boot_class_path =
server_configurable_flags::GetServerConfigurableFlag(
RUNTIME_NATIVE_BOOT_NAMESPACE,
PROFILE_BOOT_CLASS_PATH,
/*default_value=*/ profile_boot_class_path);
if (use_jitzygote_image == "true" || profile_boot_class_path == "true") {
if (use_jitzygote_image == "true" || IsBootClassPathProfilingEnable()) {
boot_image = StringPrintf("--boot-image=%s", kJitZygoteImage);
} else {
boot_image = MapPropertyToArg("dalvik.vm.boot-image", "--boot-image=%s");
@ -896,7 +899,15 @@ static bool analyze_profiles(uid_t uid, const std::string& package_name,
}
RunProfman profman_merge;
profman_merge.SetupMerge(profiles_fd, reference_profile_fd);
const std::vector<unique_fd>& apk_fds = std::vector<unique_fd>();
const std::vector<std::string>& dex_locations = std::vector<std::string>();
profman_merge.SetupMerge(
profiles_fd,
reference_profile_fd,
apk_fds,
dex_locations,
/* for_snapshot= */ false,
IsBootClassPathProfilingEnable());
pid_t pid = fork();
if (pid == 0) {
/* child -- drop privileges before continuing */
@ -2810,7 +2821,13 @@ static bool create_app_profile_snapshot(int32_t app_id,
}
RunProfman args;
args.SetupMerge(profiles_fd, snapshot_fd, apk_fds, dex_locations, /*for_snapshot=*/true);
// This is specifically a snapshot for an app, so don't use boot image profiles.
args.SetupMerge(profiles_fd,
snapshot_fd,
apk_fds,
dex_locations,
/* for_snapshot= */ true,
/* for_boot_image= */ false);
pid_t pid = fork();
if (pid == 0) {
/* child -- drop privileges before continuing */