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

[Profiler] Fix a potential bug in libunwind-datadog #4366

Merged
merged 1 commit into from
Jul 7, 2023

Conversation

gleocadie
Copy link
Collaborator

Summary of changes

Fix a potential bug.

Reason for change

When calling uwn_backtrace, there is a copy of the current thread context. This is done before tdep_trace modifies that context and we may end up crashing the application. If tdep_trace fails, we fallback to a slow_backtrace passing the copied context. But this context could have been modified by the failed call to tdep_trace and this could be problematic.
Instead, before calling slow_backtrace, we copy the context.

Implementation details

The fix is DataDog/libunwind@6d2016d

Test coverage

Other details

@gleocadie gleocadie requested a review from a team as a code owner July 6, 2023 09:17
@github-actions github-actions bot added the area:profiler Issues related to the continous-profiler label Jul 6, 2023
@datadog-ddstaging
Copy link

datadog-ddstaging bot commented Jul 6, 2023

Datadog Report

Branch report: gleocadie/use-new-version-of-custom-libunwind
Commit report: 056d4df

❄️ dd-trace-dotnet: 0 Failed, 1 New Flaky, 290911 Passed, 1026 Skipped, 29m 52.78s Wall Time

New Flaky Tests (1)

  • NoExceptions - Datadog.Trace.ClrProfiler.IntegrationTests.SmokeTests.AssemblyResolveMscorlibResourcesInfiniteRecursionCrashSmokeTest - Last Failure

    Expand for error
     Expected no errors in smoke test: open(/proc/10948/mem) FAILED 2 (No such file or directory)
     
     Expected: True
     Actual:   False
    

@andrewlock
Copy link
Member

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 (4366) - mean (3,041ms)  : 2937, 3145
     .   : milestone, 3041,
    master - mean (3,013ms)  : 2892, 3135
     .   : milestone, 3013,

    section CallTarget+Inlining+NGEN
    This PR (4366) - mean (3,833ms)  : 3734, 3933
     .   : milestone, 3833,
    master - mean (3,857ms)  : 3759, 3955
     .   : milestone, 3857,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4366) - mean (3,133ms)  : 3023, 3243
     .   : milestone, 3133,
    master - mean (3,139ms)  : 3013, 3266
     .   : milestone, 3139,

    section CallTarget+Inlining+NGEN
    This PR (4366) - mean (3,642ms)  : 3575, 3710
     .   : milestone, 3642,
    master - mean (3,644ms)  : 3543, 3745
     .   : milestone, 3644,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4366) - mean (3,113ms)  : 2980, 3247
     .   : milestone, 3113,
    master - mean (3,106ms)  : 2974, 3238
     .   : milestone, 3106,

    section CallTarget+Inlining+NGEN
    This PR (4366) - mean (3,614ms)  : 3527, 3702
     .   : milestone, 3614,
    master - mean (3,612ms)  : 3558, 3666
     .   : milestone, 3612,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4366) - mean (191ms)  : 186, 196
     .   : milestone, 191,
    master - mean (192ms)  : 189, 195
     .   : milestone, 192,

    section CallTarget+Inlining+NGEN
    This PR (4366) - mean (1,111ms)  : 1083, 1139
     .   : milestone, 1111,
    master - mean (1,118ms)  : 1087, 1148
     .   : milestone, 1118,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4366) - mean (373ms)  : 365, 381
     .   : milestone, 373,
    master - mean (374ms)  : 366, 381
     .   : milestone, 374,

    section CallTarget+Inlining+NGEN
    This PR (4366) - mean (1,172ms)  : 1146, 1198
     .   : milestone, 1172,
    master - mean (1,174ms)  : 1153, 1196
     .   : milestone, 1174,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4366) - mean (360ms)  : 353, 367
     .   : milestone, 360,
    master - mean (363ms)  : 358, 368
     .   : milestone, 363,

    section CallTarget+Inlining+NGEN
    This PR (4366) - mean (1,119ms)  : 1092, 1146
     .   : milestone, 1119,
    master - mean (1,131ms)  : 1100, 1162
     .   : milestone, 1131,

