Commit Graph

2374 Commits

Author SHA1 Message Date
Stefan Kalkowski
0dece91973 core: re-design memory allocator (fix #1091)
* Core_mem_allocator: implement Range_allocator interface
* Core_mem_allocator: allocate with page-granularity only
* Use slab allocators in core where meaningful (e.g. dataspace objects)
2014-03-18 14:24:55 +01:00
Martin Stein
36bfb56e49 util_mmio: make memory dumps easier to read
fix #1095
2014-03-14 13:24:20 +01:00
Martin Stein
9a9d093e01 util_mmio: test bitsets with a width of 64bit
ref #1095
2014-03-14 13:24:09 +01:00
Martin Stein
6476cb3bbd mmio: fix type inaccuracy in bitset reads
We must ensure that the type in use fits the shift value that gets
applied while combining the bitset sub-values.

ref #1095
2014-03-14 13:23:44 +01:00
Martin Stein
76668f0774 util_mmio: replace test_failed by error
ref #1095
2014-03-14 13:23:31 +01:00
Martin Stein
db8957562f util_mmio: test Mmio::Register with 64bit width
ref #1095
2014-03-14 13:23:19 +01:00
Martin Stein
358b2ef0c7 util_mmio: refer to failed tests via line number
ref #1095
2014-03-14 13:23:10 +01:00
Christian Helmuth
8de324245c framebuffer.run: refresh screen after test step
The commit also refactors initialization and generic functions into a
test-environment class.

Fixes #1092.
2014-03-14 13:20:06 +01:00
Christian Helmuth
83cc8da588 vbox: fix format warning (size_t) in autotest 2014-03-14 13:17:37 +01:00
Johannes Schlatow
da9e764c47 Init: bugfix
Fix a use-after-free bug concerning the use case where the config
of the init process changes dynamically. The childs' services were not
removed from the corresponding Service_registry properly.

Fixes #1094
2014-03-14 13:17:37 +01:00
Torsten Hilbrich
0b7ea4abab Genode::Connection: Mark as noncopyable
When an object derived from Genode::Connection is copied we had
strange issues. An example is that the first RPC invocation works
correctly but the second one blocks or even delivers incorrect data.

We can avoid this issue if the object is always passed by reference.
Ensure this by deriving from Genode::Noncopyable.
2014-03-14 13:17:37 +01:00
Martin Stein
f988c254df hw: comment conditions of interprocessor interrupt
ref #1088
2014-03-14 13:17:37 +01:00
Martin Stein
8ce197d7fa hw: do inter-processor interrupt only when needed
The processor scheduler can determine without much overhead wether
the currently scheduled client becomes out-dated due to the insertion
of another client. This can be used to safe inter-processor interrupts
when a remote insertion doesn't imply an update of the currently
scheduled client.

fix #1088
2014-03-14 13:17:37 +01:00
Martin Stein
18cee192e2 hw: don't do redundant inter-processor interrupts
At least with the ARM generic interrupt controller, inter-processor interrupts
are edge triggered and banked for all source processors. Thus it might be
possible that such an interrupt gets triggered redundantly until the targeted
processor is able to grab the kernel lock. As we're only interested in making
a processor recognize accumulative updates to its scheduler, we can omit
further interrupts if there is one pending already at the targeted processor.

ref #1088
2014-03-14 13:17:37 +01:00
Martin Stein
852785324f hw: move Processor_client to processor.h
ref #1088
2014-03-14 13:17:37 +01:00
Martin Stein
8818d810a1 hw: clean-up destruction of processor clients
ref #1088
2014-03-14 13:17:36 +01:00
Martin Stein
17f17df74b hw: rename Execution_context in Processor_client
ref #1088
2014-03-14 13:17:36 +01:00
Martin Stein
010e00ae7a hw: rename Cpu_scheduler in Processor_scheduler
ref #1088
2014-03-14 13:17:36 +01:00
Martin Stein
a8d071b372 hw: inter-processor interrupt on remote scheduling
ref #1088
2014-03-14 13:17:36 +01:00
Martin Stein
044a109c3a hw: reset scheduling timeout implicitely
This is needed as soon as we do inter-processor interrupts to
inform a processor about a remote modification in its scheduling plan.
In this case we can not explicitely decide wether to reset timer
or not. Instead we must decide it according to the choices of the
scheduler before and after the modification.

ref #1088
2014-03-14 13:17:36 +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
Martin Stein
3f9b098b70 base: provide Thread_base::stack_size(size_t)
The new method enhances the stack of the targeted thread if it is smaller
than a given size.

ref #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
Sebastian Sumpf
330b0a731c rump: Add panic message 2014-03-14 13:17:35 +01:00
Sebastian Sumpf
45b4d6b187 libc_fs: Make plugin thread safe
Issue #1090
2014-03-14 13:17:35 +01:00
Alexander Boettcher
e7f3e99aab tool: test result output of amtterm reset
"amtterm reset" returns 0 as exitcode even if the reset command failed.
So check explicitly the output of the command to detect the error case.
2014-03-14 13:17:35 +01:00
Norman Feske
f5be746894 libc: Don't filter out sigsetjmp from libc-gen
Issue #1085
2014-03-14 13:17:35 +01:00
Norman Feske
6525ec5951 Simplify Framebuffer::Session interface
This patch removes the 'Framebuffer::Session::release()' function from
the interface to make the mode-change protocol consistent with the way
the Rom_session interface handles ROM-module changes. That is, the
client acknowledges the release of its current dataspace by requesting a
new dataspace via the 'Framebuffer::Session::dataspace()' function.

Fixes #1057
2014-03-14 13:17:35 +01:00
Christian Helmuth
a61e278cec scout: include scout/platform.h for new operator 2014-03-14 13:17:27 +01:00
Martin Stein
b9041d601d hw: Fix name of Page_flags type
The type was accidentally changed by "hw & arm_v6: clean up TLB driver"

ref #1076
2014-03-14 13:16:05 +01:00
Martin Stein
aeb9213e73 mp_server.run: allow testing with hw_arndale
fix #1076
2014-03-14 13:16:05 +01:00
Martin Stein
d605681ce4 affinity.run: allow testing with hw_arndale
ref #1076
2014-03-14 13:16:05 +01:00
Martin Stein
6e21ab42d2 hw: apply MMU cache-flushes to all processors
ref #1076
2014-03-14 13:16:05 +01:00
Martin Stein
56e4588e91 hw: provide processor broadcasts in core
A processor broadcast executes a function on all available processors
which is needed at least to do MMU cache-flushes globally.

ref #1076
2014-03-14 13:16:05 +01:00
Martin Stein
395e955756 hw: set affinity of core threads
ref #1076
2014-03-14 13:16:05 +01:00
Martin Stein
a586828844 hw: consider affinity location in Platform_thread
ref #1076
2014-03-14 13:16:05 +01:00
Martin Stein
49bf33e404 hw: multiprocessor aware processor scheduling
ref #1076
2014-03-14 13:16:05 +01:00
Martin Stein
f545fa0e36 hw: provide identification of a processor object
ref #1076
2014-03-14 13:16:04 +01:00
Martin Stein
e38060d81e hw: get a thread cap in Thread_base constructor
Previously this was not done before Thread_base::start(..) in
base-hw as it was not needed to have a valid cap that early. However,
when changing the affinity of a thread we need the cap to be valid
before Thread_base::start(..).

ref #1076
2014-03-07 17:24:54 +01:00
Martin Stein
52addb591b hw: multiprocessor aware verbosity on thread start
ref #1076
2014-03-07 17:24:28 +01:00
Martin Stein
ed9c4f4427 hw: get start-thread syscall multiprocessing aware
ref #1076
2014-03-07 17:24:12 +01:00
Sebastian Sumpf
5f0843082a usb_drv: XHCI support for x86-architectures
USB 3.0 support on x86 (64/32) platforms, as well as pci support for XHCI
controllers.

Issue #1084
2014-03-06 14:56:52 +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
Martin Stein
194b6b64c1 hw: rename Multiprocessor in Processor_pool
fix #1083
2014-03-04 19:05:21 +01:00
Martin Stein
d2fd00a828 hw: rename files multiprocessor.* in processor.*
ref #1083
2014-03-04 19:05:09 +01:00
Martin Stein
7bdb8c9007 hw: let Processor inherit from Processor_driver
ref #1083
2014-03-04 19:04:50 +01:00
Martin Stein
effeb765b9 hw: rename <spec>::Cpu in <spec>::Processor_driver
ref #1083
2014-03-04 19:04:32 +01:00
Martin Stein
5d444a12dc hw: rename Genode::Cpu in Processor_driver
ref #1083
2014-03-04 19:04:16 +01:00