diff --git a/resource-tuner/core/TargetRegistry.cpp b/resource-tuner/core/TargetRegistry.cpp index 2f2149866..ced6124ae 100644 --- a/resource-tuner/core/TargetRegistry.cpp +++ b/resource-tuner/core/TargetRegistry.cpp @@ -1,9 +1,13 @@ // Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. // SPDX-License-Identifier: BSD-3-Clause-Clear + #include "TargetRegistry.h" #include "UrmSettings.h" #include "RestuneDBus.h" +#define JOURNALD_CONF "/etc/systemd/journald.conf" +#define JOURNALD_URM_CONF "/etc/urm/journald_modified_conf" + // Create all the CGroups specified via InitConfig.yaml during the init phase. static ErrCode createCGroup(CGroupConfigInfo* cGroupConfig) { if(cGroupConfig == nullptr) return RC_BAD_ARG; @@ -249,7 +253,16 @@ void TargetRegistry::getClusterIdBasedMapping() { } std::shared_ptr TargetRegistry::targetRegistryInstance = nullptr; -TargetRegistry::TargetRegistry() {} +TargetRegistry::TargetRegistry() { + // Check for older modifications to the journald conf + if(AuxRoutines::fileExists(JOURNALD_URM_CONF)) { + // Restore + std::ifstream src(JOURNALD_URM_CONF, std::ios::binary); + std::ofstream dst(JOURNALD_CONF, std::ios::binary); + dst << src.rdbuf(); + AuxRoutines::deleteFile(JOURNALD_URM_CONF); + } +} void TargetRegistry::addClusterMapping(const std::string& logicalIDString, const std::string& physicalIDString) { try { @@ -559,7 +572,7 @@ ErrCode TargetRegistry::addIrqAffine(std::vector& values, return RC_SUCCESS; } -ErrCode TargetRegistry::addLogLimit(std::vector& values) { +ErrCode TargetRegistry::addLogLimit(std::vector& values) { if(values.size() < 1) { return RC_INVALID_VALUE; } @@ -569,7 +582,11 @@ ErrCode TargetRegistry::addLogLimit(std::vector& values) { return RC_SUCCESS; } - const std::string journaldConfFile = "/etc/systemd/journald.conf"; + // Save the original content + std::ifstream src(JOURNALD_CONF, std::ios::binary); + std::ofstream dst(JOURNALD_URM_CONF, std::ios::binary); + dst << src.rdbuf(); + const std::unordered_map configOptions = { {"RuntimeMaxUse", "20M"}, {"RuntimeMaxFileSize", "128K"}, @@ -580,7 +597,7 @@ ErrCode TargetRegistry::addLogLimit(std::vector& values) { {"ForwardToSyslog", "no"} }; - std::ifstream confInStream(journaldConfFile); + std::ifstream confInStream(JOURNALD_CONF); if(!confInStream) { return RC_SUCCESS; } @@ -629,7 +646,7 @@ ErrCode TargetRegistry::addLogLimit(std::vector& values) { } } - std::ofstream confOutStream(journaldConfFile); + std::ofstream confOutStream(JOURNALD_CONF); confOutStream << newContent.str(); confOutStream.close();