Skip to content

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Jan 3, 2022

Backport of #62822 to release/6.0

/cc @janvorli

Customer Impact

We have seen people hitting problems with the wired memory page allocation on
macOS x64 in the past due to the fact that wired memory is a scarce resource and
in some cases, e.g. in presence of apps that greedily grab all of the available
wired memory pages, we were unable to initialize coreclr and execute any .NET
application. PowerQuery in Microsoft Excel was one of the applications that was
reported to hit this problem.

Testing

Local and lab testing of coreclr and libraries tests.

Risk

Low, the mechanism is the same one that we've introduced on arm64 macOS
a year ago. This change just enables the same thing for x64.

The macOS arm64 was using a new mechanism to implement FlushProcessWriteBuffers
because the original one based on a wired memory page doesn't work on arm64.
We have seen people hitting problems with the wired memory page allocation on
x64 in the past due to the fact that wired memory is a scarce resource and
in some cases, e.g. in presence of apps that greedily grab all of the available
wired memory pages, we were unable to initialize coreclr and execute any .NET
application.

This change switches x64 to the same mechanism as arm64 to prevent that issue
from happening and updates the minimum supported x64 macOS to 10.14. That's the
version required for the new APIs the change is using. Apple stopped supporting
10.13 a year ago anyways.
@ghost
Copy link

ghost commented Jan 3, 2022

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@janvorli janvorli self-assigned this Jan 3, 2022
@janvorli janvorli added the Servicing-consider Issue for next servicing release review label Jan 3, 2022
@janvorli janvorli added this to the 6.0.x milestone Jan 3, 2022
@janvorli janvorli requested a review from jkotas January 3, 2022 19:34
Copy link
Member

@jeffschwMSFT jeffschwMSFT left a comment

Choose a reason for hiding this comment

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

Approved. We should take for consideration in .NET 6.0.x

@leecow leecow added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jan 4, 2022
@leecow leecow modified the milestones: 6.0.x, 6.0.2 Jan 4, 2022
@jeffschwMSFT
Copy link
Member

@janvorli any concern with the failing CI tests?

@janvorli
Copy link
Member

janvorli commented Jan 6, 2022

@jeffschwMSFT the failing tests are on Windows. The change is in PAL, so the code is not even compiled on Windows.

@jeffschwMSFT jeffschwMSFT merged commit b71484c into release/6.0 Jan 6, 2022
@akoeplinger akoeplinger deleted the backport/pr-62822-to-release/6.0 branch January 11, 2022 18:31
@ghost ghost locked as resolved and limited conversation to collaborators Feb 10, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-PAL-coreclr Servicing-approved Approved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants