Commit Graph

403 Commits

Author SHA1 Message Date
Martin Stein
ff28a89000 noux: make RM replay less noisy in release mode
As the message "replay: missing dataspace info for ..." occurs multiple times
on every fork, it slows down at least noux_tool_chain_auto with hw_arndale
about 10 seconds. To avoid this overhead in release mode I've turned it into a
warning rather than an error.

ref #1096
2014-04-07 17:01:21 +02:00
Alexander Boettcher
819e54f860 run: change resolution of virtualbox_auto_disk
We changed the test hardware and the new one does not support 1400x1050 anymore.
Choose some conservative resolution since this is anyway a auto test nobody
is really looking at the screen output.
2014-04-07 11:56:45 +02:00
Alexander Boettcher
ced0f71f13 noux: enable 64bit builds for foc and nova
Fixes #816
2014-03-31 20:59:25 +02:00
Christian Helmuth
83cc8da588 vbox: fix format warning (size_t) in autotest 2014-03-14 13:17:37 +01:00
Martin Stein
a99a33e93e noux: enhance stack of all noux programs
This is done because we ran into a stack overflow while compiling
Genodes core/main.cc with GCC in Noux.

fix #1075
2014-03-14 13:17:36 +01:00
Alexander Boettcher
c3b161e814 run: enable virtualbox auto test for nightly runs
With #1090 fixed the test should succeed now.
2014-03-14 13:17:36 +01:00
Sebastian Sumpf
65dac52574 vbox: Increase quota for rump_fs in auto test 2014-03-14 13:17:35 +01:00
Christian Helmuth
f02e9001e8 vbox: fix dependencies of generated files
Express that the target binary files depend on the generated files not
the source files. The old expression seems to confuse Make, which then
logs a bogus error like the following

      COMPILE  Runtime/common/err/errmsg.o
  genode-x86-g++: error: Runtime/common/err/errmsg.cpp: No such file or directory
  genode-x86-g++: fatal error: no input files
  compilation terminated.
  make[2]: *** [Runtime/common/err/errmsg.o] Error 1
  make[1]: *** [virtualbox-runtime.lib] Error 2
2014-03-06 14:53:33 +01:00
Christian Helmuth
6c1d1363ff vbox: requires installation of yasm 2014-03-06 14:53:32 +01:00
Christian Prochaska
e142d0d2e8 gdb_monitor: improve the backtrace test
With this patch, functions which execute blocking syscalls on Fiasco.OC
are built with frame pointers to get a correct backtrace shown in GDB.

Also, the backtrace test for a thread currently executing a syscall now
traces the  'Genode::Thread_base::join()' function instead of
'Genode::sleep_forever()', because base-nova has a custom implementation
of 'Genode::sleep_forever()' with a different backtrace than on Fiasco.OC.

Fixes #1061.
2014-03-04 11:36:29 +01:00
Christian Prochaska
6a1d07de86 Arora: increase RAM quota for 'testnit'
This patch increases the RAM quota for 'testnit' in the Arora nitpicker
plugin demo.

Fixes #1074.
2014-02-28 10:11:51 +01:00
Christian Prochaska
43c73eff13 Adapt GDB commands to ldso changes
Issue #1042.
2014-02-28 10:11:12 +01:00
Alexander Boettcher
961bd41b05 vbox: auto test for win7 @ vbox/Genode/Nova
Issue #1055
2014-02-28 10:11:12 +01:00
Alexander Boettcher
d8c2a908b8 ports: add VirtualBox as VMM for Genode
Fixes #1055
2014-02-28 10:11:12 +01:00
Alexander Boettcher
dd95266235 nova: add feature to yield a thread
used by virtualbox intensively
2014-02-28 10:11:11 +01:00
Christian Prochaska
14a636f9a7 Noux: fix GDB arguments in run script
Noux generates 'argv[0]' for the initial child automatically (in contrast
to the 'config_args' library), so the first argument stated in the
configuration should not be the GDB program name.

Fixes #1062.
2014-02-28 10:11:08 +01:00
Christian Prochaska
46374a6932 gdb_monitor: show correct register state on FOC
On Genode/Fiasco.OC, when an unresolved page fault occurs, only the IP and
SP registers are valid in the thread state read by GDB monitor. This was
not taken into account so far and the other (possibly outdated) register
values got reported to the client, too.

