zephyr/kernel
Andy Ross 7a59cebf12 kernel/k_timer: Robustify vs. late interrupts
The k_timer utility was written to assume that the kernel timeout
handler would never be delayed by more than a tick, so it can naively
reschedule the next interrupt with a simple delay.

Unfortunately real platforms have glitchy hardware and high tick
rates, and on intel_adsp we're seeing this promise being broken in
some circumstances.

It's probably not a good idea to try to plumb the timer driver
interface up into the IPC layer to do this correction, but thankfully
the existing absolute timeout API provides the tools we need (though
it does require that CONFIG_TIMEOUT_64BIT be enabled).

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2022-05-04 09:55:46 -05:00
..
include pm: Only resize power domains 2022-04-18 17:25:01 -07:00
paging
atomic_c.c
banner.c
cache_handlers.c
CMakeLists.txt
compiler_stack_protect.c
condvar.c
device.c kernel/device: Remove unknown external pointer 2022-04-08 09:59:00 -04:00
errno.c
events.c
fatal.c
futex.c
idle.c
init.c kernel: Remove idle thread cpu index on single-core devices 2022-03-30 10:08:48 -04:00
Kconfig pm: device: Dynamically add a device to a power domain 2022-04-18 17:25:01 -07:00
Kconfig.vm
kheap.c
mailbox.c
main_weak.c
mem_domain.c
mem_slab.c
mempool.c
mmu.c
msg_q.c
mutex.c kernel: mutex: remove unnecessary schedule locking 2022-04-20 21:03:59 -04:00
pipes.c
poll.c
queue.c
sched.c kernel/sched: Defer IPI sending to schedule points 2022-05-02 10:23:13 -05:00
sem.c
smp.c
stack.c
system_work_q.c
thread.c kernel: update k_thread_state_str() API 2022-04-20 20:20:13 -04:00
timeout.c kernel/timeout: Cleanup/speedup parallel announce logic 2022-04-13 13:26:14 -07:00
timer.c kernel/k_timer: Robustify vs. late interrupts 2022-05-04 09:55:46 -05:00
usage.c
userspace_handler.c
userspace.c
version.c
work.c kernel/workq: Cleanup bespoke reschedule point 2022-05-02 10:23:13 -05:00
xip.c