Loading libprocessgroup/cgroup_map.cpp +19 −15 Original line number Original line Diff line number Diff line Loading @@ -126,7 +126,8 @@ static bool ReadDescriptors(std::map<std::string, CgroupDescriptor>* descriptors return false; return false; } } Json::Value cgroups = root["Cgroups"]; if (root.isMember("Cgroups")) { const Json::Value& cgroups = root["Cgroups"]; for (Json::Value::ArrayIndex i = 0; i < cgroups.size(); ++i) { for (Json::Value::ArrayIndex i = 0; i < cgroups.size(); ++i) { std::string name = cgroups[i]["Controller"].asString(); std::string name = cgroups[i]["Controller"].asString(); descriptors->emplace(std::make_pair( descriptors->emplace(std::make_pair( Loading @@ -135,13 +136,16 @@ static bool ReadDescriptors(std::map<std::string, CgroupDescriptor>* descriptors std::strtoul(cgroups[i]["Mode"].asString().c_str(), 0, 8), std::strtoul(cgroups[i]["Mode"].asString().c_str(), 0, 8), cgroups[i]["UID"].asString(), cgroups[i]["GID"].asString()))); cgroups[i]["UID"].asString(), cgroups[i]["GID"].asString()))); } } } Json::Value cgroups2 = root["Cgroups2"]; if (root.isMember("Cgroups2")) { const Json::Value& cgroups2 = root["Cgroups2"]; descriptors->emplace(std::make_pair( descriptors->emplace(std::make_pair( CGROUPV2_CONTROLLER_NAME, CGROUPV2_CONTROLLER_NAME, CgroupDescriptor(2, CGROUPV2_CONTROLLER_NAME, cgroups2["Path"].asString(), CgroupDescriptor(2, CGROUPV2_CONTROLLER_NAME, cgroups2["Path"].asString(), std::strtoul(cgroups2["Mode"].asString().c_str(), 0, 8), std::strtoul(cgroups2["Mode"].asString().c_str(), 0, 8), cgroups2["UID"].asString(), cgroups2["GID"].asString()))); cgroups2["UID"].asString(), cgroups2["GID"].asString()))); } return true; return true; } } Loading rootdir/Android.mk +10 −0 Original line number Original line Diff line number Diff line Loading @@ -74,6 +74,16 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_ETC) include $(BUILD_PREBUILT) include $(BUILD_PREBUILT) ####################################### # cgroups.json for recovery include $(CLEAR_VARS) LOCAL_MODULE := cgroups.recovery.json LOCAL_SRC_FILES := $(LOCAL_MODULE) LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/etc LOCAL_MODULE_STEM := cgroups.json include $(BUILD_PREBUILT) ####################################### ####################################### # task_profiles.json # task_profiles.json include $(CLEAR_VARS) include $(CLEAR_VARS) Loading rootdir/cgroups.recovery.json 0 → 100644 +9 −0 Original line number Original line Diff line number Diff line { "Cgroups": [ { "Controller": "cpuacct", "Path": "/acct", "Mode": "0555" } ] } Loading
libprocessgroup/cgroup_map.cpp +19 −15 Original line number Original line Diff line number Diff line Loading @@ -126,7 +126,8 @@ static bool ReadDescriptors(std::map<std::string, CgroupDescriptor>* descriptors return false; return false; } } Json::Value cgroups = root["Cgroups"]; if (root.isMember("Cgroups")) { const Json::Value& cgroups = root["Cgroups"]; for (Json::Value::ArrayIndex i = 0; i < cgroups.size(); ++i) { for (Json::Value::ArrayIndex i = 0; i < cgroups.size(); ++i) { std::string name = cgroups[i]["Controller"].asString(); std::string name = cgroups[i]["Controller"].asString(); descriptors->emplace(std::make_pair( descriptors->emplace(std::make_pair( Loading @@ -135,13 +136,16 @@ static bool ReadDescriptors(std::map<std::string, CgroupDescriptor>* descriptors std::strtoul(cgroups[i]["Mode"].asString().c_str(), 0, 8), std::strtoul(cgroups[i]["Mode"].asString().c_str(), 0, 8), cgroups[i]["UID"].asString(), cgroups[i]["GID"].asString()))); cgroups[i]["UID"].asString(), cgroups[i]["GID"].asString()))); } } } Json::Value cgroups2 = root["Cgroups2"]; if (root.isMember("Cgroups2")) { const Json::Value& cgroups2 = root["Cgroups2"]; descriptors->emplace(std::make_pair( descriptors->emplace(std::make_pair( CGROUPV2_CONTROLLER_NAME, CGROUPV2_CONTROLLER_NAME, CgroupDescriptor(2, CGROUPV2_CONTROLLER_NAME, cgroups2["Path"].asString(), CgroupDescriptor(2, CGROUPV2_CONTROLLER_NAME, cgroups2["Path"].asString(), std::strtoul(cgroups2["Mode"].asString().c_str(), 0, 8), std::strtoul(cgroups2["Mode"].asString().c_str(), 0, 8), cgroups2["UID"].asString(), cgroups2["GID"].asString()))); cgroups2["UID"].asString(), cgroups2["GID"].asString()))); } return true; return true; } } Loading
rootdir/Android.mk +10 −0 Original line number Original line Diff line number Diff line Loading @@ -74,6 +74,16 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_ETC) include $(BUILD_PREBUILT) include $(BUILD_PREBUILT) ####################################### # cgroups.json for recovery include $(CLEAR_VARS) LOCAL_MODULE := cgroups.recovery.json LOCAL_SRC_FILES := $(LOCAL_MODULE) LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/etc LOCAL_MODULE_STEM := cgroups.json include $(BUILD_PREBUILT) ####################################### ####################################### # task_profiles.json # task_profiles.json include $(CLEAR_VARS) include $(CLEAR_VARS) Loading
rootdir/cgroups.recovery.json 0 → 100644 +9 −0 Original line number Original line Diff line number Diff line { "Cgroups": [ { "Controller": "cpuacct", "Path": "/acct", "Mode": "0555" } ] }