-
Notifications
You must be signed in to change notification settings - Fork 349
userspace: Add userspace proxy #10149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
| CONFIG_SOF_STACK_SIZE, 0, NULL); | ||
|
|
||
| wd->ipc_worker_tid = | ||
| k_work_user_queue_thread_get(&sd->ipc_user_work_q); |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
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>
cb72d5f to
3f3ac8d
Compare
PR adds a thread handling ipc requests that calls module methods in the user context.