genode/base-hw
Stefan Kalkowski 34b18e9da2 hw: restrict processor broadcast to TLB flushing
Removes the generic processor broadcast function call. By now, that call
was used for cross processor TLB maintance operations only. When core/kernel
gets its memory mapped on demand, and unmapped again, the previous cross
processor flush routine doesn't work anymore, because of a hen-egg problem.
The previous cross processor broadcast is realized using a thread constructed
by core running on top of each processor core. When constructing threads in
core, a dataspace for its thread context is constructed. Each constructed
RAM dataspace gets attached, zeroed out, and detached again. The detach
routine requires a TLB flush operation executed on each processor core.

Instead of executing a thread on each processor core, now a thread waiting
for a global TLB flush is removed from the scheduler queue, and gets attached
to a TLB flush queue of each processor. The processor local queue gets checked
whenever the kernel is entered. The last processor, which executed the TLB
flush, re-attaches the blocked thread to its scheduler queue again.

To ease uo the above described mechanism, a platform thread is now directly
associated with a platform pd object, instead of just associate it with the
kernel pd's id.

Ref #723
2014-05-07 10:37:38 +02:00
..
doc Merge panda_a2 and panda SPEC (fix #505, fix #506) 2012-11-23 12:20:27 +01:00
include hw: provide Kernel::update_instr_region 2014-04-14 12:28:16 +02:00
lib/mk hw: merge base-common and kernel_interface lib 2014-02-25 14:58:08 +01:00
mk hw_arndale: idle threads on secondary processors 2014-03-04 15:03:43 +01:00
run hw: use reliable start message in run env 2014-04-07 17:01:01 +02:00
src hw: restrict processor broadcast to TLB flushing 2014-05-07 10:37:38 +02:00