dp: nocodec: switch playback SRC to DP by default#10469
dp: nocodec: switch playback SRC to DP by default#10469lyakh wants to merge 9 commits intothesofproject:mainfrom
Conversation
|
@lyakh Some nocodec failings. |
@lgirdwood yes, I've traced it back to an update in Zephyr, which had disabled double mapping. I'm working to fix it. |
There was a problem hiding this comment.
Pull request overview
This PR switches the playback SRC (Sample Rate Converter) to use the DP (Data Processing) domain by default in the nocodec topology, while keeping the capture SRC in the default domain. Additionally, it adds cached memory partition support for DP scheduler tasks.
Key changes:
- Splits the SRC domain configuration into separate playback and capture domains
- Adds cached memory partition support (HEAP_CACHE and CFG_CACHE) for improved memory access patterns
- Updates test topology parameters to maintain capture path DP testing
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| tools/topology/topology2/cavs-nocodec.conf | Splits SRC_DOMAIN into SRC_DOMAIN_PLAYBACK (DP) and SRC_DOMAIN_CAPTURE (default) and updates widget configurations |
| tools/topology/topology2/development/tplg-targets.cmake | Updates test topology parameters from SRC_DOMAIN to SRC_DOMAIN_CAPTURE for MTL, LNL, and PTL platforms |
| src/schedule/zephyr_dp_schedule_application.c | Adds cached memory partition initialization and cleanup for both heap and mailbox partitions |
| src/schedule/zephyr_dp_schedule.h | Extends the sof_dp_part_type enum with HEAP_CACHE and CFG_CACHE partition types |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
SOFCI TEST |
|
retest with #10474 merged |
|
SOFCI TEST |
|
SOFCI TEST |
b653aa5 to
1f3c6ed
Compare
|
SOFCI TEST |
8274496 to
5001352
Compare
|
SOFCI TEST |
|
once again no PTL "nocodec" result. Next try |
|
SOFCI TEST |
Since Zephyr has removed double mapping per Kconfig switch we need to restore it in SOF. Next we should try to optimize mappings to only use the ones we really need. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
DP tasks don't need to be rescheduled when pause is released. Default handling works correctly in that case too. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
We compare flags on repeated allocations from an existing pool, but initialisation got forgotten in the process. Restore it. Fixes: d6e6ac5 ("Add a object pool allocator") Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
When an objpool allocation fails an error should be returned. Fix the missing error code assignment. Fixes: fc73f9d ("sp: application: switch memory domains to object pools") Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Userspace modules should only call mod_fast_get() and mod_fast_put(), which already can cross into the kernel space on their own, so fast_get() and fast_put() themselves don't need to be syscalls. Remove their syscall implementations. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
fast_get.c doesn't have a "trace context" - it doesn't have a DECLARE_TR_CTX() call. Hencs all calls to tr_err() and friends are wrong. Replace them with respective LOG_*() analogs. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
If a module fast-gets memory for a specific its instance, running in userspace and then another usuerspace instance wants to share it, access has to be granted to that object by that thread too. This patch does that while also restricting object sharing to "large" objects (currently larger than half a page), and smaller objects are just copied. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
b875d5a to
f0a1441
Compare
|
Pending on zephyrproject-rtos/zephyr#103104 |
|
multiple-pause-resume on PTL also fails on unrelated PRs https://sof-ci.01.org/sofpr/PR10509/build18873/devicetest/index.html?model=PTLP_RVP_SDW&testcase=multiple-pause-resume-50 |
|
Before re-pushing now that zephyrproject-rtos/zephyr#103104 has been merged, let me hold this CI state: internal Intel CI passed, PTL nocodec has a single unrelated failure https://sof-ci.01.org/sofpr/PR10469/build18821/devicetest/index.html?model=PTLH_RVP_NOCODEC&testcase=multiple-pause-resume-50 , no other run-time regressions |
Update Zephyr to include Zephyr fixes related to double exception handling. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Switch both SRC instances in the nocodec topology on PTL to DP mode by default. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
|
@softwarecki could you check the "Internal Intel CI" failure? It hits on the userspace-proxy path - the exception is in |
|
PTL nocodec missing, rerun |
|
SOFCI TEST |
softwarecki
left a comment
There was a problem hiding this comment.
I think we have crossed the line in terms of the amount of additional changes being bundled into a single PR, and it would be better to split it. This PR started as a change limited to SRC configuration, but it now also:
- updates Zephyr (disable FLIX)
- removes
fast_get/putsyscalls - modifies the objpool allocator
- introduces some changes in DP
Regarding the Zephyr update:
Commit message / description is misleading. The fix for the double exception is already in use (Zephyr update done by #10494). The Zephyr update in this PR disabling FLIX! It also switching some configuration options, which are not described.
I recommend splitting this PR into smaller, logically scoped changes. At a minimum, I would expect commit messages to be corrected so that they accurately reflect the actual changes and do not mislead reviewers.
Switch one of the two SRC instances in the nocodec topology to DP mode by default.