Skip to content

Commit 885496a

Browse files
author
sauka
committed
remove isolated_cpus option and cgroups management
1 parent 9867ad3 commit 885496a

File tree

12 files changed

+6
-348
lines changed

12 files changed

+6
-348
lines changed

apps/du/du.cpp

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include "apps/services/application_tracer.h"
1616
#include "apps/services/buffer_pool/buffer_pool_manager.h"
1717
#include "apps/services/cmdline/cmdline_command_dispatcher.h"
18-
#include "apps/services/core_isolation_manager.h"
1918
#include "apps/services/metrics/metrics_manager.h"
2019
#include "apps/services/metrics/metrics_notifier_proxy.h"
2120
#include "apps/services/remote_control/remote_server.h"
@@ -44,6 +43,7 @@
4443
#include "srsran/support/io/io_broker_factory.h"
4544
#include "srsran/support/signal_handling.h"
4645
#include "srsran/support/signal_observer.h"
46+
#include "srsran/support/sysinfo.h"
4747
#include "srsran/support/tracing/event_tracing.h"
4848
#include "srsran/support/versioning/build_info.h"
4949
#include "srsran/support/versioning/version.h"
@@ -199,9 +199,7 @@ int main(int argc, char** argv)
199199

200200
// Check the modified configuration.
201201
if (!validate_appconfig(du_cfg) ||
202-
!o_du_app_unit->on_configuration_validation((du_cfg.expert_execution_cfg.affinities.isolated_cpus)
203-
? du_cfg.expert_execution_cfg.affinities.isolated_cpus.value()
204-
: os_sched_affinity_bitmask::available_cpus())) {
202+
!o_du_app_unit->on_configuration_validation(os_sched_affinity_bitmask::available_cpus())) {
205203
report_error("Invalid configuration detected.\n");
206204
}
207205

@@ -236,13 +234,6 @@ int main(int argc, char** argv)
236234
app_tracer.enable_tracer(du_cfg.log_cfg.tracing_filename, du_logger);
237235
}
238236

239-
app_services::core_isolation_manager core_isolation_mngr;
240-
if (du_cfg.expert_execution_cfg.affinities.isolated_cpus) {
241-
if (!core_isolation_mngr.isolate_cores(*du_cfg.expert_execution_cfg.affinities.isolated_cpus)) {
242-
report_error("Failed to isolate specified CPUs");
243-
}
244-
}
245-
246237
#ifdef DPDK_FOUND
247238
std::unique_ptr<dpdk::dpdk_eal> eal;
248239
if (du_cfg.hal_config) {

apps/du/du_appconfig_yaml_writer.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,6 @@ static void fill_du_appconfig_expert_execution_section(YAML::Node node, const ex
3131
{
3232
YAML::Node affinities_node = node["affinities"];
3333

34-
if (config.affinities.isolated_cpus.has_value()) {
35-
affinities_node["isolated_cpus"] =
36-
fmt::format("{:,}", span<const size_t>(config.affinities.isolated_cpus.value().get_cpu_ids()));
37-
}
38-
3934
if (config.affinities.main_pool_cpu_cfg.mask.any()) {
4035
affinities_node["main_pool_cpus"] =
4136
fmt::format("{:,}", span<const size_t>(config.affinities.main_pool_cpu_cfg.mask.get_cpu_ids()));

apps/du_low/du_low.cpp

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "apps/services/application_message_banners.h"
1414
#include "apps/services/application_tracer.h"
1515
#include "apps/services/cmdline/cmdline_command_dispatcher.h"
16-
#include "apps/services/core_isolation_manager.h"
1716
#include "apps/services/metrics/metrics_manager.h"
1817
#include "apps/services/metrics/metrics_notifier_proxy.h"
1918
#include "apps/services/remote_control/remote_server.h"
@@ -32,6 +31,7 @@
3231
#include "srsran/support/io/io_broker_factory.h"
3332
#include "srsran/support/signal_handling.h"
3433
#include "srsran/support/signal_observer.h"
34+
#include "srsran/support/sysinfo.h"
3535
#include "srsran/support/versioning/build_info.h"
3636
#include "srsran/support/versioning/version.h"
3737
#include <atomic>
@@ -173,9 +173,7 @@ int main(int argc, char** argv)
173173

174174
// Check the modified configuration.
175175
if (!validate_du_low_appconfig(du_low_cfg) ||
176-
!o_du_app_unit->on_configuration_validation((du_low_cfg.expert_execution_cfg.affinities.isolated_cpus)
177-
? du_low_cfg.expert_execution_cfg.affinities.isolated_cpus.value()
178-
: os_sched_affinity_bitmask::available_cpus())) {
176+
!o_du_app_unit->on_configuration_validation(os_sched_affinity_bitmask::available_cpus())) {
179177
report_error("Invalid configuration detected.\n");
180178
}
181179

@@ -209,13 +207,6 @@ int main(int argc, char** argv)
209207
app_tracer.enable_tracer(du_low_cfg.log_cfg.tracing_filename, app_logger);
210208
}
211209

212-
app_services::core_isolation_manager core_isolation_mngr;
213-
if (du_low_cfg.expert_execution_cfg.affinities.isolated_cpus) {
214-
if (!core_isolation_mngr.isolate_cores(*du_low_cfg.expert_execution_cfg.affinities.isolated_cpus)) {
215-
report_error("Failed to isolate specified CPUs");
216-
}
217-
}
218-
219210
// Log CPU architecture.
220211
cpu_architecture_info::get().print_cpu_info(app_logger);
221212

apps/du_low/du_low_appconfig_yaml_writer.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,6 @@ static void fill_du_appconfig_expert_execution_section(YAML::Node node, const ex
2121
{
2222
YAML::Node affinities_node = node["affinities"];
2323

24-
if (config.affinities.isolated_cpus.has_value()) {
25-
affinities_node["isolated_cpus"] =
26-
fmt::format("{:,}", span<const size_t>(config.affinities.isolated_cpus.value().get_cpu_ids()));
27-
}
28-
2924
if (config.affinities.main_pool_cpu_cfg.mask.any()) {
3025
affinities_node["main_pool_cpus"] =
3126
fmt::format("{:,}", span<const size_t>(config.affinities.main_pool_cpu_cfg.mask.get_cpu_ids()));

apps/gnb/gnb.cpp

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#include "apps/services/buffer_pool/buffer_pool_manager.h"
1717
#include "apps/services/cmdline/cmdline_command_dispatcher.h"
1818
#include "apps/services/cmdline/stdout_metrics_command.h"
19-
#include "apps/services/core_isolation_manager.h"
2019
#include "apps/services/metrics/metrics_manager.h"
2120
#include "apps/services/metrics/metrics_notifier_proxy.h"
2221
#include "apps/services/remote_control/remote_server.h"
@@ -51,6 +50,7 @@
5150
#include "srsran/support/io/io_broker_factory.h"
5251
#include "srsran/support/signal_handling.h"
5352
#include "srsran/support/signal_observer.h"
53+
#include "srsran/support/sysinfo.h"
5454
#include "srsran/support/versioning/build_info.h"
5555
#include "srsran/support/versioning/version.h"
5656
#include <atomic>
@@ -270,9 +270,7 @@ int main(int argc, char** argv)
270270
fmt::println("NOTE: No JSON metrics will be generated as the remote server is disabled");
271271
}
272272

273-
auto available_cpu_mask = (gnb_cfg.expert_execution_cfg.affinities.isolated_cpus)
274-
? gnb_cfg.expert_execution_cfg.affinities.isolated_cpus.value()
275-
: os_sched_affinity_bitmask::available_cpus();
273+
auto available_cpu_mask = os_sched_affinity_bitmask::available_cpus();
276274
// Check the modified configuration.
277275
if (!validate_appconfig(gnb_cfg) || !o_cu_cp_app_unit->on_configuration_validation(available_cpu_mask) ||
278276
!o_cu_up_app_unit->on_configuration_validation(not gnb_cfg.log_cfg.tracing_filename.empty()) ||
@@ -315,13 +313,6 @@ int main(int argc, char** argv)
315313
app_tracer.enable_tracer(gnb_cfg.log_cfg.tracing_filename, gnb_logger);
316314
}
317315

318-
app_services::core_isolation_manager core_isolation_mngr;
319-
if (gnb_cfg.expert_execution_cfg.affinities.isolated_cpus) {
320-
if (!core_isolation_mngr.isolate_cores(*gnb_cfg.expert_execution_cfg.affinities.isolated_cpus)) {
321-
report_error("Failed to isolate specified CPUs");
322-
}
323-
}
324-
325316
#ifdef DPDK_FOUND
326317
std::unique_ptr<dpdk::dpdk_eal> eal;
327318
if (gnb_cfg.hal_config) {

apps/gnb/gnb_appconfig_yaml_writer.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,6 @@ static void fill_gnb_appconfig_expert_execution_section(YAML::Node node, const e
3030
{
3131
YAML::Node affinities_node = node["affinities"];
3232

33-
if (config.affinities.isolated_cpus.has_value()) {
34-
affinities_node["isolated_cpus"] =
35-
fmt::format("{:,}", span<const size_t>(config.affinities.isolated_cpus.value().get_cpu_ids()));
36-
}
37-
3833
if (config.affinities.main_pool_cpu_cfg.mask.any()) {
3934
affinities_node["main_pool_cpus"] =
4035
fmt::format("{:,}", span<const size_t>(config.affinities.main_pool_cpu_cfg.mask.get_cpu_ids()));

apps/services/core_isolation_manager.h

Lines changed: 0 additions & 44 deletions
This file was deleted.

apps/services/worker_manager/worker_manager_appconfig.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ namespace srsran {
1616

1717
/// CPU affinities configuration for the application.
1818
struct cpu_affinities_appconfig {
19-
/// CPUs isolation.
20-
std::optional<os_sched_affinity_bitmask> isolated_cpus;
2119
/// Main thread pool workers CPU affinity mask.
2220
os_sched_affinity_config main_pool_cpu_cfg = {sched_affinity_mask_types::main, {}, sched_affinity_mask_policy::mask};
2321
};

apps/services/worker_manager/worker_manager_cli11_schema.cpp

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,6 @@ static void configure_cli11_main_pool_threads_args(CLI::App& app, main_thread_po
3232

3333
static void configure_cli11_cpu_affinities_args(CLI::App& app, cpu_affinities_appconfig& config)
3434
{
35-
auto parsing_isolated_cpus_fcn = [](std::optional<os_sched_affinity_bitmask>& isolated_cpu_cfg,
36-
const std::string& value,
37-
const std::string& property_name) {
38-
isolated_cpu_cfg.emplace();
39-
parse_affinity_mask(*isolated_cpu_cfg, value, property_name);
40-
41-
if (isolated_cpu_cfg->all()) {
42-
report_error("Error in '{}' property: can not assign all available CPUs to the application", property_name);
43-
}
44-
};
45-
46-
add_option_function<std::string>(
47-
app,
48-
"--isolated_cpus",
49-
[&config, &parsing_isolated_cpus_fcn](const std::string& value) {
50-
parsing_isolated_cpus_fcn(config.isolated_cpus, value, "isolated_cpus");
51-
},
52-
"CPU cores isolated for application");
53-
5435
add_option_function<std::string>(
5536
app,
5637
"--main_pool_cpus",

include/srsran/support/sysinfo.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,4 @@ bool check_cpu_governor(srslog::basic_logger& logger);
2929
/// \return True if we were able to read the sysfs for the DRM KMS polling information.
3030
bool check_drm_kms_polling(srslog::basic_logger& logger);
3131

32-
/// \brief Configures cgroups.
33-
///
34-
/// \param[in] isol_cpus Set of CPUs to be isolated for the gNB app.
35-
/// \return True if we were able to configure cgroups through the sysfs.
36-
bool configure_cgroups(const os_sched_affinity_bitmask& isol_cpus);
37-
38-
/// \brief Removes cgroups created by the gNB app.
39-
void cleanup_cgroups();
40-
41-
/// \brief Check whether custom cgroups are configured in the system.
42-
///
43-
/// \return Optional string containing list of custom cgroup paths ('housekeeping' and/or 'isolated') configured in the
44-
/// system.
45-
std::optional<std::string> check_cgroups();
46-
4732
} // namespace srsran

0 commit comments

Comments
 (0)