zephyr/kernel
Alexander Razinkov 4664813a12 kernel: spinlock: Ticket spinlocks
Basic spinlock implementation is based on single
atomic variable and doesn't guarantee locking fairness
across multiple CPUs. It's even possible that single CPU
will win the contention every time which will result
in a live-lock.

Ticket spinlocks provide a FIFO order of lock aquisition
which resolves such unfairness issue at the cost of slightly
increased memory footprint.

Signed-off-by: Alexander Razinkov <alexander.razinkov@syntacore.com>
2023-11-04 07:38:39 -04:00
..
include kernel: random: Rename early random get function 2023-10-13 10:03:53 +03:00
paging syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
atomic_c.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
banner.c kernel: banner: Allow for customising version 2023-08-21 10:09:46 +02:00
busy_wait.c kernel: crude k_busy_wait() implementation 2023-07-19 21:42:41 -04:00
CMakeLists.txt kernel: Add initial obj_core infrastructure 2023-09-30 08:04:14 +03:00
compiler_stack_protect.c kernel: canaries: Allow using TLS to store it 2023-08-08 19:08:04 -04:00
condvar.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
device.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
dynamic.c syscall: rename z_object_find -> k_object_find 2023-11-03 11:46:52 +01:00
dynamic_disabled.c kernel: dynamic: declare dynamic stubs when disabled 2023-07-24 12:59:43 -04:00
errno.c kernel: move syscall_handler.h to internal include directory 2023-11-03 11:46:52 +01:00
events.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
fatal.c kernel: fatal: Remove redundant function 2023-09-29 13:05:13 +02:00
futex.c syscall: rename Z_SYSCALL_ to K_SYSCALL_ 2023-11-03 11:46:52 +01:00
idle.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
init.c kernel: init: Build constant in early random generator 2023-10-13 10:03:53 +03:00
Kconfig kernel: spinlock: Ticket spinlocks 2023-11-04 07:38:39 -04:00
Kconfig.vm mm: introduce CONFIG_KERNEL_VM_USE_CUSTOM_MEM_RANGE_CHECK 2023-10-20 15:08:34 +02:00
kheap.c kernel: move wait_q.h header to be internal 2023-09-12 12:55:36 -04:00
mailbox.c kernel: Remove legacy mem block from mailbox 2023-10-13 09:56:02 +03:00
main_weak.c kernel: Switch main return type from void to int 2023-04-14 07:49:41 +09:00
mem_domain.c init: remove the need for a dummy device pointer in SYS_INIT functions 2023-04-12 14:28:07 +00:00
mem_slab.c kernel: object: rename z_object_init to k_object_init 2023-11-03 11:46:52 +01:00
mempool.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
mmu.c kernel: move syscall_handler.h to internal include directory 2023-11-03 11:46:52 +01:00
msg_q.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
mutex.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
obj_core.c kernel: Integrate object core statistics 2023-09-30 08:04:14 +03:00
pipes.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
poll.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
queue.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
sched.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
sem.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
smp.c kernel: rename shadow variables 2023-08-10 08:14:12 +00:00
stack.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
system_work_q.c init: remove the need for a dummy device pointer in SYS_INIT functions 2023-04-12 14:28:07 +00:00
thread.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
timeout.c kernel: move syscall_handler.h to internal include directory 2023-11-03 11:46:52 +01:00
timer.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
usage.c kernel: Integrate object core statistics 2023-09-30 08:04:14 +03:00
userspace.c syscall: rename Z_SYSCALL_ to K_SYSCALL_ 2023-11-03 11:46:52 +01:00
userspace_handler.c syscall: rename Z_OOPS -> K_OOPS 2023-11-03 11:46:52 +01:00
version.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
work.c kernel: work: check handler when submit to queue 2023-10-05 13:43:07 +01:00
xip.c kernel: canaries: Allow using TLS to store it 2023-08-08 19:08:04 -04:00