Skip to content
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

Merged
merged 1 commit into from
Mar 11, 2024

Conversation

kv2019i
Copy link
Collaborator

@kv2019i kv2019i commented Mar 6, 2024

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.

@kv2019i
Copy link
Collaborator Author

kv2019i commented Mar 6, 2024

Subset of #8753 that was never merged. This commit is part of the Intel mtl-008-drop-stable branch.

@lyakh
Copy link
Collaborator

lyakh commented Mar 7, 2024

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

@kv2019i
Copy link
Collaborator Author

kv2019i commented Mar 7, 2024

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>
@kv2019i kv2019i force-pushed the 202403-idc-send-add-timeout branch from 946daa5 to 902a9a2 Compare March 7, 2024 19:25
@kv2019i
Copy link
Collaborator Author

kv2019i commented Mar 8, 2024

@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));
Copy link
Collaborator

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

@kv2019i
Copy link
Collaborator Author

kv2019i commented Mar 11, 2024

Now passing, merging.

@kv2019i kv2019i merged commit b97f81a into thesofproject:main Mar 11, 2024
38 of 44 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants