From f57da7e6452605e9a7ca8b9146f4c5f12d0792d2 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Mon, 4 Dec 2023 14:22:49 +0100 Subject: [PATCH] trace: remove parent_levels session argument The argument was originally designated to restrict the reach of the trace monitor but the idea remained unimplemented. It is now superseded by the use of the trace-session label as trace-subject filter. Issue #847 --- repos/base/include/trace_session/connection.h | 6 ++-- repos/base/src/test/migrate/main.cc | 3 +- repos/gems/sculpt/launcher/trace_logger | 1 - repos/gems/src/app/trace_recorder/monitor.h | 3 +- repos/gems/src/lib/vfs/trace/vfs.cc | 2 +- .../os/recipes/pkg/test-trace_logger/runtime | 2 +- repos/os/recipes/pkg/trace_logger/runtime | 1 - repos/os/src/app/top/main.cc | 9 ++---- repos/os/src/app/trace_logger/README | 4 --- repos/os/src/app/trace_logger/config.xsd | 1 - repos/os/src/app/trace_logger/main.cc | 31 +++++++++---------- .../os/src/app/trace_subject_reporter/main.cc | 2 +- repos/os/src/server/cpu_balancer/trace.h | 2 +- repos/os/src/test/trace/main.cc | 6 ++-- 14 files changed, 27 insertions(+), 46 deletions(-) diff --git a/repos/base/include/trace_session/connection.h b/repos/base/include/trace_session/connection.h index 3306690aa7..18e5016c2f 100644 --- a/repos/base/include/trace_session/connection.h +++ b/repos/base/include/trace_session/connection.h @@ -35,13 +35,11 @@ struct Genode::Trace::Connection : Genode::Connection, * * \param ram_quota RAM donated for tracing purposes * \param arg_buffer_size session argument-buffer size - * \param parent_levels number of parent levels to trace */ - Connection(Env &env, size_t ram_quota, size_t arg_buffer_size, unsigned parent_levels) + Connection(Env &env, size_t ram_quota, size_t arg_buffer_size) : Genode::Connection(env, Label(), Ram_quota { 10*1024 + ram_quota }, - Args("arg_buffer_size=", arg_buffer_size, ", " - "parent_levels=", parent_levels)), + Args("arg_buffer_size=", arg_buffer_size)), Session_client(env.rm(), cap()) { } diff --git a/repos/base/src/test/migrate/main.cc b/repos/base/src/test/migrate/main.cc index 440c1e4c8b..e9879f0d5a 100644 --- a/repos/base/src/test/migrate/main.cc +++ b/repos/base/src/test/migrate/main.cc @@ -59,8 +59,7 @@ struct Migrate Timer::Connection timer { env }; Migrate_thread thread { env }; Trace::Connection trace { env, 15 * 4096 /* RAM quota */, - 11 * 4096 /* ARG_BUFFER RAM quota */, - 0 /* parent levels */ }; + 11 * 4096 /* ARG_BUFFER RAM quota */ }; Signal_handler timer_handler { env.ep(), *this, &Migrate::check_traces }; diff --git a/repos/gems/sculpt/launcher/trace_logger b/repos/gems/sculpt/launcher/trace_logger index 50ca3405a2..e80836aa81 100644 --- a/repos/gems/sculpt/launcher/trace_logger +++ b/repos/gems/sculpt/launcher/trace_logger @@ -8,7 +8,6 @@ diff --git a/repos/gems/src/app/trace_recorder/monitor.h b/repos/gems/src/app/trace_recorder/monitor.h index 64b5511bff..0fe4904c37 100644 --- a/repos/gems/src/app/trace_recorder/monitor.h +++ b/repos/gems/src/app/trace_recorder/monitor.h @@ -114,8 +114,7 @@ class Trace_recorder::Monitor Timer::Connection _timer { _env }; Trace::Connection _trace { _env, TRACE_SESSION_RAM, - TRACE_SESSION_ARG_BUFFER, - 0 }; + TRACE_SESSION_ARG_BUFFER }; Signal_handler _timeout_handler { _env.ep(), *this, diff --git a/repos/gems/src/lib/vfs/trace/vfs.cc b/repos/gems/src/lib/vfs/trace/vfs.cc index 8f5abb9a5c..bf3acee1b0 100644 --- a/repos/gems/src/lib/vfs/trace/vfs.cc +++ b/repos/gems/src/lib/vfs/trace/vfs.cc @@ -383,7 +383,7 @@ struct Vfs_trace::Local_factory : File_system_factory } Local_factory(Vfs::Env &env, Xml_node config) - : _env(env), _trace(env.env(), _config_session_ram(config), 512*1024, 0) + : _env(env), _trace(env.env(), _config_session_ram(config), 512*1024) { _trace.for_each_subject_info([&] (Trace::Subject_id const id, Trace::Subject_info const &info) { diff --git a/repos/os/recipes/pkg/test-trace_logger/runtime b/repos/os/recipes/pkg/test-trace_logger/runtime index 0eddfb62d3..c09782a4ef 100644 --- a/repos/os/recipes/pkg/test-trace_logger/runtime +++ b/repos/os/recipes/pkg/test-trace_logger/runtime @@ -47,7 +47,7 @@ - + diff --git a/repos/os/recipes/pkg/trace_logger/runtime b/repos/os/recipes/pkg/trace_logger/runtime index 7330daf6f2..3c05d99a2a 100644 --- a/repos/os/recipes/pkg/trace_logger/runtime +++ b/repos/os/recipes/pkg/trace_logger/runtime @@ -11,7 +11,6 @@ diff --git a/repos/os/src/app/top/main.cc b/repos/os/src/app/top/main.cc index ebdd3aae8b..ab8e46281b 100644 --- a/repos/os/src/app/top/main.cc +++ b/repos/os/src/app/top/main.cc @@ -282,17 +282,12 @@ struct App::Main { Env &_env; - enum { - PARENT_LEVELS = 0 - }; - size_t arg_buffer_ram { 12 * 4096 }; /* ~ 190 trace Subject_info objects */ size_t trace_ram_quota { arg_buffer_ram + 4 * 4096 }; Reconstructible _trace { _env, trace_ram_quota, - arg_buffer_ram, - PARENT_LEVELS }; + arg_buffer_ram }; static uint64_t _default_period_ms() { return 5000; } @@ -369,7 +364,7 @@ void App::Main::_handle_period() _trace_subject_registry.flush(*_trace, _heap); _trace.destruct(); - _trace.construct(_env, trace_ram_quota, arg_buffer_ram, PARENT_LEVELS); + _trace.construct(_env, trace_ram_quota, arg_buffer_ram); } diff --git a/repos/os/src/app/trace_logger/README b/repos/os/src/app/trace_logger/README index 1b1be7475b..601940fc4f 100644 --- a/repos/os/src/app/trace_logger/README +++ b/repos/os/src/app/trace_logger/README @@ -18,7 +18,6 @@ policy.label: ! sc_time="no" ! session_ram="10M" ! session_arg_buffer="4K" -! session_parent_levels="0" ! period_sec="5" ! default_policy="null" ! default_buffer="4K"> @@ -53,9 +52,6 @@ This is a short description of the tags and attributes: :config.session_arg_buffer: Optional. Size of the trace sessions argument buffer. -:config.session_parent_levels: - Optional. Number of parent levels to trace. - :config.period_sec: Optional. Length of processing/export interval in seconds. diff --git a/repos/os/src/app/trace_logger/config.xsd b/repos/os/src/app/trace_logger/config.xsd index 1ffd6718b2..6bf32caa93 100644 --- a/repos/os/src/app/trace_logger/config.xsd +++ b/repos/os/src/app/trace_logger/config.xsd @@ -41,7 +41,6 @@ - diff --git a/repos/os/src/app/trace_logger/main.cc b/repos/os/src/app/trace_logger/main.cc index 2815ced0e8..b32baefa1f 100644 --- a/repos/os/src/app/trace_logger/main.cc +++ b/repos/os/src/app/trace_logger/main.cc @@ -43,7 +43,6 @@ class Main { size_t session_ram; size_t session_arg_buffer; - unsigned session_parent_levels; bool verbose; bool prio; bool sc_time; @@ -57,8 +56,7 @@ class Main Trace::Connection _trace { _env, _config.session_ram, - _config.session_arg_buffer, - _config.session_parent_levels }; + _config.session_arg_buffer }; Timer::Connection _timer { _env }; @@ -231,20 +229,19 @@ class Main Main::Config Main::Config::from_xml(Xml_node const &config) { return { - .session_ram = config.attribute_value("session_ram", - Number_of_bytes(1024*1024)), - .session_arg_buffer = config.attribute_value("session_arg_buffer", - Number_of_bytes(1024*4)), - .session_parent_levels = config.attribute_value("session_parent_levels", 0u), - .verbose = config.attribute_value("verbose", false), - .prio = config.attribute_value("priority", false), - .sc_time = config.attribute_value("sc_time", false), - .period_us = Microseconds(config.attribute_value("period_sec", 5) - * 1'000'000), - .default_buf_sz = config.attribute_value("default_buffer", - Number_of_bytes(4*1024)), - .default_policy_name = config.attribute_value("default_policy", - Policy_name("null")) + .session_ram = config.attribute_value("session_ram", + Number_of_bytes(1024*1024)), + .session_arg_buffer = config.attribute_value("session_arg_buffer", + Number_of_bytes(1024*4)), + .verbose = config.attribute_value("verbose", false), + .prio = config.attribute_value("priority", false), + .sc_time = config.attribute_value("sc_time", false), + .period_us = Microseconds(config.attribute_value("period_sec", 5) + * 1'000'000), + .default_buf_sz = config.attribute_value("default_buffer", + Number_of_bytes(4*1024)), + .default_policy_name = config.attribute_value("default_policy", + Policy_name("null")) }; } diff --git a/repos/os/src/app/trace_subject_reporter/main.cc b/repos/os/src/app/trace_subject_reporter/main.cc index a8d4c1daf9..c3c314d3ea 100644 --- a/repos/os/src/app/trace_subject_reporter/main.cc +++ b/repos/os/src/app/trace_subject_reporter/main.cc @@ -156,7 +156,7 @@ struct App::Main { Env &_env; - Trace::Connection _trace { _env, 128*1024, 32*1024, 0 }; + Trace::Connection _trace { _env, 128*1024, 32*1024 }; Reporter _reporter { _env, "trace_subjects", "trace_subjects", 64*1024 }; diff --git a/repos/os/src/server/cpu_balancer/trace.h b/repos/os/src/server/cpu_balancer/trace.h index 500cedcd02..028295b06e 100644 --- a/repos/os/src/server/cpu_balancer/trace.h +++ b/repos/os/src/server/cpu_balancer/trace.h @@ -57,7 +57,7 @@ class Cpu::Trace _arg_quota += upgrade; _trace.destruct(); - _trace.construct(_env, _ram_quota, _arg_quota, 0 /* parent levels */); + _trace.construct(_env, _ram_quota, _arg_quota); /* * Explicitly re-trigger import of subjects. Otherwise diff --git a/repos/os/src/test/trace/main.cc b/repos/os/src/test/trace/main.cc index a098f61150..d7d036765f 100644 --- a/repos/os/src/test/trace/main.cc +++ b/repos/os/src/test/trace/main.cc @@ -146,7 +146,7 @@ struct Test_out_of_metadata try { Trace::Connection trace(env, sizeof(subject_ids) + 4096, - sizeof(subject_ids), 0); + sizeof(subject_ids)); /* we should never arrive here */ struct Unexpectedly_got_no_exception{}; @@ -168,7 +168,7 @@ struct Test_out_of_metadata Test_thread thread5 { env, "test-thread5" }; Trace::Connection trace(env, sizeof(subject_ids) + 5*4096, - sizeof(subject_ids), 0); + sizeof(subject_ids)); trace.subjects(subject_ids, MAX_SUBJECT_IDS); /* we should never arrive here */ @@ -187,7 +187,7 @@ struct Test_tracing { Env &env; Attached_rom_dataspace config { env, "config" }; - Trace::Connection trace { env, 1024*1024, 64*1024, 0 }; + Trace::Connection trace { env, 1024*1024, 64*1024 }; Timer::Connection timer { env }; Test_thread::Name thread_name { "test-thread" }; Test_thread thread { env, thread_name };