Skip to content

Conversation

@softwarecki
Copy link
Collaborator

PR adds a thread handling ipc requests that calls module methods in the user context.

CONFIG_SOF_STACK_SIZE, 0, NULL);

wd->ipc_worker_tid =
k_work_user_queue_thread_get(&sd->ipc_user_work_q);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so for every module you propose to add a thread, handling the IPC work queue and then when an IPC arrives, the submitter changes to the module domain, submits the IPC to the work queue, after which it's processed by the queue thread?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The thread is created for a security domain, which will include multiple modules from a single vendor.

softwarecki and others added 6 commits August 28, 2025 15:48
New overlay config created to build SOF with userspace mode enabled.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
New overlay config created to build SOF with userspace mode enabled.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Add helper functions user_add_memory and user_remove_memory that allows to
add/remove memory regions from the memory domain. The purpose of these
functions is to round addresses appropriately for the memory domain.

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
The non-privileged modules code should be executed in separate thread
executed in userspace mode. This way the code and data owned by such
module will be isolated from other non-privileged modules in the system.

The implementation creates user_work_queue threads that will service all
IPC's for all such modules. There are security domains defined that will
combines service of IPC's for modules that could exist without isolation
(eg. several instances of the same module or modules originating from single
vendor).

Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Add dev_user parameter.

Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants