zephyr/include/sys
Andy Ross e932a1537c arch: tests: Document interrupt delivery behavior after arch_irq_disable()
Upcoming changes from Andrew that add a global timeout to the kernel
broke because of some voodoo behavior in the kernel/context test.  It
will use arch_irq_disable() on the timer interrupt directly to prevent
interrupts and measure timekeeping in their absence.  But some
architectures[1] don't reliably deliver interrupts that arrive, which
means that a running timeout that exists across this period will
result in a corrupt timeout queue.

Document that rule for architectures, move the offending test to the
end of the test suite (to minimize the chance of interacting with
other test code) and put a giant warning about the situation on it.
Long term, we may want to rework this test to do its job in other
ways.

[1] On x86, the interrupt disable happens at the IO-APIC level, while
interrupt latching and delivery is downstream in each CPU's Local
APIC.  An IO-APIC masked interrupt is completely invisible to the APIC
and can never be delivered once the line goes low.

Fixes #31333

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-01-21 17:50:01 -05:00
..
__assert.h
arch_interface.h arch: tests: Document interrupt delivery behavior after arch_irq_disable() 2021-01-21 17:50:01 -05:00
atomic.h code-guideline: Fixing code violation 10.4 Rule 2020-10-01 17:13:29 -04:00
base64.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
byteorder.h sys: byteorder: Fix incorrect shift in sys_get_be48/le48 2020-09-21 11:17:59 +02:00
cbprintf.h lib: cbprintf: remove cbprintf_arglen 2021-01-07 14:02:06 +01:00
check.h
crc.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
device_mmio.h mmu: rename z_mem_map to z_phys_map 2020-12-16 08:55:55 -05:00
dlist.h
errno_private.h kernel: support using thread local storage for errno 2020-10-24 10:52:00 -07:00
fdtable.h net: getsockname: Call via vtable instead of ioctl 2020-08-14 09:47:51 -07:00
kobject.h kernel: userspace: aligned memory allocation for dynamic objects 2021-01-13 09:43:55 -08:00
libc-hooks.h arm: cortex_m: add support for thread local storage 2020-10-24 10:52:00 -07:00
list_gen.h
math_extras_impl.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
math_extras.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
mem_manage.h mmu: promote public APIs 2021-01-21 16:47:00 -05:00
mutex.h include: sys: use C linkage 2020-10-22 07:49:07 -05:00
notify.h code-guideline: Fixing code violation 10.4 Rule 2020-10-01 17:13:29 -04:00
onoff.h code-guideline: Fixing code violation 10.4 Rule 2020-10-01 17:13:29 -04:00
p4wq.h lib/os: P4 Work Queue: Pooled Parallel Preemptible Priority-based 2021-01-15 11:35:50 -05:00
printk.h lib/os: replace z_vprintk with cbprintf 2020-11-13 06:38:01 -05:00
rb.h
ring_buffer.h lib: os: ring_buffer: Cleaning checkpatch warnings 2020-11-11 13:17:49 +01:00
sem.h linker: add iterable section macros 2020-06-24 17:09:22 -04:00
sflist.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
slist.h
speculation.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
sys_heap.h lib/os/heap: Add sys_heap_realloc() 2020-12-07 21:50:14 -05:00
sys_io.h sys_io: Expand the API to 64bits read/write functions 2020-12-08 09:29:20 -05:00
thread_stack.h doc: add kernel stack macros to stack apis 2020-12-18 12:18:50 +01:00
time_units.h code-guideline: Fixing code violation 10.4 Rule 2020-10-01 17:13:29 -04:00
timeutil.h doc: add a section for timeutil APIs 2021-01-20 16:38:56 -05:00
util_internal.h sys/util: fix macro support when building with C++ 2020-08-12 16:39:37 -05:00
util_macro.h doc: fix reference/util after sys/util.h split 2020-11-10 15:40:31 +01:00
util.h sys: util: add BIT64_MASK 2020-11-13 06:38:01 -05:00