seL4/include
jonas 8ba22dcdc5 Repair barriers in sel4_atomic_exchange
The implementation of try_arch_atomic_exchange does not correctly pass
RELEASE memory ordering (or stronger) to the exchange operation.
To acknowledge this, try_arch_atomic_exchange is replaced by a relaxed
try_arch_atomic_exchange_rlx which does not apply any memory ordering.
Instead, the memory ordering is now added manually by
sel4_atomic_exchange. This provides better latency for interrupts as no
barriers are evoked inside the loop which performs the relaxed exchange
and checks for interrupts.
Furthermore, the new manual application of barriers ensures the memory
ordering passed to sel4_atomic_exchange.

Signed-off-by: jonas <s9joober@gmail.com>
2020-06-22 11:49:22 +10:00
..
32/mode replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
64/mode replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
api Enabled IPC debug features under new config 2020-04-06 14:21:46 +10:00
arch Repair barriers in sel4_atomic_exchange 2020-06-22 11:49:22 +10:00
benchmark replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
drivers hifive: Expose seL4_IRQControl_GetTrigger API 2020-04-17 17:55:55 +10:00
fastpath replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
kernel introduce isStopped and change isBlocked 2020-05-06 15:49:33 +10:00
machine userError string written to IPC buffer 2020-04-06 12:57:04 +10:00
model replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
object reflect function split in thread_control_flag 2020-04-27 11:44:00 +10:00
plat Invert address mapping diagrams 2020-05-22 12:26:13 +10:00
smp Repair barriers in sel4_atomic_exchange 2020-06-22 11:49:22 +10:00
api.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
assert.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
basic_types.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
bootinfo.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
compound_types.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
config.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
hardware.h trivial: fix header files 2020-05-22 12:26:13 +10:00
linker.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
machine.h Consolidate kernel virtual memory regions 2020-05-22 12:26:13 +10:00
object.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
stdarg.h Revised kernel printf implementation 2020-05-19 13:16:20 +10:00
stdint.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
string.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
types.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
util.h trivial: Use UL_CONST in assembler macros 2020-05-22 12:26:13 +10:00