zephyr/kernel
Andy Ross 887e1abace kernel/timeout: Fix timeout "sooner" computation
There was an edge case in the timeout handling (exposed by, but not
strictly related to, the recent timeslice fix): the next_timeout()
computation would include time slice expiration as a clamp on the
result, but this would be invoked also on the z_set_timeout_expiry()
path which gets hooked on entry to a new thread which is needed to set
the timeout in the first place.  So if no other timer interrupt was
scheduled, it was possible to miss the first timeslice interrupt after
thread scheduling.

The explanation is much longer than the fix (use <= as the comparator
instead of <).

In practice this was only being hit in the existing test suite on
riscv miv running under renode using non-default clock rates.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-02-02 17:58:40 -05:00
..
include kernel: add CONFIG_ARCH_MAPS_ALL_RAM 2021-01-23 19:47:23 -05:00
atomic_c.c kernel: Add k_heap synchronized memory allocator 2020-04-14 10:05:55 -07:00
banner.c kernel: init: move banner handling 2020-11-27 20:08:14 -05:00
cache_handlers.c cache: Expand the APIs for cache flushing 2021-01-19 14:31:02 -05:00
CMakeLists.txt kernel: add condition variables 2021-01-19 08:55:47 -05:00
compiler_stack_protect.c tests: coverage: exclude the CODE UNREACHABLE of code coverage 2021-01-15 12:42:00 -05:00
condvar.c kernel: add vrfy hooks to support userspace with condvar 2021-01-19 08:55:47 -05:00
device.c power: standarize PM Kconfigs and cleanup 2020-12-09 15:18:29 -05:00
errno.c kernel: support using thread local storage for errno 2020-10-24 10:52:00 -07:00
fatal.c debug: coredump: remove z_ prefix for stuff used outside subsys 2021-01-21 22:08:59 -05:00
futex.c kernel/timeout: Make timeout arguments an opaque type 2020-03-31 19:40:47 -04:00
idle.c power: Remove power management conditionals from code 2021-01-22 09:31:20 -05:00
init.c mmu: ensure gperf data is mapped 2021-01-23 19:47:23 -05:00
Kconfig kernel: Kconfig: increase test default MAIN_STACK_SIZE for ARM Cortex M 2021-02-02 10:05:46 -05:00
kheap.c kernel: add k_heap_aligned_alloc 2020-12-08 13:21:26 -05:00
mailbox.c kernel: Remove legacy mem_pool usage 2020-12-07 21:50:14 -05:00
mem_domain.c tests: coverage: exclude the CODE UNREACHABLE of code coverage 2021-01-15 12:42:00 -05:00
mem_slab.c kernel: mem_slab: Optimize mem_slab_free 2020-12-07 11:36:48 +01:00
mempool.c z_heap_aligned_alloc(): avoid memory wastage 2021-01-22 10:04:43 -05:00
mmu.c kernel: add CONFIG_ARCH_MAPS_ALL_RAM 2021-01-23 19:47:23 -05:00
msg_q.c doc: Clarify semantics of k_msgq_put 2020-09-23 13:21:07 -05:00
mutex.c kernel: Cleanup logger setup in kernel files 2020-11-27 09:56:34 -05:00
pipes.c kernel: Remove legacy mem_pool usage 2020-12-07 21:50:14 -05:00
poll.c kernel: poll: remove unreachable code 2021-01-18 11:02:59 -05:00
queue.c kernel/queue: fix queue append/get race 2020-10-28 17:01:41 +01:00
sched.c tests: coverage: exclude the CODE UNREACHABLE of code coverage 2021-01-15 12:42:00 -05:00
sem.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
smp.c tests: coverage: exclude the CODE UNREACHABLE of code coverage 2021-01-15 12:42:00 -05:00
stack.c kernel: stack: fix stack_push spinlock and return 2020-10-07 17:10:36 -04:00
system_work_q.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
thread_abort.c tests: coverage: exclude the CODE UNREACHABLE of code coverage 2021-01-15 12:42:00 -05:00
thread.c kernel: const-qualify objects used to calculate delay values 2021-01-22 08:05:26 -06:00
timeout.c kernel/timeout: Fix timeout "sooner" computation 2021-02-02 17:58:40 -05:00
timer.c kernel: const-qualify objects used to calculate delay values 2021-01-22 08:05:26 -06:00
userspace_handler.c userspace: update k_object API to support immutable objects 2020-09-02 13:48:13 +02:00
userspace.c kernel: userspace: aligned memory allocation for dynamic objects 2021-01-13 09:43:55 -08:00
version.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
work_q.c kernel: Remove CONFIG_LEGACY_TIMEOUT_API 2021-01-14 21:33:16 -05:00
xip.c linker: arm: Add cortex_m itcm section 2021-01-15 14:51:20 +01:00