Loading

@andrewlock
Copy link
Member

Benchmarks Report 🐌

Benchmarks for #4366 compared to master:

  • 2 benchmarks are faster, with geometric mean 1.146
  • 2 benchmarks are slower, with geometric mean 1.162
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

  • Mann–Whitney U test with statistical test for significance of 5%
  • Only results indicating a difference greater than 10% and 0.3 ns are considered.

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 485μs 440ns 1.71μs 0 0 0 2.62 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 646μs 347ns 1.3μs 0 0 0 2.63 KB
master WriteAndFlushEnrichedTraces net472 802μs 256ns 991ns 0.398 0 0 3.22 KB
#4366 WriteAndFlushEnrichedTraces net6.0 462μs 297ns 1.15μs 0 0 0 2.62 KB
#4366 WriteAndFlushEnrichedTraces netcoreapp3.1 620μs 475ns 1.84μs 0 0 0 2.63 KB
#4366 WriteAndFlushEnrichedTraces net472 792μs 211ns 819ns 0.396 0 0 3.22 KB
Benchmarks.Trace.AppSecBodyBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #4366

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑net6.0 1.115 116.54 129.89

Faster 🎉 in #4366

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.ObjectExtractorMoreComplexBody‑net6.0 1.144 3,396.08 2,969.20

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 38.6μs 7.63ns 27.5ns 0.0198 0 0 1.65 KB
master AllCycleSimpleBody netcoreapp3.1 41.5μs 45.1ns 169ns 0.0205 0 0 1.63 KB
master AllCycleSimpleBody net472 42.5μs 20.5ns 79.6ns 0.254 0 0 1.69 KB
master AllCycleMoreComplexBody net6.0 220μs 82.4ns 319ns 0.109 0 0 9.22 KB
master AllCycleMoreComplexBody netcoreapp3.1 231μs 336ns 1.3μs 0.115 0 0 9.12 KB
master AllCycleMoreComplexBody net472 237μs 65.7ns 246ns 1.42 0 0 9.28 KB
master ObjectExtractorSimpleBody net6.0 117ns 0.0391ns 0.146ns 0.00395 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 175ns 0.211ns 0.816ns 0.0037 0 0 272 B
master ObjectExtractorSimpleBody net472 149ns 0.0622ns 0.233ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 3.42μs 13.9ns 66.7ns 0.0543 0 0 3.88 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.02μs 1.02ns 3.8ns 0.0503 0 0 3.78 KB
master ObjectExtractorMoreComplexBody net472 4.13μs 1.38ns 4.96ns 0.618 0.0062 0 3.89 KB
#4366 AllCycleSimpleBody net6.0 38.9μs 14.2ns 54.9ns 0.0195 0 0 1.65 KB
#4366 AllCycleSimpleBody netcoreapp3.1 40.8μs 19.8ns 71.4ns 0.0203 0 0 1.63 KB
#4366 AllCycleSimpleBody net472 41.8μs 13ns 50.4ns 0.265 0 0 1.69 KB
#4366 AllCycleMoreComplexBody net6.0 220μs 55.5ns 215ns 0.11 0 0 9.22 KB
#4366 AllCycleMoreComplexBody netcoreapp3.1 231μs 762ns 3.05μs 0.115 0 0 9.12 KB
#4366 AllCycleMoreComplexBody net472 239μs 110ns 380ns 1.43 0 0 9.28 KB
#4366 ObjectExtractorSimpleBody net6.0 130ns 0.0541ns 0.202ns 0.00394 0 0 280 B
#4366 ObjectExtractorSimpleBody netcoreapp3.1 179ns 0.123ns 0.461ns 0.00372 0 0 272 B
#4366 ObjectExtractorSimpleBody net472 145ns 0.0771ns 0.299ns 0.0446 0 0 281 B
#4366 ObjectExtractorMoreComplexBody net6.0 2.97μs 1.63ns 6.33ns 0.055 0 0 3.88 KB
#4366 ObjectExtractorMoreComplexBody netcoreapp3.1 3.99μs 1.87ns 6.98ns 0.0519 0 0 3.78 KB
#4366 ObjectExtractorMoreComplexBody net472 4.24μs 1.65ns 5.95ns 0.618 0.00635 0 3.89 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 168μs 86.9ns 337ns 0.168 0 0 18.03 KB
master SendRequest netcoreapp3.1 187μs 344ns 1.33μs 0.187 0 0 20.09 KB
master SendRequest net472 0.001ns 0.000354ns 0.00137ns 0 0 0 0 b
#4366 SendRequest net6.0 169μs 77.8ns 291ns 0.253 0 0 18.03 KB
#4366 SendRequest netcoreapp3.1 189μs 258ns 999ns 0.189 0 0 20.09 KB
#4366 SendRequest net472 0.00116ns 0.000492ns 0.00191ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 527μs 329ns 1.27μs 0.519 0 0 41.75 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 642μs 925ns 3.46μs 0.322 0 0 41.84 KB
master WriteAndFlushEnrichedTraces net472 823μs 3.72μs 13.9μs 8.06 2.42 0.403 53.23 KB
#4366 WriteAndFlushEnrichedTraces net6.0 517μs 438ns 1.64μs 0.762 0 0 41.68 KB
#4366 WriteAndFlushEnrichedTraces netcoreapp3.1 636μs 909ns 3.4μs 0.324 0 0 41.67 KB
#4366 WriteAndFlushEnrichedTraces net472 790μs 3.85μs 15.9μs 8.1 2.31 0.386 53.24 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 883ns 0.226ns 0.845ns 0.0101 0 0 720 B
master ExecuteNonQuery netcoreapp3.1 1.18μs 0.494ns 1.91ns 0.00924 0 0 720 B
master ExecuteNonQuery net472 1.41μs 0.867ns 3.36ns 0.108 0.000708 0 682 B
#4366 ExecuteNonQuery net6.0 902ns 0.334ns 1.25ns 0.0101 0 0 720 B
#4366 ExecuteNonQuery netcoreapp3.1 1.09μs 0.527ns 1.83ns 0.00973 0 0 720 B
#4366 ExecuteNonQuery net472 1.39μs 0.456ns 1.71ns 0.108 0.000696 0 682 B
Benchmarks.Trace.ElasticsearchBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #4366

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net6.0 1.212 957.94 1,160.84

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 958ns 0.4ns 1.55ns 0.0133 0 0 944 B
master CallElasticsearch netcoreapp3.1 1.19μs 0.855ns 3.72ns 0.0125 0 0 944 B
master CallElasticsearch net472 2.04μs 0.587ns 2.27ns 0.151 0.00102 0 955 B
master CallElasticsearchAsync net6.0 1.12μs 0.401ns 1.45ns 0.0126 0 0 920 B
master CallElasticsearchAsync netcoreapp3.1 1.33μs 0.325ns 1.22ns 0.0134 0 0 992 B
master CallElasticsearchAsync net472 2.19μs 0.773ns 2.99ns 0.16 0.0011 0 1.01 KB
#4366 CallElasticsearch net6.0 1.16μs 0.47ns 1.82ns 0.0133 0 0 944 B
#4366 CallElasticsearch netcoreapp3.1 1.24μs 0.649ns 2.51ns 0.0129 0 0 944 B
#4366 CallElasticsearch net472 2μs 0.451ns 1.69ns 0.152 0.000997 0 955 B
#4366 CallElasticsearchAsync net6.0 1.13μs 0.274ns 1.06ns 0.0126 0 0 920 B
#4366 CallElasticsearchAsync netcoreapp3.1 1.33μs 1.26ns 4.87ns 0.0133 0 0 992 B
#4366 CallElasticsearchAsync net472 2.19μs 0.537ns 2.01ns 0.16 0.0011 0 1.01 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.18μs 0.28ns 1.05ns 0.013 0 0 912 B
master ExecuteAsync netcoreapp3.1 1.44μs 0.22ns 0.76ns 0.0126 0 0 912 B
master ExecuteAsync net472 1.54μs 0.562ns 2.1ns 0.139 0.000772 0 875 B
#4366 ExecuteAsync net6.0 1.22μs 0.43ns 1.67ns 0.0128 0 0 912 B
#4366 ExecuteAsync netcoreapp3.1 1.3μs 3.68ns 14.2ns 0.0124 0 0 912 B
#4366 ExecuteAsync net472 1.55μs 0.971ns 3.63ns 0.139 0.00155 0.000776 875 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 3.75μs 1.08ns 4.17ns 0.0262 0 0 1.9 KB
master SendAsync netcoreapp3.1 4.4μs 1.38ns 5.15ns 0.0331 0 0 2.43 KB
master SendAsync net472 6.91μs 3.28ns 12.7ns 0.476 0 0 3 KB
#4366 SendAsync net6.0 3.56μs 1.07ns 4.01ns 0.0271 0 0 1.9 KB
#4366 SendAsync netcoreapp3.1 4.22μs 1.52ns 5.7ns 0.0336 0 0 2.43 KB
#4366 SendAsync net472 6.86μs 1.77ns 6.87ns 0.477 0 0 3 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.28μs 0.53ns 2.05ns 0.023 0 0 1.62 KB
master EnrichedLog netcoreapp3.1 1.83μs 0.997ns 3.86ns 0.0219 0 0 1.62 KB
master EnrichedLog net472 2.31μs 1.98ns 7.41ns 0.244 0 0 1.54 KB
#4366 EnrichedLog net6.0 1.33μs 0.773ns 2.89ns 0.0229 0 0 1.62 KB
#4366 EnrichedLog netcoreapp3.1 1.92μs 0.581ns 2.17ns 0.0221 0 0 1.62 KB
#4366 EnrichedLog net472 2.5μs 3.22ns 12.5ns 0.244 0 0 1.54 KB
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 110μs 108ns 403ns 0.0549 0 0 4.21 KB
master EnrichedLog netcoreapp3.1 118μs 167ns 647ns 0 0 0 4.21 KB
master EnrichedLog net472 149μs 224ns 868ns 0.664 0.221 0 4.38 KB
#4366 EnrichedLog net6.0 111μs 204ns 790ns 0.055 0 0 4.21 KB
#4366 EnrichedLog netcoreapp3.1 116μs 112ns 421ns 0 0 0 4.21 KB
#4366 EnrichedLog net472 148μs 55.5ns 215ns 0.669 0.223 0 4.38 KB
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 3.17μs 1.29ns 4.98ns 0.0518 0 0 3.71 KB
master EnrichedLog netcoreapp3.1 3.68μs 2.86ns 11.1ns 0.05 0 0 3.69 KB
master EnrichedLog net472 4.78μs 1.07ns 4.16ns 0.525 0.00239 0 3.31 KB
#4366 EnrichedLog net6.0 3.14μs 1.34ns 5.19ns 0.0518 0 0 3.71 KB
#4366 EnrichedLog netcoreapp3.1 3.8μs 1.61ns 6.03ns 0.0509 0 0 3.69 KB
#4366 EnrichedLog net472 4.79μs 1.29ns 4.98ns 0.525 0.0024 0 3.31 KB
Benchmarks.Trace.RedisBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #4366

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.RedisBenchmark.SendReceive‑net6.0 1.148 1,183.98 1,031.02

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.18μs 0.621ns 2.41ns 0.0155 0 0 1.11 KB
master SendReceive netcoreapp3.1 1.51μs 0.516ns 1.93ns 0.0156 0 0 1.11 KB
master SendReceive net472 1.86μs 0.786ns 2.94ns 0.176 0 0 1.12 KB
#4366 SendReceive net6.0 1.03μs 0.595ns 2.22ns 0.0155 0 0 1.11 KB
#4366 SendReceive netcoreapp3.1 1.41μs 2.04ns 7.92ns 0.0146 0 0 1.11 KB
#4366 SendReceive net472 1.81μs 2.05ns 7.95ns 0.177 0 0 1.12 KB
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.62μs 0.954ns 3.69ns 0.021 0 0 1.53 KB
master EnrichedLog netcoreapp3.1 3.61μs 1.14ns 4.41ns 0.0216 0 0 1.58 KB
master EnrichedLog net472 4.1μs 2.25ns 8.71ns 0.311 0 0 1.96 KB
#4366 EnrichedLog net6.0 2.64μs 0.934ns 3.49ns 0.0211 0 0 1.53 KB
#4366 EnrichedLog netcoreapp3.1 3.5μs 1.19ns 4.29ns 0.0208 0 0 1.58 KB
#4366 EnrichedLog net472 4.08μs 2ns 7.49ns 0.31 0 0 1.96 KB
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 431ns 0.107ns 0.4ns 0.00755 0 0 536 B
master StartFinishSpan netcoreapp3.1 528ns 1.58ns 6.11ns 0.00732 0 0 536 B
master StartFinishSpan net472 645ns 0.139ns 0.538ns 0.0852 0 0 538 B
master StartFinishScope net6.0 452ns 0.13ns 0.485ns 0.00915 0 0 656 B
master StartFinishScope netcoreapp3.1 710ns 0.524ns 1.96ns 0.00913 0 0 656 B
master StartFinishScope net472 797ns 0.215ns 0.803ns 0.0979 0 0 618 B
#4366 StartFinishSpan net6.0 437ns 0.224ns 0.84ns 0.00755 0 0 536 B
#4366 StartFinishSpan netcoreapp3.1 485ns 0.213ns 0.796ns 0.0073 0 0 536 B
#4366 StartFinishSpan net472 624ns 0.269ns 1.04ns 0.0854 0 0 538 B
#4366 StartFinishScope net6.0 475ns 0.141ns 0.527ns 0.00921 0 0 656 B
#4366 StartFinishScope netcoreapp3.1 767ns 0.269ns 1.04ns 0.00883 0 0 656 B
#4366 StartFinishScope net472 780ns 0.224ns 0.838ns 0.0978 0 0 618 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 546ns 0.412ns 1.54ns 0.00916 0 0 656 B
master RunOnMethodBegin netcoreapp3.1 868ns 0.226ns 0.845ns 0.00915 0 0 656 B
master RunOnMethodBegin net472 980ns 0.317ns 1.23ns 0.0982 0 0 618 B
#4366 RunOnMethodBegin net6.0 554ns 0.148ns 0.573ns 0.00923 0 0 656 B
#4366 RunOnMethodBegin netcoreapp3.1 857ns 0.876ns 3.28ns 0.00862 0 0 656 B
#4366 RunOnMethodBegin net472 912ns 0.872ns 3.38ns 0.0979 0 0 618 B

