You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[BUG] multiple-pause-resume.sh sof-test fails to FW_GEN_MSG failed with err 3018 #8792
Describe the bug
The multiple-pause-resume.sh sof-test started to fail with latest Zephyr on Intel cAVS2.5 based platforms (TGL, ADL). First seen on #8764
To Reproduce
Build SOF with recent Zephyr, run sof-test.
Reproduction Rate
50+%
Expected behavior
Chain-dma host dma stop fails
Impact
SOF CI PR tests are failing with high rate
Environment
Branch name and commit hash of the 2 repositories: sof (firmware/topology) and linux (kernel driver).
See [DNM] Zephyr smp rework #8764
zephyrproject-rtos/zephyr#68101 didn't work. 5000us is a REALLY long time to wait already and we still had fails, so something else goes wrong. On other platforms using chain-dma, this is not seeing, making this quite curious. Seems to be specific to cAVS2.5.
I now suspect the DMA stop problem the Zephyr update uncovers, is actually a problem in our host DMA stop sequence. With current kernel and SOF, the order of stop seems wrong:
CHAIN_DMA IPC is sent -> this clears DGCS_GEN and DGCS_FIFORDY bits to stop the DMA (in Zephyr driver)
BE trigger is run in kernel and this clears the RUN bit on host side
As far as I can tell, this is against the recommended programming flow. With lcoal stress tests thesofproject/linux#4798 seems to fix the issue (GBUSY no longer stuck), but more stress testing is needed.
Activity
kv2019i commentedon Jan 25, 2024
zephyrproject-rtos/zephyr#68101 didn't work. 5000us is a REALLY long time to wait already and we still had fails, so something else goes wrong. On other platforms using chain-dma, this is not seeing, making this quite curious. Seems to be specific to cAVS2.5.
ASoC: SOF: ipc4: change trigger order for chain DMA
kv2019i commentedon Jan 26, 2024
I now suspect the DMA stop problem the Zephyr update uncovers, is actually a problem in our host DMA stop sequence. With current kernel and SOF, the order of stop seems wrong:
As far as I can tell, this is against the recommended programming flow. With lcoal stress tests thesofproject/linux#4798 seems to fix the issue (GBUSY no longer stuck), but more stress testing is needed.
FYI @jsarha @ujfalusi @plbossart @ranj063 @RanderWang
chain_dma: workaround for failed DMA stop on pause/stop
chain_dma: workaround for failed DMA stop on pause/stop
chain_dma: workaround for failed DMA stop on pause/stop
chain_dma: workaround for failed DMA stop on pause/stop
chain_dma: workaround for failed DMA stop on pause/stop
kv2019i commentedon Jan 30, 2024
Tried a combination of zephyrproject-rtos/zephyr#68304 and thesofproject/linux#4798 but still fails
chain_dma: workaround for failed DMA stop on pause/stop
kv2019i commentedon Jan 31, 2024
This kernel PR thesofproject/linux#4801 seem to help. One test plan (#37589) has passed, err 3018 not seen at all.
kv2019i commentedon Feb 1, 2024
A test PR with a Zephyr-side fix for the issue -> #8826
kv2019i commentedon Mar 6, 2024
Issue closed with zephyrproject-rtos/zephyr#68415 merged via #8903 today.
drivers: dma: intel-adsp-hda: increase stop timeout to 5000us