[pull] main from dotnet:main#470
Merged
pull[bot] merged 11 commits intoJuan48302:mainfrom Dec 9, 2025
Merged
Conversation
PQC was backported to 24H2, and CI picked that up in Windows update, so our version boundary test is failing. This adjusts the test to the correct version boundary.
Fix a recent regression in perfmaps caused by #116203 The fix changes fprintf usage in PerfMap::WriteLine to using
## Description This PR fixes condition checks for Crossgen2 in AppleBuild.props. ``` The imported project "/__w/1/s/artifacts/bin/Crossgen2Tasks/Checked/net10.0/Microsoft.NET.CrossGen.props" was not found. ```
- Rename constants to use PascalCase instead of prefixed s_ names. - Use constants instead of static readonly fields - Use properties instead of static readonly fields for computed values. [Diffs](MihuBot/runtime-utils#1599)
…ed test runners (#122306)
This is the first prototype of a Wasm object writer for crossgen that *only* writes out method bodies. It builds the minimum module structure which is needed to declare and export the module bodies so that the resulting module can be loaded and method bodies can be called by an external loader. I have tested the output with a simple JavaScript loader that instantiates the module and calls one of the exports. # What IS handled Emitting simple method bodies from an assembly that have no relocations or external dependencies of any kind. # What is NOT handled ## Relocations and any metadata attached to compiled methods. ## R2R format envelope (the plan is to embed this in the data section in a future PR) R2R metadata is currently unused. ## Signature generation to meet ABI requirements Right now, there is a single `i32 -> i32` signature which is used as a placeholder for any method. Later work will need to build support for generating and storing wasm-level type signatures for JIT compiled methods. ## JIT Integration Currently, the JIT is not called (I believe it will hit asserts on the Wasm target until #121973 is in). Instead, a simple `(i32.const 0) (return)` stub is emitted for any JIT calls. --------- Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…tHostPolicy (#122212) This package hasn't been the way we construct .NET apps since before 3.0. We currently check for it in the deps.json on startup and write it out as a breadcrumb file for every app - we should be able to stop doing this and avoid some unnecessary file I/O and allocations.
…runcation (#122293) - [x] Understand the issue: High CPU due to excessive YieldProcessorMeasurement - [x] Identify the bug: Extra (unsigned int) cast at line 206 in yieldprocessornormalizedshared.cpp - [x] Remove the incorrect cast to fix time comparison - [x] Build and test the fix - [x] Run code review - [x] Run security scan - [x] Add parentheses to clarify operator precedence per review feedback ## Summary Fixed high CPU utilization in .NET 10.0 by removing an incorrect `(unsigned int)` cast that was causing YieldProcessorMeasurement to run continuously instead of every 4 seconds. The variable `s_previousNormalizationTimeMs` is declared as `int64_t` but was being assigned with a truncated 32-bit value, leading to incorrect time comparisons and excessive measurements. Added parentheses around subtraction operations to make operator precedence explicit. <!-- START COPILOT ORIGINAL PROMPT --> <details> <summary>Original prompt</summary> > > ---- > > *This section details on the original issue you should resolve* > > <issue_title>High CPU utilization after update from net8 to net10</issue_title> > <issue_description><!--This is just a template - feel free to delete any and all of it and replace as appropriate.--> > > ### Description > > After updating asp net core application from net 8 to net10 noticed significantly increased CPU consumption. What is the reason for this? > > <img width="1728" height="1072" alt="Image" src="https://github.com/user-attachments/assets/654ab469-4ee8-440e-a34b-6a3136d9272f" /> > > <img width="1675" height="1074" alt="Image" src="https://github.com/user-attachments/assets/f45dee2b-78db-4176-82c3-7988285d7516" /> > > <img width="1772" height="1075" alt="Image" src="https://github.com/user-attachments/assets/48a4965e-4b8c-4413-a777-be099acce154" /> > > After the update, we noticed a significantly increased number of garbage collections. > > <img width="1280" height="308" alt="Image" src="https://github.com/user-attachments/assets/876a0d63-d3c2-4a58-941f-111e4c587511" /> > > ### Configuration > > Image: mcr.microsoft.com/dotnet/aspnet:10.0.0 > OS: Ubuntu 24.04 > Runtime: net10.0.0 > Architecture: x64 > > ServerGarbageCollection: true > ConcurrentGarbageCollection: true > GarbageCollectionAdaptationMode: Not specified > </issue_description> > > <agent_instructions>Delete the extra (unsigned) cast at https://github.com/dotnet/runtime/pull/115408/files#diff-1c8c26a1e7f6ab4505c185d7ba09c8b95dbac6a5da98d424bef94520bf94cdaeR206 that leads to this bug </agent_instructions> > > ## Comments on the Issue (you are @copilot in this section) > > <comments> > <comment_new><author>@agocke</author><body> > @jestonedev We would need a before/after trace to be sure. A CPU graph alone doesn't give enough info to say which piece is spending more CPU. Setting GCDynamicAdaptationMode to 0 would also help as an easy way to determine if that's the cause.</body></comment_new> > <comment_new><author>@jkotas</author><body> > The YieldProcessorMeasurement counter looks way too high. YieldProcessorMeasurement is done on finalizer thread, so the high finalizerstart/stop is a side-effect of that. > > There is something wrong with the scheduling of YieldProcessorMeasurement</body></comment_new> > <comment_new><author>@jkotas</author><body> > > What is YieldProcessorMeasurement > > The performance characteristics of processor yield instruction (`pause` on Intel) varies a lot between processors. It can even change while the process is running due to VM migrations in cloud. YieldProcessorMeasurement is expected to be done occasionally (every 4 seconds at most) by the runtime to measure the current performance characteristics of this instruction and retune the spinwaiting loops as needed.</body></comment_new> > <comment_new><author>@jkotas</author><body> > Looks like a regression inroduced by https://github.com/dotnet/runtime/pull/115408/files#diff-1c8c26a1e7f6ab4505c185d7ba09c8b95dbac6a5da98d424bef94520bf94cdaeR206</body></comment_new> > </comments> > </details> <!-- START COPILOT CODING AGENT SUFFIX --> - Fixes #122280 <!-- START COPILOT CODING AGENT TIPS --> --- 💬 We'd love your input! Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey). --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jkotas <6668460+jkotas@users.noreply.github.com> Co-authored-by: agocke <515774+agocke@users.noreply.github.com>
This pull request updates the following dependencies [marker]: <> (Begin:bfe6dacf-8231-4ea1-e2fe-08d962847885) ## From https://github.com/dotnet/hotreload-utils - **Subscription**: [bfe6dacf-8231-4ea1-e2fe-08d962847885](https://maestro.dot.net/subscriptions?search=bfe6dacf-8231-4ea1-e2fe-08d962847885) - **Build**: [20251124.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2846435) ([292099](https://maestro.dot.net/channel/8297/github:dotnet:hotreload-utils/build/292099)) - **Date Produced**: November 24, 2025 4:13:07 PM UTC - **Commit**: [92b850b157a46e9c4605b7ae76f5ada3e6856eb5](dotnet/hotreload-utils@92b850b) - **Branch**: [main](https://github.com/dotnet/hotreload-utils/tree/main) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [11.0.0-alpha.0.25528.1 to 11.0.0-alpha.0.25574.1][1] - Microsoft.DotNet.HotReload.Utils.Generator.BuildTool [1]: dotnet/hotreload-utils@1c8f1e3...92b850b [DependencyUpdate]: <> (End) [marker]: <> (End:bfe6dacf-8231-4ea1-e2fe-08d962847885) Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
main PR <!-- Link to PR if any that fixed this in the main branch. --> # Description Updates the Debian container image from `debian-12-gcc15-amd64` to `debian-13-gcc15-amd64` across pipeline configuration and documentation. **Modified files:** - `eng/pipelines/common/templates/pipeline-with-resources.yml` - Container definition and image reference - `eng/pipelines/common/platform-matrix.yml` - Container name reference in build matrix - `docs/workflow/using-docker.md` - Documentation table entry # Customer Impact None. Internal build infrastructure update. # Regression No. This is not fixing a regression. # Testing Configuration change only. Will be validated when pipeline executes with the new image. # Risk Low. Standard image upgrade following established pattern. The Debian 13 image with GCC15 is already available in the container registry. # Package authoring no longer needed in .NET 9 IMPORTANT: Starting with .NET 9, you no longer need to edit a NuGet package's csproj to enable building and bump the version. Keep in mind that we still need package authoring in .NET 8 and older versions. <!-- START COPILOT CODING AGENT SUFFIX --> <!-- START COPILOT ORIGINAL PROMPT --> <details> <summary>Original prompt</summary> > On pipeline-with-resources.yml, Please update this image to the debian 13 variant. New tag: debian-13-gcc15-amd64 > > https://github.com/dotnet/runtime/blob/main/eng/pipelines/common/templates/pipeline-with-resources.yml#L105-L106 </details> <!-- START COPILOT CODING AGENT TIPS --> --- 💬 We'd love your input! Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey). --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: richlander <2608468+richlander@users.noreply.github.com>
Wasm switches (`br_table`) have a default case, so take advantage of this and stop peeling off the default case in lower.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )