genode/ports/run
Josef Söntgen bdec3dd668 os: initial version of trace_fs
The trace_fs server provides access to a Trace_session by using a
File_system_session as frontend.

Each trace subject is represented by a directory ('thread_name.subject')
that contains specific files ('active', 'cleanup', 'enable', 'events',
'buffer_size' and 'policy'), which are used to control the tracing
process of the thread as well as storing the content of its trace
buffer.

The tracing of a thread is only activated if there is a valid policy
installed and the intend to trace the subject was made clear by writing
'1' to the 'enable' file.

The tracing of a thread may be deactived by writing a '0' to the
'enable' file.

A policy may be changed by overwriting the currently used one. In this
case the old policy is replaced by the new policy and is automatically
utilize.

Writing a value to the 'buffer_size' file changes the appointed size of
the trace buffer. This value is only evaluted by reactivating the
tracing process.

The content of the trace buffer may be accessed by reading from the
'events' file. Throughout all tracing session new trace events are
appended to this file.

Nodes of UNTRACED subjects are kept as long as they do not change their
tracing state to DEAD. In this case all nodes are removed from the
file system. Subjects that were traced before and are now UNTRACED will
only be removed by writing '1' to the 'cleanup' file - even if they
are DEAD by now.

To use the trace_fs a config similar to the following may be used:

! <start name="trace_fs">
! 	<resource name="RAM" quantum="128M"/>
! 	<provides><service name="File_system"/></provides>
! 	<config>
! 		<policy label="noux -> trace" interval="1000" subject_limit="512" trace_quota="64M" />
! 	</config>
! </start>

'interval' sets the periode in which the Trace_session is polled. The
time is given in milliseconds.
'subject_limit' speficies how many trace subject should by acquired at
most when the Trace_session is polled.
'trace_quota' is the amount of quota the trace_fs should use for the
Trace_session connection. The remaing amount of RAM quota will be used
for the actual nodes of the file system and the 'policy' as well as the
'events' files.
In addiition there are 'buffer_size' and 'buffer_size_limit' that define
the initial and the upper limit of the size of a trace buffer.
Tracing of parent processes or rather threads may be enabled by setting
'parent_levels' to a value greater than '0' (though this attribute is
available, the trace session component within core still lacks support
for it).

A ready-to-use runscript can by found in 'ports/run/noux_trace_fs.run'.

Fixes #1049.
2014-02-25 14:58:02 +01:00
..
arora.run Arora: add gallium.lib.so boot module 2014-01-27 18:54:05 +01:00
debug_nitpicker.run Unify framebuffer driver binary names (fix #720) 2013-05-07 13:04:30 +02:00
dosbox.run ports: native version of DosBox 2013-11-14 19:54:14 +01:00
gdb_monitor_interactive.run GDB monitor: move GDB commands into separate file 2013-09-04 22:43:47 +02:00
gdb_monitor_target_config.run gdb_monitor: increase RAM quotas in run scripts 2013-03-11 16:39:51 +01:00
gdb_monitor.inc GDB monitor: move GDB commands into separate file 2013-09-04 22:43:47 +02:00
gdb_monitor.run gdb_monitor: inhibit .gdbinit in unattended test 2014-01-27 18:54:09 +01:00
genode_org.run usb_drv: Use GPIO driver on PandaBoard 2013-11-26 14:32:06 +01:00
libc_noux.run Update example configurations 2013-02-19 14:45:55 +01:00
lighttpd.run Native version of lighttpd 2012-08-22 09:51:22 +02:00
netperf_lwip_bridge.run netperf: Add separate run scripts for lwip/lxip 2013-11-26 14:32:06 +01:00
netperf_lwip_usb30.run netperf: move check for qemu to netperf.inc 2013-12-03 10:40:22 +01:00
netperf_lwip.inc netperf: Add separate run scripts for lwip/lxip 2013-11-26 14:32:06 +01:00
netperf_lwip.run netperf: move check for qemu to netperf.inc 2013-12-03 10:40:22 +01:00
netperf_lxip_bridge.run netperf: Add separate run scripts for lwip/lxip 2013-11-26 14:32:06 +01:00
netperf_lxip_usb30.run netperf: move check for qemu to netperf.inc 2013-12-03 10:40:22 +01:00
netperf_lxip.inc netperf: Add separate run scripts for lwip/lxip 2013-11-26 14:32:06 +01:00
netperf_lxip.run netperf: move check for qemu to netperf.inc 2013-12-03 10:40:22 +01:00
netperf.inc netperf: move check for qemu to netperf.inc 2013-12-03 10:40:22 +01:00
noux_bash.run usb_drv: Use GPIO driver on PandaBoard 2013-11-26 14:32:06 +01:00
noux_fork.run noux: add verbose config parameter 2013-08-22 15:13:12 +02:00
noux_gdb_dynamic.run cli_monitor: add a 'gdb' command 2013-10-29 18:08:29 +01:00
noux_gdb.inc cli_monitor: add a 'gdb' command 2013-10-29 18:08:29 +01:00
noux_gdb.run usb_drv: Use GPIO driver on PandaBoard 2013-11-26 14:32:06 +01:00
noux_net_lighttpd.run Unify framebuffer driver binary names (fix #720) 2013-05-07 13:04:30 +02:00
noux_net_lynx_interactive.run Unify framebuffer driver binary names (fix #720) 2013-05-07 13:04:30 +02:00
noux_net_netcat.run usb_drv: Use GPIO driver on PandaBoard 2013-11-26 14:32:06 +01:00
noux_net_openssh_interactive.run Unify framebuffer driver binary names (fix #720) 2013-05-07 13:04:30 +02:00
noux_shell_script.run noux_shell_script: platform driver and usb input 2013-12-03 08:33:25 +01:00
noux_signals.run Noux: add basic 'Ctrl-C' support 2013-10-22 08:00:16 +02:00
noux_terminal_fs.run noux_terminal_fs: remove bad bracket in run script 2013-12-03 08:33:25 +01:00
noux_tool_chain_auto.run noux: adjust timeouts for diverse platforms 2013-12-09 10:49:16 +01:00
noux_tool_chain_foc.run run: extend noux to run automatically natively 2013-05-10 11:16:09 +02:00
noux_tool_chain_nova.run run: extend noux to run automatically natively 2013-05-10 11:16:09 +02:00
noux_tool_chain.inc noux_tool_chain.inc: remove trailing whitespaces 2013-12-03 08:33:26 +01:00
noux_trace_fs.run os: initial version of trace_fs 2014-02-25 14:58:02 +01:00
noux_vim.run Unify framebuffer driver binary names (fix #720) 2013-05-07 13:04:30 +02:00
noux.run Use log_terminal in noux.run script 2013-11-12 17:59:29 +01:00
seoul-auto.run seoul: support headless mode 2013-08-22 11:33:10 +02:00
seoul-disc.run seoul: support headless mode 2013-08-22 11:33:10 +02:00
seoul-fancy.run seoul: support headless mode 2013-08-22 11:33:10 +02:00
seoul-kernelbuild.run run: spelling fix 2013-12-03 10:40:23 +01:00
seoul-net.run seoul: support headless mode 2013-08-22 11:33:10 +02:00
seoul.inc seoul: support to run VM outside VMM's PD 2013-11-25 12:12:31 +01:00
vmm_utils.run ports: common utilities for building VMMs on NOVA 2013-11-25 12:12:31 +01:00