Write perfmap and jitdump files to /tmp by default [7.0 port] #89053
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.
Description
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
perftool 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/tmpbut this can be overridden with the$TMPDIRenvironment variable. This leads to incorrect behavior in environments where$TMPDIRis in use. This code change alters the behavior and will use/tmpregardless of$TMPDIRsettings. There is a minor fix included with this change that correctly sets perfmap location ifDOTNET_PerfMapJitDumpPathis set.This is a port of #88776 from .NET 8
Customer Impact
Internal partner teams have requested this change in .NET servicing
Regression?
Not a regression
Risk
Low, perfmaps+jitdumps is opt-in feature and we are only changing the default location where they are being written to