mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-03 05:08:47 -06:00
Merge topic 'update-kwsys'
e57c4116acMerge branch 'upstream-KWSys' into update-kwsys1ba07ff0f8KWSys 2021-04-26 (642ddfcc) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6047
This commit is contained in:
@@ -3472,6 +3472,10 @@ bool SystemInformationImplementation::RetreiveInformationFromCpuInfoFile()
|
||||
// We want to record the total number of cores in this->NumberOfPhysicalCPU
|
||||
// (checking only the first proc)
|
||||
std::string Cores = this->ExtractValueFromCpuInfoFile(buffer, "cpu cores");
|
||||
if (Cores.empty()) {
|
||||
// Linux Sparc is different
|
||||
Cores = this->ExtractValueFromCpuInfoFile(buffer, "ncpus probed");
|
||||
}
|
||||
auto NumberOfCoresPerSocket = (unsigned int)atoi(Cores.c_str());
|
||||
NumberOfCoresPerSocket = std::max(NumberOfCoresPerSocket, 1u);
|
||||
this->NumberOfPhysicalCPU =
|
||||
@@ -3490,6 +3494,9 @@ bool SystemInformationImplementation::RetreiveInformationFromCpuInfoFile()
|
||||
if (this->NumberOfPhysicalCPU <= 0) {
|
||||
this->NumberOfPhysicalCPU = 1;
|
||||
}
|
||||
if (this->NumberOfLogicalCPU == 0) {
|
||||
this->NumberOfLogicalCPU = this->NumberOfPhysicalCPU;
|
||||
}
|
||||
// LogicalProcessorsPerPhysical>1 => SMT.
|
||||
this->Features.ExtendedFeatures.LogicalProcessorsPerPhysical =
|
||||
this->NumberOfLogicalCPU / this->NumberOfPhysicalCPU;
|
||||
@@ -3503,8 +3510,18 @@ bool SystemInformationImplementation::RetreiveInformationFromCpuInfoFile()
|
||||
else {
|
||||
// Linux Sparc: CPU speed is in Hz and encoded in hexadecimal
|
||||
CPUSpeed = this->ExtractValueFromCpuInfoFile(buffer, "Cpu0ClkTck");
|
||||
this->CPUSpeedInMHz =
|
||||
static_cast<float>(strtoull(CPUSpeed.c_str(), nullptr, 16)) / 1000000.0f;
|
||||
if (!CPUSpeed.empty()) {
|
||||
this->CPUSpeedInMHz =
|
||||
static_cast<float>(strtoull(CPUSpeed.c_str(), nullptr, 16)) /
|
||||
1000000.0f;
|
||||
} else {
|
||||
// if the kernel is build as Sparc32 it's in decimal, note the different
|
||||
// case
|
||||
CPUSpeed = this->ExtractValueFromCpuInfoFile(buffer, "CPU0ClkTck");
|
||||
this->CPUSpeedInMHz =
|
||||
static_cast<float>(strtoull(CPUSpeed.c_str(), nullptr, 10)) /
|
||||
1000000.0f;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user