Write perfmap and jitdump files to /tmp by default #88776
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.
Perfmaps and Jitdumps is a Linux kernel feature that allows .NET to symbolicate dynamically generated code with perf_events. The perfmap/jitdump files are processed by the the Linux
perf
tool to generate human readable callstacks for CPU traces, for example. The Linux implementation looks for the perfmap/jitdump files in/tmp
(please see https://elixir.bootlin.com/linux/v6.4.3/source/tools/perf/util/symbol.c#L1838). The .NET implementation defaults to writing to/tmp
but this can be overridden with the$TMPDIR
environment variable. This leads to incorrect behavior in environments where$TMPDIR
is in use. This code change alters the behavior and will use/tmp
regardless of$TMPDIR
settings. There is a minor fix included with this change that correctly sets perfmap location ifDOTNET_PerfMapJitDumpPath
is set.