-
Notifications
You must be signed in to change notification settings - Fork 350
Re-enable trace filtering and implement DMA reset op #4793
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
4bc42bd to
2a638df
Compare
d63208d to
239b79b
Compare
|
@XiaoyunWu6666 can you give this PR and kernel PR 3617 above some stress test validation on CML platforms. Thanks ! |
lgirdwood
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, lets see what the stress testing brings. Fingers crossed !
eb3f4e4 to
6c32ab6
Compare
|
SOFCI TEST |
Yes,I will run daily test for this recipe and provide feedback ASAP. |
src/drivers/intel/hda/hda-dma.c
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need some timeout check here to wait for the flushing finish?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@keyonjie I checked this in the cavs fw and they do not have a wait before checking for GBUSY
Sorry, my bad - I mean thesofproject/linux#3167 |
revert the revert just for testing. This reverts commit d8a19a4. Signed-off-by: Ranjani Sridharan <[email protected]>
Add a new reset op in struct dma_ops that can be used to perform actions after the DMA is stopped during host_reset() and dai_reset(). Signed-off-by: Ranjani Sridharan <[email protected]>
Implement the reset op for HDA DMA. The recommended HW programming sequence for HDA DMA calls for keeping the DGCS_GEN bit set to 1 when the host DMA is stopped by the host. It should be cleared during the reset op and after resetting, the GBUSY bit must be verfied to ensure that the DMA is idle. Also, because we do not clear the GEN bit until dma_reset, skip checking for the status during start to avoid issues with restarting the DMA during pause release. Signed-off-by: Ranjani Sridharan <[email protected]>
Trace DMA needs to be reset after it has been stopped. Since there is no IPC for freeing trace, use the CTX_SAVE IPC to ensure that the trace DMA is reset and freed during suspend. Signed-off-by: Ranjani Sridharan <[email protected]>
6c32ab6 to
88795bd
Compare
|
@kkarask could you please check why the mergbuild is shows as failed but there are no failures shown? |
marc-hb
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please don't merge this before that DMA test workaround has been turned off:
thesofproject/sof-test#770
@kkarask could you please check why the mergbuild is shows as failed but there are no failures shown?
Which one? https://sof-ci.01.org/sof-pr-viewer/#/build/PR4793/build7359329 is all green.
Reporting failures without a link is not useful because the links change all the time.
|
Does this require thesofproject/linux#3167 ? If yes, what about backward compatibility with older kernels? https://sof-ci.01.org/sofpr/PR4793/build10449/devicetest/?model=ADLP_RVP_SDW&testcase=multiple-pause-resume-5 fails with one input/output error and a gazillion of underruns https://sof-ci.01.org/sofpr/PR4793/build10449/devicetest/?model=BYT_MB_NOCODEC&testcase=test-speaker has as lot of The underruns and the ERROR messages in the sof-logger have never caused any test to fail, part of our "green failures" culture :-( https://sof-ci.01.org/sofpr/PR4793/build10449/devicetest/?model=BDW_WSB_RT286&testcase=multiple-pause-resume-5 and https://sof-ci.01.org/sofpr/PR4793/build10449/devicetest/?model=BYT_MB_NOCODEC&testcase=multiple-pipeline-capture |
Got it, sorry I don't do double-negations :-) I recommend "restore commit 9fadef7" then.
It wasn't clear this PR is only for testing for now, it's not a draft and there's no [DNM] or [TEST] The original commit turned off two settings unrelated to each other. There was a rationale for turning off one but not for the other. |
It's actually a triple negation: Looks like triple is enough to confuse even the best: right now the PR name is "Re-enable trace filtering" which I now think is why I got confused. EDIT: it's actually a quadruple negation if you consider "filtering" as negative = less trace. So quadruple negation = more trace => more failures. |
no I will rename this to "Fix HD-DMA stop sequence" later on. and remove the first patch. If needed, whoever needs that can add it back. It doesnt belong in this series. |
|
FYI , run daily for CML platforms with kernel PR 3167 and sof PR 4793 again since @ranj063 has updated this PR. |
|
@ranj063 looks #4558 and #4779 does not appear with this PR along with Linux PR thesofproject/linux#3167 But I did see a bunch of underruns when multiple-pause-resume on three CML platforms: CML_RVP_SDW CML_SKU0983_SDW CML_SKU0955_HDA , causing the testcase to fail after all pause-resume finished. Also see ipc error when PCM_FREE on CML_SKU0955_HDA , when multiple-pipeline-playback |
|
closing this one for now. Will open a new one |
|
#4820 seems related. |
This reverts commit d8a19a4 to re-enable trace filtering.
And introduces the reset op in DMA ops to perform actions that must be preceded by DMA stop on the host-side.
This along with Linux PR thesofproject/linux#3167 fixes #4479 and #4558