@andrewlock
Copy link
Member

Throughput/Crank Report:zap:

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 (4366) (11.405M)   : 0, 11405263
    master (11.482M)   : 0, 11482087
    benchmarks/2.33.0 (11.213M)   : 0, 11212993
    benchmarks/2.9.0 (11.118M)   : 0, 11117516

    section Automatic
    This PR (4366) (7.881M)   : 0, 7881084
    master (7.927M)   : 0, 7926886
    benchmarks/2.33.0 (7.578M)   : 0, 7577833
    benchmarks/2.9.0 (8.218M)   : 0, 8217621

    section Trace stats
    master (7.818M)   : 0, 7817824
    benchmarks/2.33.0 (7.586M)   : 0, 7586413

    section Manual
    This PR (4366) (10.162M)   : 0, 10161910
    master (10.006M)   : 0, 10005697
    benchmarks/2.33.0 (10.050M)   : 0, 10049682

    section Manual + Automatic
    This PR (4366) (7.577M)   : 0, 7576980
    master (7.447M)   : 0, 7447374
    benchmarks/2.33.0 (7.461M)   : 0, 7461071

    section Version Conflict
    master (6.854M)   : 0, 6854178
    benchmarks/2.33.0 (6.706M)   : 0, 6705768

Loading
gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4366) (9.444M)   : 0, 9443722
    master (9.841M)   : 0, 9841395
    benchmarks/2.33.0 (9.854M)   : 0, 9854380
    benchmarks/2.9.0 (9.560M)   : 0, 9560344

    section Automatic
    This PR (4366) (6.582M)   : 0, 6582358
    master (6.798M)   : 0, 6797977
    benchmarks/2.33.0 (6.781M)   : 0, 6781408

    section Trace stats
    master (6.747M)   : 0, 6747111
    benchmarks/2.33.0 (6.876M)   : 0, 6875549

    section Manual
    This PR (4366) (8.409M)   : 0, 8409049
    master (8.621M)   : 0, 8621123
    benchmarks/2.33.0 (8.659M)   : 0, 8658618

    section Manual + Automatic
    This PR (4366) (6.422M)   : 0, 6421847
    master (6.560M)   : 0, 6559806
    benchmarks/2.33.0 (6.364M)   : 0, 6364163

    section Version Conflict
    master (5.876M)   : 0, 5875540
    benchmarks/2.33.0 (5.865M)   : 0, 5865173

