-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
watchdog: Optimize WatchdogImpl::touch in preparation to more frequent petting of the watchdog. #13103
Merged
antoniovicente
merged 17 commits into
envoyproxy:master
from
antoniovicente:timeless_watchdog
Oct 20, 2020
Merged
watchdog: Optimize WatchdogImpl::touch in preparation to more frequent petting of the watchdog. #13103
Changes from 2 commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
bd92bc2
test: Change the GuarddogImpl's interlock so it is time agnostic.
antoniovicente e6afe7b
watchdog: Optimize WatchdogImpl::touch in preparation to more frequen…
antoniovicente 08ee875
prefer fetch_add over ++
antoniovicente 3b8b2a9
address review comments
antoniovicente 6b623b6
fix return type.
antoniovicente 3f962a1
fix spelling
antoniovicente bcad016
fix spelling more
antoniovicente d436eaf
Merge remote-tracking branch 'upstream/master' into timeless_watchdog
antoniovicente c971f62
Merge remote-tracking branch 'upstream/master' into timeless_watchdog
antoniovicente 1d5b149
Switch to atomic<bool> and acq_rel memory_order instead of seq_cst
antoniovicente e9db878
add comments
antoniovicente 5a3ecaf
Switch to relaxed memory order
antoniovicente 3b6313a
Kick CI
antoniovicente 8e54372
Merge remote-tracking branch 'upstream/master' into timeless_watchdog
antoniovicente 39dbb11
Merge remote-tracking branch 'upstream/master' into timeless_watchdog
antoniovicente fc49f33
Merge remote-tracking branch 'upstream/master' into timeless_watchdog
antoniovicente 9ee42f5
Kick CI
antoniovicente 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 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 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 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
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.
I'm not an atomics expert, but I'm pretty sure you can use
store
withmemory_order_relaxed
on this one, and usememory_order_relaxed
on the exchange above.The whole thing is eventually consistent so I'm not sure any ordering matters and that would probably be faster?
The only thing I'm not sure of is whether this would effect test determinism, however, if you are using locks to serialize the tests that should force consistency of all previous operations.
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'm no expert either. After thinking about it some more, I think you're totally right - relaxed memory order is sufficient here. Switched to that.