trace2: add macOS and Windows process ancestry tracing#2040
Open
mjcheetham wants to merge 4 commits intogitgitgadget:masterfrom
Open
trace2: add macOS and Windows process ancestry tracing#2040mjcheetham wants to merge 4 commits intogitgitgadget:masterfrom
mjcheetham wants to merge 4 commits intogitgitgadget:masterfrom
Conversation
In 353d3d7 (trace2: collect Windows-specific process information) Windows-specific process ancestry information was added as a data_json event to TRACE2. Furthermore in 2f732bf (tr2: log parent process name) similar functionality was added for Linux-based systems, using procfs. Teach Git to also log process ancestry on macOS using the sysctl with KERN_PROC to get process information (PPID and process name). Like the Linux implementation, we use the cmd_ancestry TRACE2 event rather than using a data_json event and creating another custom data point. Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
Include an implementation of trace2_collect_process_info for macOS. Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
In 353d3d7 (trace2: collect Windows-specific process information) we added process ancestry information for Windows to TRACE2 via a data_json event. It was only later in 2f732bf (tr2: log parent process name) that the specific cmd_ancestry event was added to TRACE2. In a future commit we will emit the ancestry information with the newer cmd_ancestry TRACE2 event. Right now, we rework this implementation of trace2_collect_process_info to separate the calculation of ancestors from building and emiting the JSON array via a data_json event. Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
Since 2f732bf (tr2: log parent process name) it is now possible to emit a specific process ancestry event in TRACE2. We should emit the Windows process ancestry data with the correct event type. To not break existing consumers of the data_json "windows/ancestry" event, we continue to emit the ancestry data as a JSON event. Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
Author
|
/preview |
|
Preview email sent as pull.2040.git.1770121400.gitgitgadget@gmail.com |
|
@mjcheetham don't forget to |
Author
|
/preview |
|
Preview email sent as pull.2040.git.1770202075.gitgitgadget@gmail.com |
dscho
approved these changes
Feb 5, 2026
Member
dscho
left a comment
There was a problem hiding this comment.
Looks good to me! I cannot speak for the correctness of the macOS-specific code, of course, but then, I don't think that any reviewer on the Git mailing list will go into that much depth (it's not Linux, after all...).
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
In 353d3d7 (trace2: collect Windows-specific process information)
Windows-specific process ancestry information was added as a data_json
event to TRACE2. Furthermore in 2f732bf (tr2: log parent process name)
similar functionality was added for Linux-based systems, using procfs.
Let's teach Git on macOS to also gather process ancestry information,
and emit it as a cmd_ancestry TRACE2 event.
Furthermore, let's refactor the Windows implementation to align with
the Linux and macOS versions - by emitting the ancestry information as
a cmd_ancestry event. We keep the older, custom data_json event type
on Windows for compatibility for consumers of the TRACE2 data that use
the older event.
Thanks,
Matthew
cc: gitster@pobox.com
cc: stolee@gmail.com
cc: johannes.schindelin@gmx.de