From d2c1a8b325f55a80daf0fec26d9d660a3899311a Mon Sep 17 00:00:00 2001 From: Vladimir Sadov Date: Fri, 17 Jan 2020 05:20:10 -0800 Subject: [PATCH] revert CPU clipping to 3.0, 2.x behavior (#1851) --- src/coreclr/src/classlibnative/bcltype/system.cpp | 7 +++++++ src/coreclr/src/pal/src/thread/process.cpp | 6 ++++++ src/coreclr/src/utilcode/util.cpp | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/src/coreclr/src/classlibnative/bcltype/system.cpp b/src/coreclr/src/classlibnative/bcltype/system.cpp index 402a215..1862114 100644 --- a/src/coreclr/src/classlibnative/bcltype/system.cpp +++ b/src/coreclr/src/classlibnative/bcltype/system.cpp @@ -352,6 +352,13 @@ INT32 QCALLTYPE SystemNative::GetProcessorCount() processorCount = systemInfo.dwNumberOfProcessors; } +#ifdef FEATURE_PAL + uint32_t cpuLimit; + + if (PAL_GetCpuLimit(&cpuLimit) && cpuLimit < (uint32_t)processorCount) + processorCount = cpuLimit; +#endif + END_QCALL; return processorCount; diff --git a/src/coreclr/src/pal/src/thread/process.cpp b/src/coreclr/src/pal/src/thread/process.cpp index 7333890..49c1291 100644 --- a/src/coreclr/src/pal/src/thread/process.cpp +++ b/src/coreclr/src/pal/src/thread/process.cpp @@ -2547,6 +2547,12 @@ PAL_GetCPUBusyTime( { return 0; } + + UINT cpuLimit; + if (PAL_GetCpuLimit(&cpuLimit) && cpuLimit < dwNumberOfProcessors) + { + dwNumberOfProcessors = cpuLimit; + } } if (getrusage(RUSAGE_SELF, &resUsage) == -1) diff --git a/src/coreclr/src/utilcode/util.cpp b/src/coreclr/src/utilcode/util.cpp index 80cd00f..d3b3c74 100644 --- a/src/coreclr/src/utilcode/util.cpp +++ b/src/coreclr/src/utilcode/util.cpp @@ -1289,6 +1289,10 @@ int GetCurrentProcessCpuCount() #else // !FEATURE_PAL count = PAL_GetLogicalCpuCountFromOS(); + + uint32_t cpuLimit; + if (PAL_GetCpuLimit(&cpuLimit) && cpuLimit < count) + count = cpuLimit; #endif // !FEATURE_PAL cCPUs = count; -- 2.7.4