Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix r2r manual instrumentation issue in .NET 9 x86 #6286

Merged
merged 1 commit into from
Nov 15, 2024

Conversation

andrewlock
Copy link
Member

Summary of changes

Unskip the Windows .NET 9 x86 ready2run tes

Reason for change

I skipped this in the original .NET 9 PR because it was failing by failing to find the installed .NET host. This fixes the test and unskips it.

Implementation details

When we install the x86 SDKs in CI, we install them into a non-standard directory for "reasons". How the dotnet host "finds" the runtime has changed in .NET 9, so hooked into the new functionality by specifying DOTNET_ROOT(x86).

Test coverage

A tiny bit more now...

Other details

We maybe should set this in all cases, but mostly it's not required as we call dotnet app.dll using the 32 bit host explicitly.

@andrewlock andrewlock added the area:builds project files, build scripts, pipelines, versioning, releases, packages label Nov 14, 2024
@andrewlock andrewlock requested a review from a team as a code owner November 14, 2024 13:43
@andrewlock andrewlock mentioned this pull request Nov 14, 2024
9 tasks
@github-actions github-actions bot added the area:tests unit tests, integration tests label Nov 14, 2024
@datadog-ddstaging
Copy link

datadog-ddstaging bot commented Nov 14, 2024

Datadog Report

Branch report: andrew/dotnet-9-try-fix-r2r
Commit report: e721ac9
Test service: dd-trace-dotnet

✅ 0 Failed, 456819 Passed, 2759 Skipped, 19h 18m 55.18s Total Time

@andrewlock
Copy link
Member Author

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6286) - mean (73ms)  : 62, 84
     .   : milestone, 73,
    master - mean (71ms)  : 65, 77
     .   : milestone, 71,

    section CallTarget+Inlining+NGEN
    This PR (6286) - mean (1,110ms)  : 1092, 1128
     .   : milestone, 1110,
    master - mean (1,106ms)  : 1082, 1131
     .   : milestone, 1106,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6286) - mean (108ms)  : 106, 110
     .   : milestone, 108,
    master - mean (108ms)  : 106, 110
     .   : milestone, 108,

    section CallTarget+Inlining+NGEN
    This PR (6286) - mean (769ms)  : 750, 787
     .   : milestone, 769,
    master - mean (773ms)  : 759, 788
     .   : milestone, 773,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6286) - mean (92ms)  : 90, 95
     .   : milestone, 92,
    master - mean (93ms)  : 89, 97
     .   : milestone, 93,

    section CallTarget+Inlining+NGEN
    This PR (6286) - mean (725ms)  : 712, 738
     .   : milestone, 725,
    master - mean (728ms)  : 710, 746
     .   : milestone, 728,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6286) - mean (191ms)  : 185, 196
     .   : milestone, 191,
    master - mean (190ms)  : 187, 194
     .   : milestone, 190,

    section CallTarget+Inlining+NGEN
    This PR (6286) - mean (1,225ms)  : 1204, 1247
     .   : milestone, 1225,
    master - mean (1,227ms)  : 1201, 1254
     .   : milestone, 1227,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6286) - mean (277ms)  : 272, 281
     .   : milestone, 277,
    master - mean (276ms)  : 270, 282
     .   : milestone, 276,

    section CallTarget+Inlining+NGEN
    This PR (6286) - mean (946ms)  : 931, 961
     .   : milestone, 946,
    master - mean (945ms)  : 919, 971
     .   : milestone, 945,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6286) - mean (266ms)  : 262, 269
     .   : milestone, 266,
    master - mean (265ms)  : 260, 271
     .   : milestone, 265,

    section CallTarget+Inlining+NGEN
    This PR (6286) - mean (929ms)  : 913, 945
     .   : milestone, 929,
    master - mean (929ms)  : 914, 945
     .   : milestone, 929,

Loading

@andrewlock
Copy link
Member Author

Throughput/Crank Report ⚡

Throughput results for AspNetCoreSimpleController comparing the following branches/commits:

Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red.

Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards!

gantt
    title Throughput Linux x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (6286) (11.112M)   : 0, 11112012
    master (11.174M)   : 0, 11173945
    benchmarks/2.9.0 (11.033M)   : 0, 11032866

    section Automatic
    This PR (6286) (7.042M)   : 0, 7041542
    master (7.312M)   : 0, 7312280
    benchmarks/2.9.0 (7.786M)   : 0, 7785853

    section Trace stats
    master (7.553M)   : 0, 7553254

    section Manual
    master (11.102M)   : 0, 11101684

    section Manual + Automatic
    This PR (6286) (6.541M)   : 0, 6541434
    master (6.740M)   : 0, 6739647

    section DD_TRACE_ENABLED=0
    master (10.282M)   : 0, 10282028

Loading
gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (6286) (9.647M)   : 0, 9646981
    master (9.530M)   : 0, 9530431
    benchmarks/2.9.0 (9.495M)   : 0, 9494821

    section Automatic
    This PR (6286) (6.380M)   : 0, 6380233
    master (6.395M)   : 0, 6394628

    section Trace stats
    master (6.680M)   : 0, 6679934

    section Manual
    master (9.631M)   : 0, 9630609

    section Manual + Automatic
    This PR (6286) (5.942M)   : 0, 5941618
    master (5.995M)   : 0, 5995215

    section DD_TRACE_ENABLED=0
    master (8.922M)   : 0, 8921645

Loading
gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (6286) (9.894M)   : 0, 9894472
    master (9.758M)   : 0, 9758058
    benchmarks/2.9.0 (10.020M)   : 0, 10019592

    section Automatic
    This PR (6286) (6.131M)   : crit ,0, 6130796
    master (6.513M)   : 0, 6512759
    benchmarks/2.9.0 (7.255M)   : 0, 7255257

    section Trace stats
    master (7.074M)   : 0, 7073637

    section Manual
    master (9.827M)   : 0, 9827350

    section Manual + Automatic
    This PR (6286) (5.860M)   : 0, 5859601
    master (5.944M)   : 0, 5943752

    section DD_TRACE_ENABLED=0
    master (9.348M)   : 0, 9348488

Loading

@andrewlock andrewlock merged commit a95602a into master Nov 15, 2024
60 of 64 checks passed
@andrewlock andrewlock deleted the andrew/dotnet-9-try-fix-r2r branch November 15, 2024 16:03
@github-actions github-actions bot added this to the vNext-v3 milestone Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:builds project files, build scripts, pipelines, versioning, releases, packages area:tests unit tests, integration tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants