-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Zync: a universal Zephyr synchronization primitive #48340
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
Closed
Closed
Changes from all commits
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
4587595
DO NOT REVIEW - SQUASHED PATCHES FROM #51924
andyross 44ecced
kernel: Add waitq "lazy init", move z_waitq_head()
andyross b83149a
tests/lib/ringbuffer: Use k_mutex, not sys_mutex
andyross 69486ab
subsys/tracing: Remove obj_tracking for semaphores and mutexes
andyross a05e2d4
kernel: Clean up DYNAMIC_OBJECTS vs. HEAP_MEM_POOL_SIZE
andyross 2406ef8
tests/sys_mutex: Fix scheduling/priority behavior
andyross d5814ea
tests/kernel/sys_mutex: Remove noop userspace test
andyross 648a8e1
tests/kernel/sched/metairq: Correct scheduling point behavior
andyross 8ea6928
kernel: Add k_zync, a universal Zephyr synchronization primitive.
andyross 2ddc12a
tests/kernel: Add zync unit test
andyross 2218a8c
tests/kernel/mutex_api: Adjust kobj type for zync
andyross 77ca333
tests/benchmarks/latency_measure: Needs recursive zyncs
andyross 7face79
kernel/sched: Refactor, unready_thread()
andyross 7956e7a
kernel/sched: refactor wake()
andyross d293aca
kernel/zync: Handle the case of aborted just-awoken threads
andyross 3b715e3
tests/kernel/zync: Add case for abort/recovery
andyross fccce4f
kernel/zync: Augment k_zync() timeout loop to be optionally stricter
andyross 988f530
tests/kernel/zync: Add a case to exercise strict timeouts
andyross File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Ok, but there are no trackers (or tracing) for zync :(
Isn't this downgrading Zephyr debug capabilities?
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.
Ah, good catch. Yeah, I'd removed these intending to add new ones for the new primitives and never got back to it. Will wire it up; is that a -1 or are you OK adding that after the initial merge?
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.
I don't have strong feelings, but I kinda think it's important to have tracing/tracking available from the get-go, as this is new stuff that may cause mysterious and subtle bugs on certain workloads, and having a nice way to debug zync behaviour would be really handy. Don't you think?
But I maybe overestimating tracing/tracking importance here...
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.
This needs to be reenabled as part of this PR or whatever removes it. We can't be dropping features with the promise to add them later.