Alexander Boettcher
0eef45e63f
vbox: implement pthread_create specifically
...
Issue #1114
2014-04-14 12:32:31 +02:00
Alexander Boettcher
0c08334b2c
pthread: separate structure and create function
...
With the commit an application may create a modified version of pthread_create.
Will be used by Virtualbox port.
Issue #1114
2014-04-14 12:32:31 +02:00
Alexander Boettcher
03ce614c23
base: add cpu_session parameter to thread creation
...
Fixes #1114
2014-04-14 12:32:31 +02:00
Alexander Boettcher
5169de72c4
base: set default cpu affinity
...
Set cpu_session default affinity space already during
construction of the thread, so that main thread is placed in the cpu affinity
space as defined by the parent. Otherwise the main thread is placed potentially
outside the affinity space, typically on the first/boot CPU.
Fixes #1107
2014-04-14 12:32:31 +02:00
Alexander Boettcher
73f71322f0
init: put ep for child in affinity space of child
...
Issue #1107
2014-04-14 12:32:30 +02:00
Alexander Boettcher
93f06dd11a
nova: set invalid affinity space in thread constructor
...
Otherwise affinity space is set to 1x1 and in cpu_session_component.cc the cpu
session local affinity space defined by parent is not taken because
"Location::valid()" returns true.
Issue #1107
2014-04-14 12:32:30 +02:00
Stefan Kalkowski
b5fe1d752b
hw: don't implement IRQ usage policy in core
...
Fix #995
Fix #1112
Fix #1113
2014-04-14 12:32:30 +02:00
Martin Stein
a9521853bd
hw: provide Kernel::update_instr_region
...
fix #1115
2014-04-14 12:28:16 +02:00
Martin Stein
3f14defd9d
hw: don't restrict update_data_region to core
...
ref #1115
2014-04-14 12:28:16 +02:00
Martin Stein
5a1fc6da60
hw: rename update_region in update_data_region
...
ref #1115
2014-04-14 12:28:16 +02:00
Norman Feske
b7e806d5eb
News item for TrustZone article
2014-04-10 15:40:40 +02:00
Martin Stein
fabea7fba1
hw: provide invalidate_instr_caches_by_virt_region
...
ref #1115
2014-04-07 17:11:53 +02:00
Martin Stein
f8c2596259
hw: beautify flush_data_caches_by_virt_region
...
ref #1115
2014-04-07 17:11:46 +02:00
Martin Stein
d67a26ea4c
hw: invalidate data caches on kernel init
...
fix #1108
2014-04-07 17:11:37 +02:00
Martin Stein
7836d92b22
hw & arm_v7: make flush_data_caches more readable
...
ref #1108
2014-04-07 17:11:28 +02:00
Martin Stein
9f95784f02
hw: diversify feedback from IPC node to thread
...
ref #1108
2014-04-07 17:11:20 +02:00
Martin Stein
e856158824
hw: no msg_base argument to Ipc_node::send_request
...
ref #1108
2014-04-07 17:10:53 +02:00
Martin Stein
b34ce7d2b0
hw: handier names for IPC methods
...
ref #1108
2014-04-07 17:10:45 +02:00
Martin Stein
f0ec8b27c1
hw: no argument to Ipc_node::_await_ipc_succeeded
...
ref #1108
2014-04-07 17:10:38 +02:00
Martin Stein
b55646e1b0
hw: remove Ipc_node::_received_ipc_request
...
ref #1108
2014-04-07 17:10:28 +02:00
Martin Stein
8d1e40eb5b
hw: remove Ipc_node::_await_ipc
...
ref #1108
2014-04-07 17:10:22 +02:00
Martin Stein
ebfd6a55b3
hw: remove useless argument of Thread::_call
...
ref #1108
2014-04-07 17:10:10 +02:00
Martin Stein
8f9d4737a6
hw: correct spelling of the verb look up
...
fix #1101
2014-04-07 17:10:05 +02:00
Martin Stein
7ffcc74d72
hw: centralize permission check of kernel calls
...
ref #1101
2014-04-07 17:09:58 +02:00
Martin Stein
02c16e7106
hw: split resume_local_thread from resume_thread
...
Kernel::resume_thread was restricted to core when the targeted thread was in
another domain. Now there are two kernel calls, resume_local_thread and
resume_thread, where the former is never restricted and is provided via
public kernel/interface.h and the latter is always restricted to core and
is provided via core-local kernel/core_interface.h.
ref #1101
2014-04-07 17:09:52 +02:00
Martin Stein
c72f91fefb
hw: simplify return value of Kernel::resume_thread
...
ref #1101
2014-04-07 17:09:33 +02:00
Martin Stein
6974abcf41
hw: don't use assert in Kernel::pause_vm
...
ref #1101
2014-04-07 17:09:16 +02:00
Martin Stein
99db9e5246
hw: don't use assert in Kernel::run_vm
...
ref #1101
2014-04-07 17:08:59 +02:00
Martin Stein
7bbabcf817
hw: don't use assert in Kernel::new_vm
...
ref #1101
2014-04-07 17:08:49 +02:00
Martin Stein
f8b4541e2b
hw: get rid of fixme note in Kernel::update_region
...
ref #1101
2014-04-07 17:08:35 +02:00
Martin Stein
4f19d4869f
hw: don't use assert in Kernel::update_region
...
ref #1101
2014-04-07 17:08:29 +02:00
Martin Stein
ea156e18ec
hw: don't use assert in Kernel::update_pd
...
ref #1101
2014-04-07 17:08:23 +02:00
Martin Stein
dbad6f7061
hw: don't use assert in Kernel::bin_thread
...
ref #1101
2014-04-07 17:08:16 +02:00
Martin Stein
9e089e7e75
hw: don't use assert in Kernel::start_thread
...
ref #1101
2014-04-07 17:08:11 +02:00
Martin Stein
fba4f54571
hw: split pause_current_thread from pause_thread
...
Kernel::pause_current_thread can be implemented much simpler and is not
restricted to core threads, in contrast to Kernel::pause_thread which
also benefits from the split and can be moved to core_interface.h.
ref #1101
2014-04-07 17:07:24 +02:00
Martin Stein
abd55fda9a
hw: don't return a result in Kernel::pause_thread
...
ref #1101
2014-04-07 17:06:09 +02:00
Martin Stein
5e940da040
hw: don't use assert in Kernel::pause_thread
...
ref #1101
2014-04-07 17:05:43 +02:00
Martin Stein
055b7c57b6
hw: correct result type of Kernel::new_vm
...
ref #1101
2014-04-07 17:05:34 +02:00
Martin Stein
d5b38b674e
hw: simplify buffer of Kernel::access_thread_regs
...
ref #1101
2014-04-07 17:05:29 +02:00
Martin Stein
06ea6cd462
hw: simplify result of Kernel::access_thread_regs
...
ref #1101
2014-04-07 17:04:50 +02:00
Martin Stein
1eeba3ed73
hw: comment result of Kernel::route_thread_event
...
ref #1101
2014-04-07 17:04:36 +02:00
Martin Stein
873c3f3984
hw: correct return type of Kernel::new_thread
...
ref #1101
2014-04-07 17:04:20 +02:00
Martin Stein
a64372647d
hw: rename mode_transition_virt_base
...
ref #1101
2014-04-07 17:03:48 +02:00
Martin Stein
5112df9792
hw: remove unused kernel_pd_alignm_log2
...
ref #1101
2014-04-07 17:03:15 +02:00
Martin Stein
e2268c09a0
hw: move core-restricted interface to local header
...
fix #1096
2014-04-07 17:02:50 +02:00
Martin Stein
f0ac145471
hw: faster Kernel::Signal_receiver::_listen()
...
ref #1096
2014-04-07 17:02:26 +02:00
Martin Stein
00708b6696
hw: reduce stack size of idle threads
...
ref #1096
2014-04-07 17:02:11 +02:00
Martin Stein
d30edd4841
hw: make RM faults less noisy in release mode
...
If an RM fault ends up in any trouble, the faulter remains paused and
the pager activation continues with the next fault. Thus we can print
a warning instead of an error and safe execution time in release mode.
ref #1096
2014-04-07 17:02:00 +02:00
Martin Stein
9affbf33ec
hw: make kernel less noisy in release mode
...
In most cases an error report is not necessary in the kernel as the problem
does not affect the kernel itself but the according user-land context. Thus
we can also do a warning that is not printed in release mode and hence safe
execution time.
ref #1096
2014-04-07 17:01:46 +02:00
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