Alexander Boettcher
816b4e0479
nova: fix thread in page fault and getting paused
...
If a thread caused a page fault and later on get be paused, then it left
the recall handler immediately due to the pause call instead of staying
in this handler.
Add some (complicated) state machine to detect and handle the case. Still not
waterproof, especially server threads may never get recalled if they never get
a IPC from the outside.
Fixes #478
2013-10-16 09:26:09 +02:00
Alexander Boettcher
2c983f3c89
nova: remove native_cap method from cpu_session
...
Remove native_cap method which caused the cpu_session implementation of the
gdb server to fail.
Issue #478
2013-10-16 09:26:09 +02:00
Alexander Boettcher
dd2e006309
nova: request native ec cap via pager
...
Prerequisite to get rid of the base-nova special native_cap method in
cpu_session.
Vancouver/Seoul bootstrap code gets also much simpler.
Issue #478
2013-10-16 09:26:09 +02:00
Alexander Boettcher
d3bcafc4c6
nova: support requesting multiple event portals
...
Enables us to request the exception handler portals at once instead each
separately.
Issue #478
2013-10-16 09:26:09 +02:00
Alexander Boettcher
c426bac8bb
nova: create sm of each thread in pager
...
Mainly simplification of the code and getting rid of reserved (Genode) special
cap selectors in the syscall-generic.h file.
Issue #478
2013-10-16 09:26:09 +02:00
Norman Feske
a903049a1a
cli_monitor: Resource-balancing support
...
This patch introduces new commands for dynamically balancing RAM between
subsystems. The 'status' command prints a table with the RAM status of
each subsystem. The 'ram' command changes the quota or a quota limit of
a given subsystem. The quota limit can be defined to allow the on-demand
expansion of the quota. Finally, the 'yield' command can be used to
instruct a subsystem to yield a specified amount of resources.
For trying out the new commands, a so-called 'ram_eater' example has
been added to the 'terminal_mux.run' scenario. This program simulates a
subsystem with a growing demand for resources, yet with the capability
to yield resources when instructed by the parent (i.e., cli_monitor).
Besides implementing the new features, the patch splits the
implementation of 'cli_monitor' into multiple files.
2013-10-16 09:26:09 +02:00
Norman Feske
cbdad73dd7
terminal_mux.run: LOG output of terminal_log
...
This patch tweaks the route of 'terminal_log' such that a LOG session
request of this program is directed to the parent rather to itself.
2013-10-16 09:26:08 +02:00
Norman Feske
baf6eab2dc
terminal_mux: Add 'j' and 'k' keybindings
2013-10-16 09:26:08 +02:00
Norman Feske
d78ba43f64
Test for yielding resources
2013-10-16 09:26:08 +02:00
Norman Feske
9cf677cb0a
os: Add resource balancing-support to 'Slave'
...
In order to be able to dynamically balance resources of slaves, we need
to provide an accessor to the slave's RAM session and a way to issue
yield requests.
2013-10-15 16:13:45 +02:00
Norman Feske
f80c0500af
Test for 'Parent::resource_request' interface
2013-10-15 16:13:45 +02:00
Norman Feske
094c5211fd
core: Fix off-by-one in quota check
...
The check was one byte too rigid. ;-)
2013-10-14 09:45:14 +02:00
Norman Feske
90aa4ef6b5
core: Don't account RAM metadata to RAM quota
...
The meta data for allocations should be accounted to the session quota
instead of the RAM accont managed by the session.
2013-10-14 09:45:14 +02:00
Norman Feske
61b94296b2
base: Use distinct error for ref_account mismatch
2013-10-14 09:45:14 +02:00
Norman Feske
5caed68fe4
init: Transfer slack memory to children on demand
2013-10-14 09:45:14 +02:00
Norman Feske
65c4246f95
base/env: Implementation of 'Expanding_parent'
2013-10-14 09:45:14 +02:00
Norman Feske
ae40cb545c
base: Unify 'Platform_env' across platforms
2013-10-05 12:44:36 +02:00
Norman Feske
93bd4d55f8
Implement resource-balancing in parent interface
2013-10-05 12:44:35 +02:00
Norman Feske
f65606f179
Add resource-balancing support to parent interface
...
This is just the interface. The implementation is still missing.
Issue #887
2013-10-05 12:44:35 +02:00
Norman Feske
5befab7f3d
Add 'String<SIZE>' buffer type to 'util/string.h'
...
The new 'String' buffer type is meant to replace the manually created
character buffers that are scattered throughout Genode. It plainly holds
a null-terminated string to be stored as a member variable (e.g., a
session label) or passed as RPC argument. It is not intended to become a
string API.
2013-10-05 12:44:35 +02:00
Stefan Kalkowski
339193a887
Linux: compile lx_hybrid_ctors test for correct ARCH
...
Fixes #900
2013-10-04 10:13:07 +02:00
Norman Feske
91de81a10a
hello_tutorial: add missing <config> snippets
...
Thanks to Rudolf Weber for reporting.
2013-09-29 12:23:22 +02:00
Stefan Kalkowski
24007564bf
l4lx: check for "bc" tool on prepare
2013-09-27 10:53:59 +02:00
Martin Stein
327cdfdf36
hw: always remove RM client on thread destruction
...
ref #589
2013-09-26 16:09:56 +02:00
Martin Stein
36111587be
hw: don't use assertions in Kernel::get_thread
...
ref #589
2013-09-26 16:09:56 +02:00
Martin Stein
e5ea660e2e
hw: enable to destruct thread after its RM client
...
ref #589
2013-09-26 16:09:55 +02:00
Martin Stein
d86bf3db64
hw: destruct protection domains
...
ref #589
2013-09-26 16:09:55 +02:00
Martin Stein
a4f52bec19
hw: enable direct unmap
...
ref #589
2013-09-26 16:09:55 +02:00
Martin Stein
4f4738427d
hw: release pagers from faulting threads
...
ref #589
2013-09-26 16:09:55 +02:00
Martin Stein
c3be0b417a
hw: fix bug in Kernel::Thread::crash
...
ref #589
2013-09-26 16:09:55 +02:00
Martin Stein
00f16be122
base: fix bug in Allocator_guard::free
...
ref #589
2013-09-26 15:58:05 +02:00
Martin Stein
a596fa56a6
hw: destruct scheduling contexts
...
ref #589
2013-09-26 15:58:05 +02:00
Martin Stein
52ec56c060
hw: destruct abstract interfaces of signal backend
...
ref #589
2013-09-26 15:58:05 +02:00
Martin Stein
611cd95eb3
hw: destruct IPC end-nodes
...
ref #589
2013-09-26 15:58:05 +02:00
Martin Stein
de87fa1b5c
hw: avoid address overflow in Tlb::remove_region()
...
ref #589
2013-09-26 15:58:05 +02:00
Martin Stein
909c2dbc95
hw: remove note feature from IPC framework
...
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
349262a655
hw: handle pagefaults via IPC request/reply
...
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
6d03292a1e
hw: destruct signal sessions
...
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
1571e09823
base: implement Object_pool::first_locked()
...
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
84c31a7ea1
hw: destruct signal receivers
...
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
e07781dc1c
base: destruct signal receiver platform specific
...
This is made for future signal framework in base-hw
wich needs a platform specific hook in the signal-
receiver destruction.
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
e33ea2a8b7
hw: completely release signal-context resources
...
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
2223e72c7f
hw: no assert checks by default, enable opt-in
...
fix #528
2013-09-26 15:58:04 +02:00
Martin Stein
3070af9194
hw: thread in extra header with asserts reviewed
...
ref #528
2013-09-26 15:58:04 +02:00
Martin Stein
1843f10c62
hw: PD in extra header with asserts reviewed
...
ref #528
2013-09-26 15:58:04 +02:00
Martin Stein
5f64411ad7
hw: add missing include in singleton header
...
ref #528
2013-09-26 15:58:04 +02:00
Martin Stein
48f831af3c
hw: signal receiver in extra header without assert
...
ref #528
2013-09-26 15:58:04 +02:00
Martin Stein
bf37159eb9
base: provide class Genode::Fifo_element
...
ref #528
2013-09-26 15:58:04 +02:00
Martin Stein
9826294e6c
hw: IPC node in extra header
...
ref #528
2013-09-26 15:58:03 +02:00
Martin Stein
01e8ee2752
hw: IRQ receiver in extra header & reviewed
...
ref #528
2013-09-26 15:58:03 +02:00