Support Win7 in cpu information parser (#19109)
This commit is contained in:
@@ -64,8 +64,10 @@ void parse_processor_info_win(const char* base_ptr,
|
||||
int group_id = 0;
|
||||
int group_type = 0;
|
||||
|
||||
int num_package = 0;
|
||||
|
||||
_processors = 0;
|
||||
_sockets = -1;
|
||||
_sockets = 0;
|
||||
_cores = 0;
|
||||
|
||||
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info = NULL;
|
||||
@@ -87,18 +89,19 @@ void parse_processor_info_win(const char* base_ptr,
|
||||
return;
|
||||
};
|
||||
|
||||
_proc_type_table.push_back(proc_init_line);
|
||||
|
||||
for (; info_ptr < base_ptr + len; info_ptr += (DWORD)info->Size) {
|
||||
info = (PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX)info_ptr;
|
||||
|
||||
if (info->Relationship == RelationProcessorPackage) {
|
||||
_sockets++;
|
||||
MaskToList(info->Processor.GroupMask->Mask);
|
||||
if (0 == _sockets) {
|
||||
_proc_type_table.push_back(proc_init_line);
|
||||
} else {
|
||||
if (num_package > 0) {
|
||||
_sockets++;
|
||||
_proc_type_table.push_back(_proc_type_table[0]);
|
||||
_proc_type_table[0] = proc_init_line;
|
||||
}
|
||||
num_package++;
|
||||
} else if (info->Relationship == RelationProcessorCore) {
|
||||
MaskToList(info->Processor.GroupMask->Mask);
|
||||
|
||||
|
||||
@@ -2088,6 +2088,108 @@ WinCpuMapTestCase _1sockets_4cores_hyperthreading = {
|
||||
"00000000000000000000000000000ff00000000000000"},
|
||||
};
|
||||
|
||||
WinCpuMapTestCase _1sockets_4cores_hyperthreading_1_FMT7 = {
|
||||
8,
|
||||
1,
|
||||
1,
|
||||
4,
|
||||
{{8, 4, 0, 4, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
},
|
||||
{"0000000030000000010000000000000000000000000000000000000000000100030000000000000000006d0052006f0002000000380000000"
|
||||
"10840000080000002000000000000000000000000000000000000000000000003000000000000000000720073005c00020000003800000001"
|
||||
"08400000800000010000000000000000000000000000000000000000000000030000000000000000003d0043003a000200000038000000020"
|
||||
"44000000004000000000000000000000000000000000000000000000000000300000000000000000065006d00700000000000300000000100"
|
||||
"000000000000000000000000000000000000000001000c0000000000000000003500430033000200000038000000010840000080000002000"
|
||||
"00000000000000000000000000000000000000000000c0000000000000000003d0043003a0002000000380000000108400000800000010000"
|
||||
"0000000000000000000000000000000000000000000c000000000000000000770073000000020000003800000002044000000004000000000"
|
||||
"000000000000000000000000000000000000000000c00000000000000000069006e0064000000000030000000010000000000000000000000"
|
||||
"000000000000000000000100300000000000000000003a005c004200020000003800000001084000008000000200000000000000000000000"
|
||||
"000000000000000000000003000000000000000000065005c0063000200000038000000010840000080000001000000000000000000000000"
|
||||
"0000000000000000000000300000000000000000003a3d433a5c5502000000380000000204400000000400000000000000000000000000000"
|
||||
"000000000000000000000300000000000000000003a5c50726f67030000003000000000000000000000000000000000000000000000000000"
|
||||
"0100ff0000000000000000006700436f6d6d0000000030000000010000000000000000000000000000000000000000000100c000000000000"
|
||||
"0000000657300436f6d02000000380000000108400000800000020000000000000000000000000000000000000000000000c0000000000000"
|
||||
"0000002046696c657302000000380000000108400000800000010000000000000000000000000000000000000000000000c00000000000000"
|
||||
"00000434f4d50555402000000380000000204400000000400000000000000000000000000000000000000000000000000c000000000000000"
|
||||
"00006d642e65786502000000380000000310400000008000000000000000000000000000000000000000000000000000ff000000000000000"
|
||||
"0004956453d433a0100000030000000000000000000000000000000000000000000000000000000ff00000000000000000057535c41707004"
|
||||
"00000050000000010001000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000"
|
||||
"00000000000000000000000000000ff00000000000000"},
|
||||
};
|
||||
|
||||
WinCpuMapTestCase _1sockets_4cores_hyperthreading_2_FMT7 = {
|
||||
8,
|
||||
1,
|
||||
1,
|
||||
4,
|
||||
{{8, 4, 0, 4, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
{4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
|
||||
{5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
|
||||
{6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
|
||||
{7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
|
||||
},
|
||||
{"0000000030000000010000000000000000000000000000000000000000000100030000000000000000003d433a5c557302000000380000000"
|
||||
"10840000080000002000000000000000000000000000000000000000000000003000000000000000000616d2046696c020000003800000001"
|
||||
"08400000800000010000000000000000000000000000000000000000000000030000000000000000002046696c65730200000038000000020"
|
||||
"44000000004000000000000000000000000000000000000000000000000000300000000000000000046696c65735c00000000300000000100"
|
||||
"000000000000000000000000000000000000000001000c0000000000000000005c77696e646f0200000038000000010840000080000002000"
|
||||
"00000000000000000000000000000000000000000000c0000000000000000004f53545f434802000000380000000108400000800000010000"
|
||||
"0000000000000000000000000000000000000000000c0000000000000000003a5c50726f67020000003800000002044000000004000000000"
|
||||
"000000000000000000000000000000000000000000c000000000000000000735c417070440000000030000000010000000000000000000000"
|
||||
"000000000000000000000100300000000000000000004f434553534f020000003800000001084000008000000200000000000000000000000"
|
||||
"00000000000000000000000300000000000000000007665726167650200000038000000010840000080000001000000000000000000000000"
|
||||
"000000000000000000000030000000000000000000615c6a646b2d02000000380000000204400000000400000000000000000000000000000"
|
||||
"000000000000000000000300000000000000000003b433a5c5072030000003000000000000000000000000000000000000000000000000000"
|
||||
"0100ff0000000000000000005c6a617661700000000030000000010000000000000000000000000000000000000000000100c000000000000"
|
||||
"00000006176615c6a6102000000380000000108400000800000020000000000000000000000000000000000000000000000c0000000000000"
|
||||
"000000797374656d3302000000380000000108400000800000010000000000000000000000000000000000000000000000c00000000000000"
|
||||
"000003b473a5c507202000000380000000204400000000400000000000000000000000000000000000000000000000000c000000000000000"
|
||||
"0000726172795c6202000000380000000310400000008000000000000000000000000000000000000000000000000000ff000000000000000"
|
||||
"0006c65735c47690100000030000000000000000000000000000000000000000000000000000000ff0000000000000000003b443a5c507204"
|
||||
"00000050000000010001000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000"
|
||||
"00000000000000000000000000000ff00000000000000"},
|
||||
};
|
||||
|
||||
WinCpuMapTestCase _1sockets_2cores_hyperthreading_FMT7 = {
|
||||
4,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
{{4, 2, 0, 2, 0, 0}},
|
||||
{
|
||||
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
|
||||
{1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
|
||||
{2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
|
||||
{3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
|
||||
},
|
||||
{"000000003000000001000000000000000000000000000000000000000000010003000000000000000000cdcdcdcdcdcd02000000380000000"
|
||||
"10840000080000002000000000000000000000000000000000000000000000003000000000000000000cdcdcdcdcdcd020000003800000001"
|
||||
"0840000080000001000000000000000000000000000000000000000000000003000000000000000000cdcdcdcdcdcd0200000038000000020"
|
||||
"840000000040000000000000000000000000000000000000000000000000003000000000000000000cdcdcdcdcdcd03000000300000000000"
|
||||
"000000000000000000000000000000000000000001000f000000000000000000cdcdcdcdcdcd0000000030000000010000000000000000000"
|
||||
"0000000000000000000000001000c000000000000000000cdcdcdcdcdcd020000003800000001084000008000000200000000000000000000"
|
||||
"000000000000000000000000000c000000000000000000cdcdcdcdcdcd0200000038000000010840000080000001000000000000000000000"
|
||||
"00000000000000000000000000c000000000000000000cdcdcdcdcdcd02000000380000000208400000000400000000000000000000000000"
|
||||
"0000000000000000000000000c000000000000000000cdcdcdcdcdcd020000003800000003104000000040000000000000000000000000000"
|
||||
"000000000000000000000000f000000000000000000cdcdcdcdcdcd0100000030000000000000000000000000000000000000000000000000"
|
||||
"0000000f000000000000000000cdcdcdcdcdcd040000005000000001000100000000000000000000000000000000000000000004040000000"
|
||||
"0000000000000000000000000000000000000000000000000000000000000000000000f00000000000000"},
|
||||
};
|
||||
|
||||
TEST_P(WinCpuMapParserTests, WinCache) {}
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(CPUMap,
|
||||
@@ -2103,7 +2205,10 @@ INSTANTIATE_TEST_SUITE_P(CPUMap,
|
||||
_1sockets_14cores_hyperthreading_set2,
|
||||
_1sockets_14cores_hyperthreading_set3,
|
||||
_1sockets_10cores_hyperthreading,
|
||||
_1sockets_4cores_hyperthreading));
|
||||
_1sockets_4cores_hyperthreading,
|
||||
_1sockets_4cores_hyperthreading_1_FMT7,
|
||||
_1sockets_4cores_hyperthreading_2_FMT7,
|
||||
_1sockets_2cores_hyperthreading_FMT7));
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user