Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 22 additions & 5 deletions resource-tuner/core/TargetRegistry.cpp
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -249,7 +253,16 @@ void TargetRegistry::getClusterIdBasedMapping() {
}

std::shared_ptr<TargetRegistry> 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 {
Expand Down Expand Up @@ -559,7 +572,7 @@ ErrCode TargetRegistry::addIrqAffine(std::vector<std::string>& values,
return RC_SUCCESS;
}

ErrCode TargetRegistry::addLogLimit(std::vector<std::string>& values) {
ErrCode TargetRegistry::addLogLimit(std::vector<std::string>& values) {
if(values.size() < 1) {
return RC_INVALID_VALUE;
}
Expand All @@ -569,7 +582,11 @@ ErrCode TargetRegistry::addLogLimit(std::vector<std::string>& 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<std::string, std::string> configOptions = {
{"RuntimeMaxUse", "20M"},
{"RuntimeMaxFileSize", "128K"},
Expand All @@ -580,7 +597,7 @@ ErrCode TargetRegistry::addLogLimit(std::vector<std::string>& values) {
{"ForwardToSyslog", "no"}
};

std::ifstream confInStream(journaldConfFile);
std::ifstream confInStream(JOURNALD_CONF);
if(!confInStream) {
return RC_SUCCESS;
}
Expand Down Expand Up @@ -629,7 +646,7 @@ ErrCode TargetRegistry::addLogLimit(std::vector<std::string>& values) {
}
}

std::ofstream confOutStream(journaldConfFile);
std::ofstream confOutStream(JOURNALD_CONF);
confOutStream << newContent.str();
confOutStream.close();

Expand Down
Loading