Topics

RFC: remove microkernel Task IRQs from Zephyr


Boie, Andrew P
 

Problem statement:

The current implementation of Microkernel Task IRQs has a hard
dependency on dynamic interrupts, which we also want to remove from
Zephyr.

Although the mechanism could be redesigned to use static IRQs, the
value it provides to the kernel is dubious. It's very simple with other
APIs to have a driver that needs this functionality to create their own
task and have it wait on a kevent_t which the driver ISR releases.

Historically, when Zephyr used to have a user/kernel space separation,
Task IRQs were used for user space processes to register with an IRQ
coupled with MMIO mapping routines. We don't have user space any more.
We'd rather not continue to maintain this thing.

Solution:

Remove microkernel task IRQs and leave the uncommon use-cases where
they would be needed as a (simple) exercise for the application or
driver developer.