With this patch, only IP and SP get reported to the client in the page
fault case.

Fixes #1063.
2014-02-28 10:11:08 +01:00
Christian Prochaska
21f031371f Noux: fix build process of more 'e2fsprogs' programs
Fixes #1065.
2014-02-25 14:58:09 +01:00
Christian Prochaska
53c4aa6d22 Noux: fix build process of the 'fixincl' program
The 'LIBS' environment variable needs to get used to build the 'fixincl'
program correctly.

Fixes #1066.
2014-02-25 14:58:09 +01:00
Christian Prochaska
1ac034d16d Noux: fix the 'xxd' program
Fixes #1064.
2014-02-25 14:58:08 +01:00
Martin Stein
020edd3032 noux_fork: raise MAX_COUNT to 1000
To see the output of both, forker and fork, we must give the test
more time on OKL4 as fork seems to be not so fast with this kernel.

ref #989
2014-02-25 14:58:05 +01:00
Martin Stein
0b64328944 base: setup thread object for main thread in CRT0
For a main thread a thread object is created by the CRT0 before _main gets
called so that _main can already run in a generic environment that, e.g.,
catches stack overflows as a page-fault instead of corrupting the BSS.
Additionally dynamic programs have only one CRT0 - the one of the LDSO -
which does the initialization for both LDSO and program.

ref #989
2014-02-25 14:58:05 +01:00
Martin Stein
ba8e61653f noux & 64bit: fix printf format-warning
ref #989
2014-02-25 14:58:05 +01:00
Martin Stein
cfd4310684 libc_noux & 64bit: fix printf format-warning
Normally for intptr_t the printf format PRIiPTR should be used. As Genode
printf doens't support this format we cast it to long int (intptr_t is int
for 32 bit and long int for 64 bit).

ref #989
2014-02-25 14:58:05 +01:00
Martin Stein
c2af646ad8 noux: Noux_connection::context_area_rm_session()
This enables a forked process to update the capability of its
context area RM session.

ref #989
2014-02-25 14:58:04 +01:00
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
Christian Prochaska
27ff408985 Noux: POSIX signal improvements
- 'kill()' syscall added
- 'wait()' gets unblocked when a signal occurs
- syscalls can get called from a signal handler without corrupting the 'sysio' object
- the child's exit status gets correctly reported to 'wait()'
- SIGCHLD gets ignored by default
- pending signals survive 'execve()'

Fixes #1035.
2014-01-30 10:05:44 +01:00
Christian Helmuth
8ed2e150a4 gdb_monitor: inhibit .gdbinit in unattended test 2014-01-27 18:54:09 +01:00
Norman Feske
8c8d53777f Generalization of nitpicker's graphics backend
This patch re-arranges nitpicker's graphics backend in a more modular
and expandable way. Generalized versions of the 'Canvas',
'Chunky_canvas', and 'Pixel_*' classes have been moved to
'os/include/util/' and 'os/include/os'. The only remaining parts that
are specific to nitpicker's needs are a few drawing functions, each
located in a distinct header at 'os/include/nitpicker_gfx/'.
2014-01-27 18:54:06 +01:00
Norman Feske
0063f217ca Move nitpicker_gfx/color.h to util/color.h 2014-01-27 18:54:06 +01:00
Norman Feske
e809192b97 Remove nitpicker_gfx/miscmath.h 2014-01-27 18:54:06 +01:00
Norman Feske
35bfc34db5 Move nitpicker_gfx/geometry.h to util/geometry.h
This patch makes nitpicker's geometry utilities available for the use
by other programs. Thereby, the 'Point', 'Area', and 'Rect' classes
have become templates that take the coordinate type and distance type
as arguments.
2014-01-27 18:54:06 +01:00
Christian Prochaska
4f9be09643 Arora: add gallium.lib.so boot module
QtGui depends on gallium now, so gallium.lib.so needs to be available as
boot module.

