Repository navigation
Trigger STOP and PAUSE from the pipeline task too - #4724
Conversation
There was a problem hiding this comment.
Can you state the new stop/pause flow in the commit message. I assume we dont have any race for sending reply IPCs that the stream has been stopped or paused.
@lgirdwood yes, it's still a draft :-) Something broke down along the way, investigating |
|
Can one of the admins verify this patch? |
|
@kkarask @wszypelt can you guys have a look at the CI, I cant see lots of timeout messages (I'm looking at the top red row in the test results) but I cant see the IPC message that is timing out ? Can someone check here, I could be missing something or misunderstanding the logs ? Thanks. I cant see the IPC that is timing out. |
|
@lgirdwood I can see that error in the log.log file like here: Please check log.log files. |
Sorry @kkarask, what I mean is that the error message does not say which IPC has timed out (and there is a lot of IPC traffic in that log) I assume it's but had to search through. |
|
@lgirdwood yes, it is the last IPC from FW logs: In test logs there are no StreamTrigStop received, so timeout occurred. |
9fd7d25 to
2cbca89
Compare
lgirdwood
left a comment
There was a problem hiding this comment.
I wonder if we can get the cosmetic updates in now whilst work continues on the trigger ?
|
BYT looks like a network or DUT issue. redo CI. |
|
SOFCI TEST |
887fe28 to
8b61536
Compare
|
The previous version was failing all slim-driver tests because all of them issue an IPC sequence of PAUSE + STOP, which never seems to occur under Linux. The reason why this was failing was also rather simple: PAUSE stops the pipeline task and when STOP arrives, the firmware tries to schedule its processing on the pipeline task too, which isn't running any more... I added support for this case and it fixed most of the tests but some are still failing, and the failure looks exactly the same: PAUSE + STOP and the STOP is never replied to. @kkarask @wszypelt any idea what might be different with the still failing cases? Debugging is even more difficult because the DSP logs are truncated, they don't contain the latest entries, so, adding debugging wouldn't help. |
d0612d0 to
4a3cd58
Compare
|
@marc-hb It looks like the logs took a bit more time and are already available at the link below. |
|
@wszypelt I think there's an error in this your test: As far as I can see from the sources it isn't fatal, in fact it gets ignored by the code, but you might want to correct it. |
|
@lyakh Thanks for the info, I will look at it together with our test developer. |
|
@wszypelt thanks for re-running the tests. @lgirdwood ignoring |
|
@wszypelt could you also have the following fixed in this test: usually a correct IPC looks in your log something like which means, that this is an IPC That says, that it's sending an IPC code of 0xC8000000, but the raw dump shows a value of 0. Further, 0xc8000000 isn't a valid IPC command either. What the firmware is receiving though is a 0x40080000 code - |
@lyakh Sure thing, we'll try to fix it |
Is that the expected log @lyakh ? |
@fspychala yes, thanks! |
|
@lyakh do you have everything you need now ? |
@lgirdwood the improvement is good - it shows now data consistent with the firmware log, that makes understanding of these logs easier for future tests. But I don't think this lets me debug and fix this issue if this is what you meant? |
|
CI: the single failure definitely has nothing to do with this PR: |
@lgirdwood yes, we've briefly discussed this with @ranj063 - IIUC with her change there will be an additional IPC before STOP. So, it will also have to be moved to the pipeline task... And so far moving IPCs to the task have been rather complicated. The basic move is pretty simple - just set If we push @ranj063's PR first, I think we'll have to redo this one. We'll have to first move that new additional IPC to the task, then STOP, since it comes after it. But anyway, I think the order should just go with the project time-line / importance? |
Yep, we need to fix the HDA bug first and redo this a little afterwards.. |
@lgirdwood looks like (fortunately) I was wrong - no changes are required, any changes, that @ranj063's PR have introduced occur after |
A recent commit moved START and RESUME trigger processing to the pipeline task for timer domain pipelines. This patch does the same for STOP and PAUSE. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Improve readability by moving a block of code into a function. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Fix trace messages after moving them into different functions. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Move a static function closer to where it is used. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
|
CI: https://sof-ci.01.org/sofpr/PR4724/build10823/devicetest/?model=CML_RVP_SDW&testcase=check-suspend-resume-with-playback-5 is a timeout in one of the suspend-resume tests and https://sof-ci.01.org/sofpr/PR4724/build10823/devicetest/?model=BYT_MB_NOCODEC&testcase=check-alsabat-headset-playback is an alsabat test on BYT, neither should be related. |
|
Tentative revert in #4920 |

START and RELEASE are already done in task context, move STOP and PAUSE there too.