mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-08 20:05:54 +00:00
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
This commit is contained in:
parent
12b89852e0
commit
f57da7e645
@ -35,13 +35,11 @@ struct Genode::Trace::Connection : Genode::Connection<Genode::Trace::Session>,
|
||||
*
|
||||
* \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<Session>(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())
|
||||
{ }
|
||||
|
||||
|
@ -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<Migrate> timer_handler { env.ep(), *this,
|
||||
&Migrate::check_traces };
|
||||
|
@ -8,7 +8,6 @@
|
||||
<config verbose="yes"
|
||||
session_ram="90M"
|
||||
session_arg_buffer="1M"
|
||||
session_parent_levels="3"
|
||||
period_sec="10"
|
||||
default_policy="null"
|
||||
default_buffer="4K">
|
||||
|
@ -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<Monitor> _timeout_handler { _env.ep(),
|
||||
*this,
|
||||
|
@ -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) {
|
||||
|
@ -47,7 +47,7 @@
|
||||
|
||||
<start name="trace_logger">
|
||||
<resource name="RAM" quantum="80M"/>
|
||||
<config verbose="yes" priority="no" sc_time="no" session_ram="10M" session_parent_levels="1" session_arg_buffer="64K" period_sec="3" default_policy="null" default_buffer="1K">
|
||||
<config verbose="yes" priority="no" sc_time="no" session_ram="10M" session_arg_buffer="64K" period_sec="3" default_policy="null" default_buffer="1K">
|
||||
|
||||
<policy label_prefix="cpu_burner" thread="ep"/>
|
||||
|
||||
|
@ -11,7 +11,6 @@
|
||||
<config verbose="no"
|
||||
session_ram="90M"
|
||||
session_arg_buffer="1M"
|
||||
session_parent_levels="1"
|
||||
period_sec="10"
|
||||
default_policy="null"
|
||||
default_buffer="8K">
|
||||
|
@ -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::Connection> _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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
@ -41,7 +41,6 @@
|
||||
<xs:attribute name="sc_time" type="Boolean" />
|
||||
<xs:attribute name="session_arg_buffer" type="Number_of_bytes" />
|
||||
<xs:attribute name="session_ram" type="Number_of_bytes" />
|
||||
<xs:attribute name="session_parent_levels" type="xs:nonNegativeInteger" />
|
||||
<xs:attribute name="default_policy" type="Trace_policy_name" />
|
||||
<xs:attribute name="period_sec" type="Seconds" />
|
||||
<xs:attribute name="default_buffer" type="Number_of_bytes" />
|
||||
|
@ -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"))
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -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 };
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 };
|
||||
|
Loading…
x
Reference in New Issue
Block a user