From 0e2d0415c0e3f815d99ac5faf45b8e35ec202862 Mon Sep 17 00:00:00 2001 From: Anton Lapounov Date: Mon, 1 Aug 2022 16:12:04 -0700 Subject: [PATCH] Fix handling process affinity mask on Windows 11 (#69548) --- src/coreclr/gc/windows/gcenv.windows.cpp | 3 --- src/coreclr/nativeaot/Runtime/windows/PalRedhawkMinWin.cpp | 1 - src/coreclr/utilcode/util.cpp | 2 -- src/coreclr/vm/gcenv.os.cpp | 2 -- 4 files changed, 8 deletions(-) diff --git a/src/coreclr/gc/windows/gcenv.windows.cpp b/src/coreclr/gc/windows/gcenv.windows.cpp index 0e69219..d8675e5 100644 --- a/src/coreclr/gc/windows/gcenv.windows.cpp +++ b/src/coreclr/gc/windows/gcenv.windows.cpp @@ -234,7 +234,6 @@ void InitCPUGroupInfo() DWORD_PTR processAffinityMask, systemAffinityMask; if (::GetProcessAffinityMask(::GetCurrentProcess(), &processAffinityMask, &systemAffinityMask)) { - processAffinityMask &= systemAffinityMask; if (processAffinityMask != 0 && // only one CPU group is involved (processAffinityMask & (processAffinityMask - 1)) == 0) // only one bit is set { @@ -542,8 +541,6 @@ bool GCToOSInterface::Initialize() uintptr_t pmask, smask; if (!!::GetProcessAffinityMask(::GetCurrentProcess(), (PDWORD_PTR)&pmask, (PDWORD_PTR)&smask)) { - pmask &= smask; - for (size_t i = 0; i < 8 * sizeof(uintptr_t); i++) { if ((pmask & ((uintptr_t)1 << i)) != 0) diff --git a/src/coreclr/nativeaot/Runtime/windows/PalRedhawkMinWin.cpp b/src/coreclr/nativeaot/Runtime/windows/PalRedhawkMinWin.cpp index e6195e5..32c072d 100644 --- a/src/coreclr/nativeaot/Runtime/windows/PalRedhawkMinWin.cpp +++ b/src/coreclr/nativeaot/Runtime/windows/PalRedhawkMinWin.cpp @@ -79,7 +79,6 @@ void InitializeCurrentProcessCpuCount() } else { - pmask &= smask; count = 0; while (pmask) diff --git a/src/coreclr/utilcode/util.cpp b/src/coreclr/utilcode/util.cpp index b4fec28..2d2d2d2 100644 --- a/src/coreclr/utilcode/util.cpp +++ b/src/coreclr/utilcode/util.cpp @@ -1071,7 +1071,6 @@ int GetCurrentProcessCpuCount() } else { - pmask &= smask; count = 0; while (pmask) @@ -1150,7 +1149,6 @@ DWORD_PTR GetCurrentProcessCpuMask() if (!GetProcessAffinityMask(GetCurrentProcess(), &pmask, &smask)) return 1; - pmask &= smask; return pmask; #else return 0; diff --git a/src/coreclr/vm/gcenv.os.cpp b/src/coreclr/vm/gcenv.os.cpp index 34346f4..18413ba 100644 --- a/src/coreclr/vm/gcenv.os.cpp +++ b/src/coreclr/vm/gcenv.os.cpp @@ -146,8 +146,6 @@ bool GCToOSInterface::Initialize() uintptr_t pmask, smask; if (!!::GetProcessAffinityMask(::GetCurrentProcess(), (PDWORD_PTR)&pmask, (PDWORD_PTR)&smask)) { - pmask &= smask; - for (size_t i = 0; i < 8 * sizeof(uintptr_t); i++) { if ((pmask & ((uintptr_t)1 << i)) != 0) -- 2.7.4