The number of hardware threads available to a ThreadPool can be limited if setting an affinity mask.
For example:
> start /B /AFFINITY 0xF lld-link.exe ...
Would let LLD only use 4 hyper-threads.
Previously, there was an outstanding issue on Windows Server 2019 on dual-CPU machines, which was preventing from using both CPU sockets. In normal conditions, when no affinity mask was set, ProcessorGroup::AllThreads was different from ProcessorGroup::UsableThreads. The previous code in llvm/lib/Support/Windows/Threading.inc L201 was improperly assuming those two values to be equal, and consequently was limiting the execution to only one CPU socket.
Differential Revision: https://reviews.llvm.org/D92419
|
||
|---|---|---|
| .. | ||
| COM.inc | ||
| DynamicLibrary.inc | ||
| Host.inc | ||
| Memory.inc | ||
| Path.inc | ||
| Process.inc | ||
| Program.inc | ||
| Signals.inc | ||
| ThreadLocal.inc | ||
| Threading.inc | ||
| Watchdog.inc | ||
| explicit_symbols.inc | ||