mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-19 07:38:28 +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:
@ -35,13 +35,11 @@ struct Genode::Trace::Connection : Genode::Connection<Genode::Trace::Session>,
|
|||||||
*
|
*
|
||||||
* \param ram_quota RAM donated for tracing purposes
|
* \param ram_quota RAM donated for tracing purposes
|
||||||
* \param arg_buffer_size session argument-buffer size
|
* \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 },
|
Genode::Connection<Session>(env, Label(), Ram_quota { 10*1024 + ram_quota },
|
||||||
Args("arg_buffer_size=", arg_buffer_size, ", "
|
Args("arg_buffer_size=", arg_buffer_size)),
|
||||||
"parent_levels=", parent_levels)),
|
|
||||||
Session_client(env.rm(), cap())
|
Session_client(env.rm(), cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
@ -59,8 +59,7 @@ struct Migrate
|
|||||||
Timer::Connection timer { env };
|
Timer::Connection timer { env };
|
||||||
Migrate_thread thread { env };
|
Migrate_thread thread { env };
|
||||||
Trace::Connection trace { env, 15 * 4096 /* RAM quota */,
|
Trace::Connection trace { env, 15 * 4096 /* RAM quota */,
|
||||||
11 * 4096 /* ARG_BUFFER RAM quota */,
|
11 * 4096 /* ARG_BUFFER RAM quota */ };
|
||||||
0 /* parent levels */ };
|
|
||||||
|
|
||||||
Signal_handler<Migrate> timer_handler { env.ep(), *this,
|
Signal_handler<Migrate> timer_handler { env.ep(), *this,
|
||||||
&Migrate::check_traces };
|
&Migrate::check_traces };
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
<config verbose="yes"
|
<config verbose="yes"
|
||||||
session_ram="90M"
|
session_ram="90M"
|
||||||
session_arg_buffer="1M"
|
session_arg_buffer="1M"
|
||||||
session_parent_levels="3"
|
|
||||||
period_sec="10"
|
period_sec="10"
|
||||||
default_policy="null"
|
default_policy="null"
|
||||||
default_buffer="4K">
|
default_buffer="4K">
|
||||||
|
@ -114,8 +114,7 @@ class Trace_recorder::Monitor
|
|||||||
Timer::Connection _timer { _env };
|
Timer::Connection _timer { _env };
|
||||||
Trace::Connection _trace { _env,
|
Trace::Connection _trace { _env,
|
||||||
TRACE_SESSION_RAM,
|
TRACE_SESSION_RAM,
|
||||||
TRACE_SESSION_ARG_BUFFER,
|
TRACE_SESSION_ARG_BUFFER };
|
||||||
0 };
|
|
||||||
|
|
||||||
Signal_handler<Monitor> _timeout_handler { _env.ep(),
|
Signal_handler<Monitor> _timeout_handler { _env.ep(),
|
||||||
*this,
|
*this,
|
||||||
|
@ -383,7 +383,7 @@ struct Vfs_trace::Local_factory : File_system_factory
|
|||||||
}
|
}
|
||||||
|
|
||||||
Local_factory(Vfs::Env &env, Xml_node config)
|
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.for_each_subject_info([&] (Trace::Subject_id const id,
|
||||||
Trace::Subject_info const &info) {
|
Trace::Subject_info const &info) {
|
||||||
|
@ -47,7 +47,7 @@
|
|||||||
|
|
||||||
<start name="trace_logger">
|
<start name="trace_logger">
|
||||||
<resource name="RAM" quantum="80M"/>
|
<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"/>
|
<policy label_prefix="cpu_burner" thread="ep"/>
|
||||||
|
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
<config verbose="no"
|
<config verbose="no"
|
||||||
session_ram="90M"
|
session_ram="90M"
|
||||||
session_arg_buffer="1M"
|
session_arg_buffer="1M"
|
||||||
session_parent_levels="1"
|
|
||||||
period_sec="10"
|
period_sec="10"
|
||||||
default_policy="null"
|
default_policy="null"
|
||||||
default_buffer="8K">
|
default_buffer="8K">
|
||||||
|
@ -282,17 +282,12 @@ struct App::Main
|
|||||||
{
|
{
|
||||||
Env &_env;
|
Env &_env;
|
||||||
|
|
||||||
enum {
|
|
||||||
PARENT_LEVELS = 0
|
|
||||||
};
|
|
||||||
|
|
||||||
size_t arg_buffer_ram { 12 * 4096 }; /* ~ 190 trace Subject_info objects */
|
size_t arg_buffer_ram { 12 * 4096 }; /* ~ 190 trace Subject_info objects */
|
||||||
size_t trace_ram_quota { arg_buffer_ram + 4 * 4096 };
|
size_t trace_ram_quota { arg_buffer_ram + 4 * 4096 };
|
||||||
|
|
||||||
Reconstructible<Trace::Connection> _trace { _env,
|
Reconstructible<Trace::Connection> _trace { _env,
|
||||||
trace_ram_quota,
|
trace_ram_quota,
|
||||||
arg_buffer_ram,
|
arg_buffer_ram };
|
||||||
PARENT_LEVELS };
|
|
||||||
|
|
||||||
static uint64_t _default_period_ms() { return 5000; }
|
static uint64_t _default_period_ms() { return 5000; }
|
||||||
|
|
||||||
@ -369,7 +364,7 @@ void App::Main::_handle_period()
|
|||||||
_trace_subject_registry.flush(*_trace, _heap);
|
_trace_subject_registry.flush(*_trace, _heap);
|
||||||
|
|
||||||
_trace.destruct();
|
_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"
|
! sc_time="no"
|
||||||
! session_ram="10M"
|
! session_ram="10M"
|
||||||
! session_arg_buffer="4K"
|
! session_arg_buffer="4K"
|
||||||
! session_parent_levels="0"
|
|
||||||
! period_sec="5"
|
! period_sec="5"
|
||||||
! default_policy="null"
|
! default_policy="null"
|
||||||
! default_buffer="4K">
|
! default_buffer="4K">
|
||||||
@ -53,9 +52,6 @@ This is a short description of the tags and attributes:
|
|||||||
:config.session_arg_buffer:
|
:config.session_arg_buffer:
|
||||||
Optional. Size of the trace sessions argument buffer.
|
Optional. Size of the trace sessions argument buffer.
|
||||||
|
|
||||||
:config.session_parent_levels:
|
|
||||||
Optional. Number of parent levels to trace.
|
|
||||||
|
|
||||||
:config.period_sec:
|
:config.period_sec:
|
||||||
Optional. Length of processing/export interval in seconds.
|
Optional. Length of processing/export interval in seconds.
|
||||||
|
|
||||||
|
@ -41,7 +41,6 @@
|
|||||||
<xs:attribute name="sc_time" type="Boolean" />
|
<xs:attribute name="sc_time" type="Boolean" />
|
||||||
<xs:attribute name="session_arg_buffer" type="Number_of_bytes" />
|
<xs:attribute name="session_arg_buffer" type="Number_of_bytes" />
|
||||||
<xs:attribute name="session_ram" 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="default_policy" type="Trace_policy_name" />
|
||||||
<xs:attribute name="period_sec" type="Seconds" />
|
<xs:attribute name="period_sec" type="Seconds" />
|
||||||
<xs:attribute name="default_buffer" type="Number_of_bytes" />
|
<xs:attribute name="default_buffer" type="Number_of_bytes" />
|
||||||
|
@ -43,7 +43,6 @@ class Main
|
|||||||
{
|
{
|
||||||
size_t session_ram;
|
size_t session_ram;
|
||||||
size_t session_arg_buffer;
|
size_t session_arg_buffer;
|
||||||
unsigned session_parent_levels;
|
|
||||||
bool verbose;
|
bool verbose;
|
||||||
bool prio;
|
bool prio;
|
||||||
bool sc_time;
|
bool sc_time;
|
||||||
@ -57,8 +56,7 @@ class Main
|
|||||||
|
|
||||||
Trace::Connection _trace { _env,
|
Trace::Connection _trace { _env,
|
||||||
_config.session_ram,
|
_config.session_ram,
|
||||||
_config.session_arg_buffer,
|
_config.session_arg_buffer };
|
||||||
_config.session_parent_levels };
|
|
||||||
|
|
||||||
Timer::Connection _timer { _env };
|
Timer::Connection _timer { _env };
|
||||||
|
|
||||||
@ -235,7 +233,6 @@ Main::Config Main::Config::from_xml(Xml_node const &config)
|
|||||||
Number_of_bytes(1024*1024)),
|
Number_of_bytes(1024*1024)),
|
||||||
.session_arg_buffer = config.attribute_value("session_arg_buffer",
|
.session_arg_buffer = config.attribute_value("session_arg_buffer",
|
||||||
Number_of_bytes(1024*4)),
|
Number_of_bytes(1024*4)),
|
||||||
.session_parent_levels = config.attribute_value("session_parent_levels", 0u),
|
|
||||||
.verbose = config.attribute_value("verbose", false),
|
.verbose = config.attribute_value("verbose", false),
|
||||||
.prio = config.attribute_value("priority", false),
|
.prio = config.attribute_value("priority", false),
|
||||||
.sc_time = config.attribute_value("sc_time", false),
|
.sc_time = config.attribute_value("sc_time", false),
|
||||||
|
@ -156,7 +156,7 @@ struct App::Main
|
|||||||
{
|
{
|
||||||
Env &_env;
|
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 };
|
Reporter _reporter { _env, "trace_subjects", "trace_subjects", 64*1024 };
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ class Cpu::Trace
|
|||||||
_arg_quota += upgrade;
|
_arg_quota += upgrade;
|
||||||
|
|
||||||
_trace.destruct();
|
_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
|
* Explicitly re-trigger import of subjects. Otherwise
|
||||||
|
@ -146,7 +146,7 @@ struct Test_out_of_metadata
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
Trace::Connection trace(env, sizeof(subject_ids) + 4096,
|
Trace::Connection trace(env, sizeof(subject_ids) + 4096,
|
||||||
sizeof(subject_ids), 0);
|
sizeof(subject_ids));
|
||||||
|
|
||||||
/* we should never arrive here */
|
/* we should never arrive here */
|
||||||
struct Unexpectedly_got_no_exception{};
|
struct Unexpectedly_got_no_exception{};
|
||||||
@ -168,7 +168,7 @@ struct Test_out_of_metadata
|
|||||||
Test_thread thread5 { env, "test-thread5" };
|
Test_thread thread5 { env, "test-thread5" };
|
||||||
|
|
||||||
Trace::Connection trace(env, sizeof(subject_ids) + 5*4096,
|
Trace::Connection trace(env, sizeof(subject_ids) + 5*4096,
|
||||||
sizeof(subject_ids), 0);
|
sizeof(subject_ids));
|
||||||
trace.subjects(subject_ids, MAX_SUBJECT_IDS);
|
trace.subjects(subject_ids, MAX_SUBJECT_IDS);
|
||||||
|
|
||||||
/* we should never arrive here */
|
/* we should never arrive here */
|
||||||
@ -187,7 +187,7 @@ struct Test_tracing
|
|||||||
{
|
{
|
||||||
Env &env;
|
Env &env;
|
||||||
Attached_rom_dataspace config { env, "config" };
|
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 };
|
Timer::Connection timer { env };
|
||||||
Test_thread::Name thread_name { "test-thread" };
|
Test_thread::Name thread_name { "test-thread" };
|
||||||
Test_thread thread { env, thread_name };
|
Test_thread thread { env, thread_name };
|
||||||
|
Reference in New Issue
Block a user