scxtop: fixing missing process names #1694
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.
We now have process -> thread relationships setup so the grouping are good. However, for longer running processes it is quite common for the main thread to not run at all while we are tracing and this means we never get to capture its comm. This makes it hard to identify the process to which a bunch of threads belong as any
ProcessDescriptors
objects which have theprocess_name
Option unset causes the process thread (the thread group leader) to be labelled as "Process" in the resulting perfetto trace.The solution here is to simply go lookup the
comm
value in/proc
if it exists when scxtop exits. I'm not worried about pid reuse as trace times are too short for it to be a problem.An example of before the changes shows the current state with lots of processes being labelled with the default label:
Now virtually every process is labeled correctly (at least on my development machine).