Skip to content

[userspace LL] IPC part of #10945 - #11137

Merged
lgirdwood merged 4 commits into
thesofproject:mainfrom
lyakh:ipc
Aug 28, 2026
Merged

[userspace LL] IPC part of #10945#11137
lgirdwood merged 4 commits into
thesofproject:mainfrom
lyakh:ipc

Conversation

@lyakh

@lyakh lyakh commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

most of the IPC commits from the userspace LL PR #10945

lyakh added 4 commits August 28, 2026 10:29
.cold and .coldrodata partitions can be empty, avoid a failure in
such cases.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
ipc4_init_module_instance() should be called when
CONFIG_SOF_USERSPACE_LL isn't selected but also when initializing a
DP module.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Switching to the userspace mode in DP and LL cases differs. Add a
comment to explain that.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Extract common initialisation code from comp_new_ipc4_user() and
comp_new_ipc4() into a new function.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Copilot AI lite review requested due to automatic review settings August 28, 2026 08:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR extracts common IPC4 component-creation configuration into a shared helper, refines IPC4 module-init handling to route LL-domain inits through the user IPC thread when userspace LL is enabled, and extends the userspace LL memory domain to include “cold” sections needed during prepare.

Changes:

  • Refactor IPC4 module instance configuration building into ipc4_comp_new_config() and reuse it from both kernel and userspace creation paths.
  • Update IPC4 userspace handler logic to only forward LL (non-DP) local-core init to the userspace thread; DP and cross-core creation stays in kernel.
  • Add userspace LL memory-domain partitions to allow execution/read access to .cold / .coldrodata regions.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
src/ipc/ipc4/helper.c Refactors IPC4 component init config population into a shared helper and reuses it in kernel/userspace creation paths.
src/ipc/ipc4/handler-user.c Adjusts module init routing to forward only local-core LL-domain init to the userspace IPC thread.
src/ipc/ipc-common.c Adds userspace LL mem-domain partitions for cold text/rodata to support prepare paths referencing cold symbols.
Suppressed comments (1)

src/ipc/ipc-common.c:521

  • Like the .cold partition above, the .coldrodata partition start address is not aligned down to a page boundary (only the size is aligned). If __coldrodata_start is not page-aligned, k_mem_domain_add_partition() can fail or produce an incomplete mapping.
		struct k_mem_partition cold_part = {
			.start = (uintptr_t)__coldrodata_start,
			.size = ALIGN_UP((uintptr_t)_imr_end - (uintptr_t)__coldrodata_start,
					 CONFIG_MMU_PAGE_SIZE),
			.attr = K_MEM_PARTITION_P_RO_U_RO,

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/ipc/ipc-common.c
Comment thread src/ipc/ipc-common.c
@@ -1550,11 +1548,15 @@ __cold int ipc4_user_process_module_message(struct ipc4_message_request *ipc4,

pdata->init_drv = drv;

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

not changed by this commit. Might need to revisit in the future.

@lgirdwood
lgirdwood merged commit d01f5fa into thesofproject:main Aug 28, 2026
43 of 45 checks passed
@lyakh
lyakh deleted the ipc branch August 28, 2026 14:52
@softwarecki

Copy link
Copy Markdown
Collaborator

A small concern: 6 hours feels like a very short review window for this PR.

The description only states that the commits were taken from another PR, but it does not explain the actual changes or their impact. Also, the source PR is marked with [Do Not Review], which means we should not rely on it as evidence that the changes have already been reviewed.

Given that, reviewers are expected to perform a full review here, so a bit more time would be reasonable.

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.

4 participants