Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: dotnet/runtime
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: ef85762
Choose a base ref
...
head repository: dotnet/runtime
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: c21a701
Choose a head ref
  • 5 commits
  • 7 files changed
  • 4 contributors

Commits on Sep 9, 2021

  1. Configuration menu
    Copy the full SHA
    b7ac52b View commit details
    Browse the repository at this point in the history
  2. Consider finally that jumps to itself as non-empty (#58771)

    * decrement the reference of unreachable finally
    
    * Proper fix
    kunalspathak authored Sep 9, 2021
    Configuration menu
    Copy the full SHA
    a09d088 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e55968b View commit details
    Browse the repository at this point in the history
  4. Request fewer threads in the thread pool (#57885)

    * Request fewer threads in the thread pool
    
    - Currently up to proc count yet-to-be-serviced thread requests are made when each work item is enqueued and when each work item is dequeued. Some of the conditions for making a thread request are speculative, making it difficult to reduce the cap without running into issues (see #8951 (comment)).
    - When the thread pool is not fully loaded, more threads are requested than necessary, causing more threads to wake up and compete for work items, and this shows a perf degradation at some point as load is decreased
    - Fixed by using a similar solution to https://github.com/dotnet/runtime/blob/50576e326d1015906608e3c06670344e335c3225/src/libraries/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEngine.Unix.cs#L209. With this change, at most one thread is requested at a time. A thread pool thread requests another thread for parallelization of work after dequeuing the first work item and does not request any more threads, leaving it up to whichever thread services the new thread request to parallelize further.
    - After this, there was a regression in ASP.NET benchmarks on arm64 with default number of connections, see #39559 for more info. Increased the spin-waiting duration on thread pool worker threads to compensate. Spin-waiting longer is preferrable to busy-waiting and competing with other threads for work items, and hitting a full wait and waking up frequently.
    - The change seems to solve the perf cliff seen at some point as load is decreased, especially on arm64. A portion of the perf improvements seen on arm64 at lower load is due to the increase in spin-waiting.
    
    Fixes #39559
    kouvel authored Sep 9, 2021
    Configuration menu
    Copy the full SHA
    32fed09 View commit details
    Browse the repository at this point in the history
  5. Ignore the X.509 DuplicateExtension status from macOS 12.

    MacOS 12 introduces a new X.509 chain status, DuplicateExtension. As we do not report this in Windows and nor do we have a flag to map it to, we ignore it from macOS.
    vcsjones authored Sep 9, 2021
    Configuration menu
    Copy the full SHA
    c21a701 View commit details
    Browse the repository at this point in the history
Loading