Commit Graph

353 Commits

Author SHA1 Message Date
Adrian-Ken Rueegsegger
d1b4fb1dff vbox: Simplify Muen guest interupt handling
Drop lock prefix since there is no concurrent access from other CPUs.
2017-05-31 13:16:22 +02:00
Adrian-Ken Rueegsegger
1db8694fd0 vbox: Sync hw_x86_64_muen subject state with Muen SK
VM-exit interruption info was dropped and Vbox only needs guest CR3
value for guest-physical memory translation but does not actually change
it since the VM is running in unrestricted guest mode.
2017-05-31 13:16:21 +02:00
Sebastian Sumpf
496671e523 gcc: RISC-V 6.3.0
issue #2423
2017-05-31 13:16:20 +02:00
Christian Prochaska
a507928cde qt5: fix deprecated warnings
Fixes #2427
2017-05-31 13:16:19 +02:00
Alexander Boettcher
b7da62cd55 vbox4/5: remove printf 2017-05-31 13:16:19 +02:00
Christian Prochaska
040d0c9e42 arora: fix Nitpicker plugin demo
Fixes #2425
2017-05-31 13:16:18 +02:00
Christian Prochaska
85919d29e2 qt5: update to version 5.6.2
Issue #2424
2017-05-31 13:16:18 +02:00
Norman Feske
ae3664f4a0 noux: include noux.mk via select_from_repositories
This enables noux packages to be built via the depot tools.
2017-05-31 13:16:14 +02:00
Norman Feske
601e0a8950 noux: avoid using deprecated APIs 2017-05-31 13:16:14 +02:00
Norman Feske
0167d5af50 Integrate core's RAM service into the PD service
Fixes #2407
2017-05-31 13:16:14 +02:00
Alexander Boettcher
dc566b7d52 vbox5: allocate memory in larger pieces
to avoid lot of capabilities created for each 2M allocation otherwise

Issue #2398
2017-05-31 13:16:11 +02:00
Stefan Kalkowski
10e2e223cd foc: remove obsolete features (ref #2405)
Removes the following Fiasco.OC specific features:
* GDB extensions for Fiasco.OC
* i.MX53 support for Fiasco.OC
* Kernel debugger terminal driver
* Obsolete interface Native_pd
* Obsolete function of interface Native_cpu
2017-05-31 13:16:08 +02:00
Alexander Boettcher
6d8bfb677e vbox5: support more memory for VMs (4GB++)
Issue #2338
2017-05-31 13:16:08 +02:00
Norman Feske
4d442bca30 Streamline exception types
This patch reduces the number of exception types by facilitating
globally defined exceptions for common usage patterns shared by most
services. In particular, RPC functions that demand a session-resource
upgrade not longer reflect this condition via a session-specific
exception but via the 'Out_of_ram' or 'Out_of_caps' types.

Furthermore, the 'Parent::Service_denied', 'Parent::Unavailable',
'Root::Invalid_args', 'Root::Unavailable', 'Service::Invalid_args',
'Service::Unavailable', and 'Local_service::Factory::Denied' types have
been replaced by the single 'Service_denied' exception type defined in
'session/session.h'.

This consolidation eases the error handling (there are fewer exceptions
to handle), alleviates the need to convert exceptions along the
session-creation call chain, and avoids possible aliasing problems
(catching the wrong type with the same name but living in a different
scope).
2017-05-31 13:16:07 +02:00
Norman Feske
1f4f119b1e Capability quota accounting and trading
This patch mirrors the accounting and trading scheme that Genode employs
for physical memory to the accounting of capability allocations.

Capability quotas must now be explicitly assigned to subsystems by
specifying a 'caps=<amount>' attribute to init's start nodes.
Analogously to RAM quotas, cap quotas can be traded between clients and
servers as part of the session protocol. The capability budget of each
component is maintained by the component's corresponding PD session at
core.

At the current stage, the accounting is applied to RPC capabilities,
signal-context capabilities, and dataspace capabilities. Capabilities
that are dynamically allocated via core's CPU and TRACE service are not
yet covered. Also, the capabilities allocated by resource multiplexers
outside of core (like nitpicker) must be accounted by the respective
servers, which is not covered yet.

If a component runs out of capabilities, core's PD service prints a
warning to the log. To observe the consumption of capabilities per
component in detail, the PD service is equipped with a diagnostic
mode, which can be enabled via the 'diag' attribute in the target
node of init's routing rules. E.g., the following route enables the
diagnostic mode for the PD session of the "timer" component:

  <default-route>
    <service name="PD" unscoped_label="timer">
      <parent diag="yes"/>
    </service>
    ...
  </default-route>

For subsystems based on a sub-init instance, init can be configured
to report the capability-quota information of its subsystems by
adding the attribute 'child_caps="yes"' to init's '<report>'
config node. Init's own capability quota can be reported by adding
the attribute 'init_caps="yes"'.

Fixes #2398
2017-05-31 13:16:06 +02:00
Norman Feske
6609aafb05 Replace Quota_exceeded by Insufficient_ram_quota
This patch replaces the 'Parent::Quota_exceeded',
'Service::Quota_exceeded', and 'Root::Quota_exceeded' exceptions
by the single 'Insufficient_ram_quota' exception type.

Furthermore, the 'Parent' interface distinguished now between
'Out_of_ram' (the child's RAM is exhausted) from
'Insufficient_ram_quota' (the child's RAM donation does not suffice to
establish the session).

This eliminates ambiguities and removes the need to convert exception
types along the path of the session creation.

Issue #2398
2017-05-31 13:16:05 +02:00
Norman Feske
843dd179d7 base: remove int return types from 'Ram_session'
This patch replaces the existing C-style error codes with C++
exceptions.

Fixes #895
2017-05-31 13:16:04 +02:00
Norman Feske
58f44d39c5 base: use 'Ram_quota' in 'Ram_session' args
This patch replaces the former use of size_t with the use of the
'Ram_quota' type to improve type safety (in particular to avoid
accidentally mixing up RAM quotas with cap quotas).

Issue #2398
2017-05-31 13:16:04 +02:00
Norman Feske
ff68d77c7d base: new 'Ram_allocator' interface
The 'Ram_allocator' interface contains the subset of the RAM session
interface that is needed to satisfy the needs of the 'Heap' and
'Sliced_heap'. Its small size makes it ideal for intercepting memory
allocations as done by the new 'Constrained_ram_allocator' wrapper
class, which is meant to replace the existing 'base/allocator_guard.h'
and 'os/ram_session_guard.h'.

Issue #2398
2017-05-31 13:16:04 +02:00
Alexander Boettcher
106a0db664 vbox5: update to 5.1.22
Issue #2338
2017-05-31 13:16:02 +02:00
Alexander Boettcher
b403bd9d3e vbox5: fix memory allocation by VMM
This is a fixup of c782966 "vbox5: track memory allocation by VMM".

Issue #2338
2017-05-31 13:16:00 +02:00
Alexander Boettcher
1a18c6b727 vbox4/5: enable key/value store for guest addition
required for enable vbox 5 guest additions, which otherwise deny to work

Issue #2338
2017-05-31 13:16:00 +02:00
Alexander Boettcher
0d4f4f70d2 vbox5: enable audio support
Issue #2338
2017-05-31 13:15:59 +02:00
Alexander Boettcher
d7f0cb5463 vbox5: use gip thread also for timer watchdog
causes the rem timer callback pending check to run more often (every 1 ms
instead 10 ms). This is essential to met the timeout requirements of the
audio backend, which must be checked&run every 5ms.
2017-05-31 13:15:59 +02:00
Alexander Boettcher
800f9d1e44 vbox5: enable xhci model
Issue #2338
2017-05-31 13:15:59 +02:00
Alexander Boettcher
d8f60a8ea1 vbox: increase initial static memory buffer
due to changes in #1987 pthread/malloc the initial allocations are done
via malloc
2017-05-31 13:15:55 +02:00
Christian Prochaska
d0a53781b9 gdb: fix compile error with GCC 6
Fixes #2387
2017-05-31 13:15:51 +02:00
Christian Prochaska
d1bd39cebb openssh: add '--without-stackprotect' configure option
The configure ckeck for the stack protection feature succeeds with GCC 6,
even though the required runtime functions are missing.

Issue #2386
2017-05-31 13:15:51 +02:00
Christian Prochaska
58f2088d3e gcc: update to version 6.3.0
Issue #2372
2017-05-31 13:15:49 +02:00
Christian Prochaska
9f9271783e binutils: update to version 2.28
Fixes #2401
Issue #2372
2017-05-31 13:15:49 +02:00
Christian Prochaska
8903179537 tool_chain: use port mechanism
Fixes #2340
2017-03-27 12:35:10 +02:00
Christian Helmuth
cb43e04691 ldso: defer execution of static constructors
Ldso now does not automatically execute static constructors of the
binary and shared libraries the binary depends on. If static
construction is required (e.g., if a shared library with constructor is
used or a compilation unit contains global statics) the component needs
to execute the constructors explicitly in Component::construct() via
Genode::Env::exec_static_constructors().

In the case of libc components this is done by the libc startup code
(i.e., the Component::construct() implementation in the libc).

The loading of shared objects at runtime is not affected by this change
and constructors of those objects are executed immediately.

Fixes #2332
2017-03-24 16:20:04 +01:00
Alexander Boettcher
a19662abc7 vbox5: update to 5.1.18
Issue #2338
2017-03-24 16:20:00 +01:00
Alexander Boettcher
e4aea2efeb vbox5: enable SMP setups
We use the use old IOAPIC implementation, which works for us much better than
the new one.

Issue #2338
2017-03-24 16:19:59 +01:00
Alexander Boettcher
c782966aea vbox5: track memory allocation by VMM
- avoids memory leakage, especially during VM re-starts

Issue #2338
2017-03-24 16:19:59 +01:00
Alexander Boettcher
4f8a497bbf vbox5: update to 5.1.14
- use more upstream hm code
- add call to memory check as done in vbox4
- add in principle all vbox devices and drivers
- avoid null pointer during VM startup (patch reported to vbox-devel list)
- avoid endless loop in usb root hub

Issue #2338
2017-03-24 16:19:59 +01:00
Alexander Boettcher
5ebd8ae02e vbox5: unified build dir adjustments
Issue #2338
2017-03-24 16:19:58 +01:00
Alexander Boettcher
a5c70244bf vbox4/5: fix tr TSS_BUSY_FLAG handling
Fixes #2337
2017-03-24 16:19:58 +01:00
Norman Feske
b3e5357cf1 Adaptation to init refactoring
Since init no longer provides public headers, we have to adjust the
existing users of this headers. The 'init/child_config.h' is used only
by GDB monitor. So the patch moves the header there as an interim fix.
The 'init/child_policy.h' is still used by a few components, so we have
to keep a trimmed-down version of it for now.
2017-03-24 16:19:56 +01:00
Josef Söntgen
a34fb617a7 ffat: remove deprecated env usage
Issue #2310.
2017-03-24 16:19:53 +01:00
Christian Prochaska
3ac3236a28 Noux: 'empty' ROM service for initial ROMs
The initial ROMs (program and linker) are already attached to the region
map of a forked process and don't need to be obtained again from an
external ROM service when the 'Child' class asks for them. For the program
image, the local Noux ROM service already returned an invalid dataspace
capability, but not for the linker.

Instead of adding another 'magic' ROM name for the local ROM service,
this commit implements an 'empty' ROM service, which returns an
invalid dataspace for the initial ROMs.

Fixes #2272
2017-03-15 13:20:12 +01:00
Christian Prochaska
a1f195f7c0 dosbox: require x86 platform
Fixes #2327
2017-03-15 13:13:23 +01:00
Christian Prochaska
25bda02981 lighttpd: improve port check
Fixes #2323
2017-03-15 12:32:28 +01:00
Christian Prochaska
01e9bec5b0 Arora: fix port check
Fixes #2321
2017-03-15 12:32:28 +01:00
Alexander Boettcher
0a1839e3e2 vbox: ever set hint about host graphic resolution
Otherwise it may happend that the Guest tries to set the last stored
resolution from another run, which maybe is too large.

Up to now, everthing is fine, beside the fact that output changes are not
visible - which is odd and one things the VM came not up.

Issue #2306
2017-03-15 12:32:25 +01:00
Alexander Boettcher
e99eed3c8e vbox: show guest additions version
to detect easiler that something may be wrong. The guest addition version
should match the version we have ported.

Issue #2306
2017-03-15 12:32:24 +01:00
Alexander Boettcher
af3c238ce1 vbox: avoid null access in input handling
that happened during early bootup.

The signal about input events may arrive before keyboard and mouse is set
(due wait_and_dispatch_one_signal called from a started pthread and ep still
 not done with the initialisation)

Issue #2306
2017-03-15 12:32:24 +01:00
Christian Prochaska
ca2871e2e4 nova: use 'Native_cpu' component for thread initialization
Pass the thread type and exception base to core with a 'Native_cpu'
component instead of enhancing the 'Thread_state' class.

Fixes #2298
2017-03-15 12:24:42 +01:00
Christian Helmuth
8adaeeb8da Remove port of the DASH shell
It seems the download site vanished. Also, the utility remained unused
since years now.
2017-02-28 13:00:44 +01:00
Christian Prochaska
e7958d999d gdb_monitor: kernel-agnostic build support
Fixes #2292
2017-02-28 13:00:42 +01:00