Repository navigation
[BUG] DSM standalone Multicore Stream Stall #4101
Copy link
Copy link
Closed
Labels
Fix confirmedFix for the issue has been found and verifiedFix for the issue has been found and verifiedP1Blocker bugs or important featuresBlocker bugs or important featuresTGLApplies to Tiger LakeApplies to Tiger LakebugSomething isn't working as expectedSomething isn't working as expectedchromeChromebooks or ChromeOSChromebooks or ChromeOSmulticoreIssues observed when not only core#0 is used.Issues observed when not only core#0 is used.
Milestone
Description
Describe the bug
In DSM test where DSM component is run on CORE 1 and rest of topology on default CORE 0 after triggering pipelines start, playback pipeline stops copying data. Test were performed to check if PR #4088 fixes issue #3947. Root cause seems to be different - error is caused by pipeline XRUN visible in attached trace_logs.
Topology
+----------------------------------------------+
| +------+ +---+ +- -+ +---+ +-------+ |
| | Host |-->|Buf|-->|Dsm|-->|Buf|-->|SSP Dai|-------+
| +------+ +---+ +---+ +---+ +-------+ | |
+------------------+ ^ +-------------------+ |
| | | |
| +---+ | |
| |Buf| | |
| +---+ | |
+---^---+ |
+----------------------|------------------------+ |
| +------+ +---+ +-|--+ +---+ +-------+ | |
| | Host |<--|Buf|<--|Dmux|<--|Buf|<--|SSP Dai|<-----+
| +------+ +---+ +----+ +---+ +-------+ |
+-----------------------------------------------+
To Reproduce
Run Python test:
22_05_TestDsmMulticoreSsp48000Hz24b32b2ch or 22_05_TestDsmMulticoreSsp48000Hz32b32b2ch
with parameters:
--playback-iterations=100
Reproduction Rate
~2/100
Environment
- Name of the platform(s) on which the bug is observed.
- Platform: TGL B0 RVP
- Firmware branch name and commit
- Branch: main
- Hash: 3500d0e
- Config: defconfig + chromeconfig
- Config: defconfig
- Python tests branch name and commit
- Branch: master
- Hash: 825533f4e0d3ff5e2425abb50e9785916d7d1044
Metadata
Metadata
Assignees
Labels
Fix confirmedFix for the issue has been found and verifiedFix for the issue has been found and verifiedP1Blocker bugs or important featuresBlocker bugs or important featuresTGLApplies to Tiger LakeApplies to Tiger LakebugSomething isn't working as expectedSomething isn't working as expectedchromeChromebooks or ChromeOSChromebooks or ChromeOSmulticoreIssues observed when not only core#0 is used.Issues observed when not only core#0 is used.
Activity
keyonjie commentedon Apr 30, 2021
@zrombel do you mean PR #4088 is not enough to fix this? Can you help to do a quick check if PR #4089 help?
keyonjie commentedon Apr 30, 2021
#4089 can't address this issue, I can reproduce this and have some clue about it, but need to debug it after May vacation.
zrombel commentedon Apr 30, 2021
Description updated, bug is also present in build with def_config only.
lgirdwood commentedon Apr 30, 2021
This is an asynchronous scheduling issue. We have everything running synchronously on core 0 and DSM asynchronously (wrt core 0 pipeline copy status).
The fix is to make sure that
zrombel commentedon May 5, 2021
Just to share quick tests results:
Unfortunately #4089 doesn't fix DSM multicore issue. Results look very similar as main branch results.
Test info: Simple - 1 iteration, Stress 20 - 20 playback iterations, Stress 200 - 200 playback iterations
lgirdwood commentedon May 5, 2021
@zrombel thanks for the valuable info. This looks like a fix for rc2 and TGL12 is needed. @keyonjie we need to fix this in topology to account for the async nature of the work running on core0 and core1 with respect to each other.
keyonjie commentedon May 6, 2021
@lgirdwood @zrombel @slawblauciak I just root caused this today, will submit fix tomorrow.
keyonjie commentedon May 7, 2021
@zrombel I just updated my PR #4089 which address the stream stall issue at my end, can you help to try it?
zrombel commentedon May 7, 2021
Hi @keyonjie unfortunately stress test shows that #4089 doesn't fix this bug and stream stall still occurs.
Here are logs from the tests. Tests runs 20 playback iterations. Single core tests passes but in multicore tests pipelines stalls.
I attached single and multicore tests logs for comparison.
Keyon_ll_DSM_multicore_error.zip
keyonjie commentedon May 7, 2021
Thanks @zrombel as talked this only happen when only the DSM component is put on core1 (and all other components of the pipeline in Core 0), we should add logic to invalidate buffers when the producer and consumer of it are run on different cores.
lgirdwood commentedon May 10, 2021
I'm moving this to v1.9 the DSM feature works when the DSM pipeline is on core 1 but not the DSM component. i.e. the synchronization between DSM as a standalone component and its source and sink buffers needs aligned.
[-][BUG] DSM Multicore Stream Stall[/-][+][BUG] DSM standalone Multicore Stream Stall[/+]slawblauciak commentedon May 11, 2021
This is blocking the upcoming TGL release, bumping to P1.
zrombel commentedon May 11, 2021
This is fixed by #4089.
lgirdwood commentedon May 24, 2021
@zrombel @slawblauciak can we close now ?
zrombel commentedon May 24, 2021
Yes, closing.