sculpt: add trace_logger as optional launcher

This patch adds the trace-logger utility to the default set of packages
along with an optional launcher. With this change, only two steps are
needed to use Genode's tracing mechanism with Sculpt:

- Add 'trace_logger' to the 'launcher:' list of the .sculpt file

- Either manually select the 'trace_logger' from the '+' menu,
  or add the following entry to the deploy configuration:

    <start name="trace_logger"/>

By default, the trace logger is configured to trace all threads
executed in the runtime subsystem and to print a report every 10
seconds. This default policy can be refined in the launcher's <config>
node. Note that the trace logger does not respond to configuration
changes during runtime. Changes come into effect not before restarting
the component.

Issue #4448
This commit is contained in:
Norman Feske 2022-03-15 11:50:05 +01:00 committed by Christian Helmuth
parent 3394f97f86
commit bb26a986e6
6 changed files with 51 additions and 0 deletions

View File

@ -20,4 +20,5 @@ _/pkg/qt5_textedit
_/pkg/mesa_gpu-cpu
_/pkg/usb_webcam
_/pkg/test-capture
_/pkg/trace_logger
_/pkg/mixer

View File

@ -0,0 +1,23 @@
<launcher pkg="trace_logger">
<route>
<service name="TRACE"> <parent/> </service>
</route>
<config verbose="yes"
session_ram="90M"
session_arg_buffer="1M"
session_parent_levels="3"
period_sec="10"
default_policy="null"
default_buffer="4K">
<policy label_prefix="init -> runtime -> "/>
<!-- uncomment to trace the drivers subsystem
<policy label_prefix="init -> drivers -> "/>
-->
</config>
</launcher>

View File

@ -0,0 +1 @@
Utility for capturing trace events to the log

View File

@ -0,0 +1,2 @@
_/src/trace_logger
_/src/trace_policy

View File

@ -0,0 +1 @@
2022-03-11 46f96fe1863748eb451475e3efa4f0d5394b4f4c

View File

@ -0,0 +1,23 @@
<runtime ram="100M" caps="1000" binary="trace_logger">
<requires> <trace/> <timer/> </requires>
<content>
<rom label="trace_logger"/>
<rom label="null"/>
<rom label="rpc_name"/>
</content>
<config verbose="no"
session_ram="90M"
session_arg_buffer="1M"
session_parent_levels="1"
period_sec="10"
default_policy="null"
default_buffer="8K">
<policy label_prefix="init -> runtime -> "/>
</config>
</runtime>