-
Notifications
You must be signed in to change notification settings - Fork 322
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
idc: zephyr: add a timeout to blocking IDC send #8911
idc: zephyr: add a timeout to blocking IDC send #8911
Conversation
Subset of #8753 that was never merged. This commit is part of the Intel mtl-008-drop-stable branch. |
wouldn't expect CI to be so unhappy about this, is it an existing unrelated regression? https://sof-ci.01.org/sofpr/PR8911/build3147/devicetest/index.html?model=MTLP_RVP_NOCODEC&testcase=check-playback-3times |
The "Intel CI System/merge/build" fail seems to be an infra problem, I see fail on step "UPDATE BUILD.JSON ON STORAGE" (build id 13680274). Will refresh the PR. In https://sof-ci.01.org/sofpr/PR8911/build3147/devicetest/index.html we hit a case of #8642 |
Replace infinite wait with a time-limited wait. In case a blocking IDC message is not handled within IDC_TIMEOUT, return an error instead of waiting. This allows to debug stuck core-to-core communication easier. Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
946daa5
to
902a9a2
Compare
@wszypelt Can you check this as well? I've triggered a few times and the errors don't seem to be in the test runs. |
@@ -151,7 +151,7 @@ int idc_send_msg(struct idc_msg *msg, uint32_t mode) | |||
|
|||
switch (mode) { | |||
case IDC_BLOCKING: | |||
ret = k_p4wq_wait(work, K_FOREVER); | |||
ret = k_p4wq_wait(work, K_USEC(IDC_TIMEOUT)); |
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.
IDC_TIMEOUT
is currently 10ms, should be enough
Now passing, merging. |
Replace infinite wait with a time-limited wait. In case a blocking IDC message is not handled within IDC_TIMEOUT, return an error instead of waiting. This allows to debug stuck core-to-core communication easier.