Skip to content

arm64: core: force data synchronization between context switch #89929

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

Merged

Conversation

schouleur-sc
Copy link
Contributor

This patch fixes memory corruption that can happen when running in multi-thread and multi-core environment with heavy scheduling stress.

In SMP configuration, we must ensure that all thread's context is stored before writing the switch_handle flag. Otherwise some of the thread context writes could be delayed after another CPU begins to schedule this thread which could lead to memory corruptions.

This patch fixes memory corruption that can happen when running in
multi-thread and multi-core environment with heavy scheduling stress.

In SMP configuration, we must ensure that all thread's context is
stored before writing the switch_handle flag. Otherwise some of the
thread context writes could be delayed after another CPU begins to
schedule this thread which could lead to memory corruptions.

Signed-off-by: Sylvain Chouleur <schouleur@snapchat.com>
Copy link

Hello @schouleur-sc, and thank you very much for your first pull request to the Zephyr project!
Our Continuous Integration pipeline will execute a series of checks on your Pull Request commit messages and code, and you are expected to address any failures by updating the PR. Please take a look at our commit message guidelines to find out how to format your commit messages, and at our contribution workflow to understand how to update your Pull Request. If you haven't already, please make sure to review the project's Contributor Expectations and update (by amending and force-pushing the commits) your pull request if necessary.
If you are stuck or need help please join us on Discord and ask your question there. Additionally, you can escalate the review when applicable. 😊

Copy link

@schouleur-sc
Copy link
Contributor Author

schouleur-sc commented May 26, 2025

Hi, can we merge this?
Thanks
Sylvain

@kartben kartben merged commit a8b3238 into zephyrproject-rtos:main May 26, 2025
31 checks passed
Copy link

Hi @schouleur-sc!
Congratulations on getting your very first Zephyr pull request merged 🎉🥳. This is a fantastic achievement, and we're thrilled to have you as part of our community!

To celebrate this milestone and showcase your contribution, we'd love to award you the Zephyr Technical Contributor badge. If you're interested, please claim your badge by filling out this form: Claim Your Zephyr Badge.

Thank you for your valuable input, and we look forward to seeing more of your contributions in the future! 🪁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: ARM64 ARM (64-bit) Architecture
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants