From e167798abae05125c1ae1c26ebb934a113e34697 Mon Sep 17 00:00:00 2001 From: Roman Dementiev Date: Mon, 8 Sep 2025 06:01:34 -0500 Subject: [PATCH 1/3] fix compilation for memoptest --- src/memoptest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/memoptest.cpp b/src/memoptest.cpp index 3c852931..f00d3302 100644 --- a/src/memoptest.cpp +++ b/src/memoptest.cpp @@ -132,7 +132,7 @@ int main(int argc, char * argv[]) cout << "Bandwidth: " << (sizeof(T) * nelements * niter) / ((after_ts - before_ts) * 1024 * 1024) << " MByte/sec\n" << std::flush; } - deleteAndNullifyArray(vector); + pcm::deleteAndNullifyArray(vector); return 0; } From bda534bbbb2af7dade67a51dc20225662de8e9ed Mon Sep 17 00:00:00 2001 From: Roman Dementiev Date: Mon, 8 Sep 2025 06:03:35 -0500 Subject: [PATCH 2/3] make cpu family/model extraction fully compliant to the spec --- src/cpucounters.cpp | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/src/cpucounters.cpp b/src/cpucounters.cpp index 5e92b78a..14d903f0 100644 --- a/src/cpucounters.cpp +++ b/src/cpucounters.cpp @@ -382,20 +382,6 @@ int32 PCM::getMaxCustomCoreEvents() return core_gen_counter_num_max; } -/* -int PCM::getCPUModelFromCPUID() -{ - static int result = -1; - if (result < 0) - { - PCM_CPUID_INFO cpuinfo; - pcm_cpuid(1, cpuinfo); - result = (((cpuinfo.array[0]) & 0xf0) >> 4) | ((cpuinfo.array[0] & 0xf0000) >> 12); - } - return result; -} -*/ - int PCM::getCPUFamilyModelFromCPUID() { static int result = -1; @@ -403,8 +389,14 @@ int PCM::getCPUFamilyModelFromCPUID() { PCM_CPUID_INFO cpuinfo; pcm_cpuid(1, cpuinfo); - const auto cpu_family_ = (((cpuinfo.array[0]) >> 8) & 0xf) | ((cpuinfo.array[0] & 0xf00000) >> 16); - const auto cpu_model_ = (((cpuinfo.array[0]) & 0xf0) >> 4) | ((cpuinfo.array[0] & 0xf0000) >> 12); + // follow https://www.felixcloutier.com/x86/cpuid#fig-3-6 + unsigned int Family_ID = (cpuinfo.array[0] >> 8) & 0xF; + unsigned int Extended_Family_ID = (cpuinfo.array[0] >> 20) & 0xFF; + unsigned int Model_ID = (cpuinfo.array[0] >> 4) & 0xF; + unsigned int Extended_Model_ID = (cpuinfo.array[0] >> 16) & 0xF; + const auto cpu_family_ = (Family_ID != 0x0F) ? Family_ID : (Extended_Family_ID + Family_ID); + const auto cpu_model_ = (Family_ID == 0x06 || Family_ID == 0x0F) ? (Model_ID + (Extended_Model_ID << 4)) : Model_ID; + result = PCM_CPU_FAMILY_MODEL(cpu_family_, cpu_model_); } return result; @@ -432,9 +424,11 @@ bool PCM::detectModel() max_cpuid = cpuinfo.array[0]; pcm_cpuid(1, cpuinfo); - cpu_family = (((cpuinfo.array[0]) >> 8) & 0xf) | ((cpuinfo.array[0] & 0xf00000) >> 16); - cpu_model_private = (((cpuinfo.array[0]) & 0xf0) >> 4) | ((cpuinfo.array[0] & 0xf0000) >> 12); - cpu_family_model = PCM_CPU_FAMILY_MODEL(cpu_family, cpu_model_private); + + DBG(2 , "cpuinfo.array[0]: 0x" , std::hex , cpuinfo.array[0] , std::dec); + cpu_family_model = getCPUFamilyModelFromCPUID(); + cpu_family = (cpu_family_model >> 8) & 0xff; + cpu_model_private = cpu_family_model & 0xff; cpu_stepping = cpuinfo.array[0] & 0x0f; if (cpuinfo.reg.ecx & (1UL << 31UL)) { From cef5086e1a67a4720eca224e5415a4042747507c Mon Sep 17 00:00:00 2001 From: "Dementiev, Roman" Date: Thu, 11 Sep 2025 15:36:56 +0200 Subject: [PATCH 3/3] update dependencies Change-Id: I6222f5e930d7b6c0deebabf2539f270d8ca996bb --- Intel-PMT | 2 +- perfmon | 2 +- src/simdjson | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Intel-PMT b/Intel-PMT index 20f55dcf..0c951602 160000 --- a/Intel-PMT +++ b/Intel-PMT @@ -1 +1 @@ -Subproject commit 20f55dcf635f77e6f51667504acc202be39b6b03 +Subproject commit 0c9516029591fc70b15e3b7d95b9b14a9adf578f diff --git a/perfmon b/perfmon index 59d0e1ff..48c0518a 160000 --- a/perfmon +++ b/perfmon @@ -1 +1 @@ -Subproject commit 59d0e1fff3106c424f6e49eea460ac14220dae76 +Subproject commit 48c0518ae223c49b6a698325167a4d8d40f56997 diff --git a/src/simdjson b/src/simdjson index 7382dc2b..0c0ce1bd 160000 --- a/src/simdjson +++ b/src/simdjson @@ -1 +1 @@ -Subproject commit 7382dc2be88e53fbc35cb50369b831855656f0fd +Subproject commit 0c0ce1bd48baa0677dc7c0945ea7cd1e8b52b297