|
Sound Open Firmware
|
Data Processing (DP) preemptible worker thread scheduler. More...

Go to the source code of this file.
Data Structures | |
| union | scheduler_dp_thread_ipc_param |
Enumerations | |
| enum | { DP_TASK_EVENT_PROCESS = BIT(0) , DP_TASK_EVENT_CANCEL = BIT(1) , DP_TASK_EVENT_IPC = BIT(2) , DP_TASK_EVENT_IPC_DONE = BIT(3) } |
| Events signaled to Data Processing (DP) worker threads. More... | |
Functions | |
| int | scheduler_dp_init (void) |
| Initialize the Data Processing (DP) scheduler on the calling core. | |
| int | scheduler_dp_task_init (struct task **task, const struct sof_uuid_entry *uid, const struct task_ops *ops, struct processing_module *mod, uint16_t core, size_t stack_size, uint32_t options) |
| Initialize a Data Processing task and attach a dedicated Zephyr worker thread. | |
| void | scheduler_dp_internal_free (struct task *task) |
| Free kernel-side internal resources associated with a DP task. | |
| void | scheduler_dp_ll_tick (void) |
| Tick notification from the Low-Latency (LL) timer domain to the DP scheduler. | |
| void | scheduler_get_task_info_dp (struct scheduler_props *scheduler_props, uint32_t *data_off_size) |
| Extract telemetry information about Data Processing scheduler tasks. | |
| static int | scheduler_dp_thread_ipc (struct processing_module *pmod, unsigned int cmd, union scheduler_dp_thread_ipc_param *param) |
| Dispatch an IPC command synchronously to a Data Processing (DP) worker thread. | |
Data Processing (DP) preemptible worker thread scheduler.
The Data Processing (DP) scheduler manages compute-intensive audio processing tasks by assigning a dedicated preemptible Zephyr thread to each SOF task.
scheduler_dp_ll_tick() evaluates all queued DP tasks. If a task's sources contain enough audio data and its sinks have sufficient buffer space, its deadline is calculated and applied to the Zephyr thread via k_thread_absolute_deadline_set().