Debug: Remove Excess System Calls #4052
Merged
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.
Proposed Changes
On Linux, every single debug() event was resulting in the following system calls:
With the sort of extensive debugging output emitted by taskvine, the cost of debug messages was becoming surprisingly high. This PR reduces the cost to:
Note that getpid() was previously cached and the system call optimized away, but this is no longer true:
https://sourceware.org/glibc/wiki/Release/2.25#pid_cache_removal
It turns out that it is surprisingly hard to catch all variations of fork() in order to invalidate such a cached value.
Maybe we don't need to write it to every debug line?
Merge Checklist
The following items must be completed before PRs can be merged.
Check these off to verify you have completed all steps.
make test
Run local tests prior to pushing.make format
Format source code to comply with lint policies. Note that some lint errors can only be resolved manually (e.g., Python)make lint
Run lint on source code prior to pushing.