genode/repos/base/src/base
Christian Prochaska a46de84f89 Fix race condition in page fault notification
When a page fault cannot be resolved, the GDB monitor can get a hint about
which thread faulted by evaluating the thread state object returned by
'Cpu_session::state()'. Unfortunately, with the current implementation,
the signal which informs GDB monitor about the page fault is sent before
the thread state object of the faulted thread has been updated, so it
can happen that the faulted thread cannot be determined immediately
after receiving the signal.

With this commit, the thread state gets updated before the signal is sent.

At least on base-nova it can also happen that the thread state is not
accessible yet after receiving the page fault notification. For this
reason, GDB monitor needs to retry its query until the state is
accessible.

Fixes #1206.
2014-07-24 10:18:07 +02:00
..
allocator Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
avl_tree Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
child Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
console Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
cpu base: interface for D- and I-cache synchronization 2014-05-27 11:14:45 +02:00
cxx Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
elf Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
env base: introduce caching attributes (fix #1184) 2014-06-26 10:57:26 +02:00
heap Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
include Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
ipc Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
lock Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
pager Fix race condition in page fault notification 2014-07-24 10:18:07 +02:00
process Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
server Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
signal os: avoid deadlock in packet stream (fix #1186) 2014-06-26 12:14:03 +02:00
thread Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00

README

This directory contains the mandatory Genode infrastructure
on which all Genode components rely. Each subdirectory
corresponds to a library.

:Note: Do not mistake the name of this directory with the
  make variable $(BASE_DIR). The make variable refers to
  the top-level directory of the whole Genode source tree.