Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches

Optional offload of an element's work onto shared worker threads. More...

Files

file  mpipe_workqueue.h
 Shared P4WQ pool for element-level work parallelism.

Variables

struct k_p4wq *const mpipe_p4wq
 Shared mpipe P4WQ pool instance.

Detailed Description

Optional offload of an element's work onto shared worker threads.

By default an element does its work on whichever thread pushed the buffer into it, so a chain runs end to end on the pipeline thread. An element with work worth parallelizing can instead submit it to this shared pool and let a worker run it, which is what allows several elements to progress at once on an SMP target.

The pool is a Zephyr P4WQ, so a work item carries its own priority and deadline rather than inheriting a fixed queue priority. It exists only when CONFIG_MPIPE_WORKQUEUE is enabled.

Variable Documentation

◆ mpipe_p4wq

struct k_p4wq* const mpipe_p4wq
extern

#include <mpipe_workqueue.h>

Shared mpipe P4WQ pool instance.

A process-wide P4WQ pool shared by all elements that need to parallelize internal work.