zephyr/kernel
Peter Mitsis f86027ffb7 kernel: pipes: rewrite pipes implementation
This new implementation of pipes has a number of advantages over the
previous.
  1. The schedule locking is eliminated both making it safer for SMP
     and allowing for pipes to be used from ISR context.
  2. The code used to be structured to have separate code for copying
     to/from a wating thread's buffer and the pipe buffer. This had
     unnecessary duplication that has been replaced with a simpler
     scatter-gather copy model.
  3. The manner in which the "working list" is generated has also been
     simplified. It no longer tries to use the thread's queuing node.
     Instead, the k_pipe_desc structure (whose instances are on the
     part of the k_thread structure) has been extended to contain
     additional fields including a node for use with a linked list. As
     this impacts the k_thread structure, pipes are now configurable
     in the kernel via CONFIG_PIPES.

Fixes #47061

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
2022-08-17 19:31:25 +02:00
..
include kernel: Init the base.slice_ticks for dummy_thread 2022-08-04 19:44:24 -04:00
paging arch/kernel/soc/samples: use unsigned int for irq_lock() 2022-07-14 14:37:13 -05:00
atomic_c.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
banner.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
cache_handlers.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
CMakeLists.txt kernel: pipes: rewrite pipes implementation 2022-08-17 19:31:25 +02:00
compiler_stack_protect.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
condvar.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
device.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
errno.c kernel: Allow Zephyr to use libc's internal errno 2022-05-12 19:06:48 -04:00
events.c kernel: Add k_event_set_masked primitive 2022-07-25 15:24:32 -04:00
fatal.c debug: coredump: add xtensa intel adsp, support toolchains 2022-06-23 15:44:45 -04:00
futex.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
idle.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
init.c kernel: remove redundant <zephyr/zephyr.h> includes 2022-06-15 09:13:11 +02:00
Kconfig kernel: pipes: rewrite pipes implementation 2022-08-17 19:31:25 +02:00
Kconfig.vm everywhere: fix typos 2022-03-18 13:24:08 -04:00
kheap.c kernel: switch to SYS_INIT_NAMED 2022-07-06 10:44:35 +02:00
mailbox.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
main_weak.c kernel: extract __weak main() into independent file 2021-08-28 08:48:03 -04:00
mem_domain.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
mem_slab.c kernel: Extend slabs memory usage stats 2022-07-12 13:59:26 +00:00
mempool.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
mmu.c kernel: comply to coding guidelines MISRA C:2012 Rule 14.4 2022-07-21 06:16:16 -04:00
msg_q.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
mutex.c kernel: mutex: fix races when lock timeout 2022-08-12 17:40:20 +02:00
pipes.c kernel: pipes: rewrite pipes implementation 2022-08-17 19:31:25 +02:00
poll.c kernel: workq: Add internal function z_work_submit_to_queue() 2022-05-10 18:39:51 +02:00
queue.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
sched.c kernel: comply to coding guidelines MISRA C:2012 Rule 14.4 2022-07-21 06:16:16 -04:00
sem.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
smp.c kernel: comply to coding guidelines MISRA C:2012 Rule 14.4 2022-07-21 06:16:16 -04:00
stack.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
system_work_q.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
thread.c kernel: Fix gathering of runtime thread stats 2022-05-13 10:19:53 -05:00
timeout.c kernel: Fixes sys_clock_tick_get() 2022-08-04 05:32:11 -04:00
timer.c kernel: comply to coding guidelines MISRA C:2012 Rule 14.4 2022-07-21 06:16:16 -04:00
usage.c kernel: Fix gathering of runtime thread stats 2022-05-13 10:19:53 -05:00
userspace.c kernel: pipes: rewrite pipes implementation 2022-08-17 19:31:25 +02:00
userspace_handler.c kernel: migrate includes to <zephyr/...> 2022-05-09 09:26:20 +02:00
version.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
work.c kernel: workq: Add internal function z_work_submit_to_queue() 2022-05-10 18:39:51 +02:00
xip.c kernel: remove redundant <zephyr/zephyr.h> includes 2022-06-15 09:13:11 +02:00