Loading
gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4366) (10.599M)   : 0, 10599375
    master (10.289M)   : 0, 10289320
    benchmarks/2.33.0 (10.579M)   : 0, 10578933
    benchmarks/2.9.0 (10.207M)   : 0, 10206911

    section Automatic
    This PR (4366) (7.640M)   : 0, 7639774
    master (7.424M)   : 0, 7424499
    benchmarks/2.33.0 (7.457M)   : 0, 7457212
    benchmarks/2.9.0 (7.491M)   : 0, 7491408

    section Trace stats
    master (7.479M)   : 0, 7478835
    benchmarks/2.33.0 (7.471M)   : 0, 7470661

    section Manual
    This PR (4366) (9.523M)   : 0, 9523151
    master (9.211M)   : 0, 9210798
    benchmarks/2.33.0 (9.168M)   : 0, 9167980

    section Manual + Automatic
    This PR (4366) (7.578M)   : 0, 7577807
    master (7.339M)   : 0, 7338523
    benchmarks/2.33.0 (7.048M)   : 0, 7048019

    section Version Conflict
    master (6.765M)   : 0, 6764532
    benchmarks/2.33.0 (6.484M)   : 0, 6483597

Loading
gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4366) (7.651M)   : 0, 7650757
    master (7.665M)   : 0, 7664952
    benchmarks/2.33.0 (7.894M)   : 0, 7894351
    benchmarks/2.9.0 (8.085M)   : 0, 8085159

    section No attack
    This PR (4366) (2.033M)   : 0, 2033232
    master (2.036M)   : 0, 2035663
    benchmarks/2.33.0 (2.233M)   : 0, 2232790
    benchmarks/2.9.0 (3.354M)   : 0, 3353571

    section Attack
    This PR (4366) (1.757M)   : 0, 1757361
    master (1.798M)   : 0, 1798486
    benchmarks/2.33.0 (1.937M)   : 0, 1937400
    benchmarks/2.9.0 (2.567M)   : 0, 2566556

    section Blocking
    This PR (4366) (3.800M)   : 0, 3800148
    master (3.846M)   : 0, 3845850
    benchmarks/2.33.0 (3.859M)   : 0, 3859464

Loading

Copy link
Contributor

@chrisnas chrisnas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@gleocadie gleocadie merged commit fac0fdf into master Jul 7, 2023
@gleocadie gleocadie deleted the gleocadie/use-new-version-of-custom-libunwind branch July 7, 2023 13:31
@github-actions github-actions bot added this to the vNext milestone Jul 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:profiler Issues related to the continous-profiler
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants