zephyr/kernel/include
Andy Ross 564f59060c kernel: SMP timer integration
In SMP, the system timer is used for timeslicing on auxiliary CPUs,
but the base system timekeeping via _nano_sys_clock_tick_announce() is
still done on CPU0 only (because the framework isn't prepared for
asynchronous notification yet).  Skip processing on CPU1+.

Also, due to a hardware interaction* that is difficult to work around,
timer initialization on the auxiliary CPUs is done at the very end of
the CPU bringup, just before the swap into the scheduler.  A
smp_timer_init() API has been added for this purpose.

* On ESP-32, enabling the timer seems to result in a near-synchronous
  interrupt being delivered despite my best attempts to keep it
  masked, then blowing things up because the CPU record isn't set up
  to handle it yet.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-02-16 10:44:29 -05:00
..
gen_offset.h license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
kernel_internal.h kernel: SMP timer integration 2018-02-16 10:44:29 -05:00
kernel_offsets.h kernel: SMP-aware scheduler 2018-02-16 10:44:29 -05:00
kernel_structs.h kernel: SMP-aware scheduler 2018-02-16 10:44:29 -05:00
ksched.h kernel: SMP-aware scheduler 2018-02-16 10:44:29 -05:00
kswap.h kernel: SMP-aware scheduler 2018-02-16 10:44:29 -05:00
offsets_short.h kernel/arch: streamline thread user options 2017-01-24 13:34:50 +00:00
syscall_handler.h kernel: include: rename nano_internal.h to kernel_internal.h 2018-01-31 10:07:21 -06:00
timeout_q.h cleanup: rename fiber/task -> thread 2017-10-30 18:41:15 -04:00
wait_q.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00