Fixes #992.
2014-01-27 18:54:05 +01:00
Christian Prochaska
cca2dbc400 Arora: fix the demo launchpad configuration
This patch adapts the launchpad configuration of the Nitpicker plugin demo
to the current launchpad config syntax.

Fixes #1018.
2014-01-27 18:54:05 +01:00
Josef Söntgen
6e15d966c7 noux: add e2fsprogs-v1.42.9 package
Fixes #1029.
2014-01-17 14:04:29 +01:00
Josef Söntgen
c4c43ffc9d noux: add block device file system
Access to a block session is provided by using the block file system.
By specifying the label, each block session request can be routed to
the proper block session provider:

! <fstab>
! 	...
! 	<dir name="dev">
! 		<block name="blkdev0" label="block_session_0" />
! 	</dir>
! 	...
! </fstab>

In addition to this file system, support for the DIOCGMEDIASIZE ioctl
request was added. This request is used by FreeBSD and therefore our
libc to query the size of the block device in bytes.

Fixes #1010.
2014-01-17 14:04:29 +01:00
Alexander Boettcher
041dd2a133 netperf: use Genode specific alarm timer
Fixes #1021
2014-01-17 14:04:29 +01:00
Norman Feske
6a19b30795 Vancouver: Clarify license headers
All source codes of the glue code between Vancouver and Genode that were
based on existing GPL code had already stated that Genode Labs is not
the sole owner of the code. To make the distinction between the Genode
OS framework and the glue code more clear, this patch removes the text
"is part of the Genode OS framework" from the glue code.
2014-01-16 18:34:06 +01:00
Josef Söntgen
f71e38702f noux: add SYSCALL_SYNC
File systems using the File_system_session interface can now be
synchronized by using this syscall. This is needed for file system
that maintain an internal cache, which should be flushed.

Fixes #1008.
2013-12-20 15:21:08 +01:00
Stefan Kalkowski
b10b9e20a2 block: support for block number >32 bit (Fix #968) 2013-12-19 11:34:04 +01:00
Alexander Boettcher
05ad5a6ad4 noux: adjust timeouts for diverse platforms
Issue #996
2013-12-09 10:49:16 +01:00
Martin Stein
9c698ab6c1 noux_tool_chain_auto & hw_arndale: adjust timeouts
As hw_arndale is a bit slower than foc_arm and spawn_serial timing
calculation has changed in general, timeouts of noux_tool_chain_auto test
must be adjusted.

fix #996
2013-12-03 18:05:10 +01:00
Alexander Boettcher
9b456fb3be run: spelling fix 2013-12-03 10:40:23 +01:00
Christian Helmuth
c05a80a139 netperf: move check for qemu to netperf.inc 2013-12-03 10:40:22 +01:00
Martin Stein
8514eecc90 noux_tool_chain.inc: remove trailing whitespaces
ref #964
2013-12-03 08:33:26 +01:00
Martin Stein
51db6a6056 noux_terminal_fs: remove bad bracket in run script
ref #964
2013-12-03 08:33:25 +01:00
Martin Stein
a2e6fdd922 noux_shell_script: platform driver and usb input
Provide platform driver and USB input driver in run/noux_shell_script
if they are needed.

ref #964
2013-12-03 08:33:25 +01:00
Martin Stein
1eeb68bf56 hw: adjust gcc package to makeinfo version 5
Makeinfo versions greater 5 treat an @itemx that isn't preceeded by an @item
not as warning anymore but as error. The GCC version 4.7.2 that is used by
noux currently triggers this error multiple times. This commit adds a patch
to 'make prepare PKG="gcc"' that avoids the use of @itemx without preceeding
@item. As GCC versions greater than 4.8 should fix this problem by themselves
this should be seen as temporary quick fix.

ref #964
2013-12-03 08:33:24 +01:00
Alexander Boettcher
aca62c7180 noux: enable some arm platforms running tool_chain
ref #964
2013-12-03 08:33:24 +01:00
Martin Stein
fd003f0e00 noux_fork: use pause() instead of endless loop
At least with base-hw, the endless loop at the end of the fork
parent slows execution of the fork child dramatically. Using
libc function pause() is a cleaner solution anyways.

ref #964
2013-12-03 08:33:24 +01:00