block SOC Ecore to be used in multi-threading on Windows (#18910)

This commit is contained in:
Wanglei Shen authored and GitHub committed 2023-08-11 15:23:29 +04:00
1 parent 6bf75f569c
commit a957764362
3 files changed
+31 -22

No files matched your search

@@ -228,8 +228,9 @@ enum ColumnOfProcessorTypeTable {
* @brief Definition of CPU_MAP_USED_FLAG column in CPU mapping table.
*/
enum ProcessorUseStatus {
NOT_USED = -1, //!< Processor is not bound to thread
CPU_USED = 1, //!< CPU is in using
CPU_BLOCKED = -100, //!< Processor is blocked to use
NOT_USED = -1, //!< Processor is not bound to thread
CPU_USED = 1, //!< CPU is in using
};
/**
+14 -6
View File
@@ -63,6 +63,7 @@ void parse_processor_info_win(const char* base_ptr,
int group_end = 0;
int group_id = 0;
int group_type = 0;
int num_blocked = 0;
int num_package = 0;
@@ -141,14 +142,18 @@ void parse_processor_info_win(const char* base_ptr,
if ((_processors > group_start) && (_processors <= group_end)) {
proc_info[CPU_MAP_CORE_TYPE] = group_type;
proc_info[CPU_MAP_GROUP_ID] = group_id;
_proc_type_table[0][group_type]++;
if (group_id == CPU_BLOCKED) {
proc_info[CPU_MAP_USED_FLAG] = CPU_BLOCKED;
num_blocked++;
} else {
_proc_type_table[0][group_type]++;
}
}
_cpu_mapping_table.push_back(proc_info);
}
_proc_type_table[0][ALL_PROC] += list_len;
_processors += list_len;
_cores++;
} else if ((info->Relationship == RelationCache) && (info->Cache.Level == 2)) {
MaskToList(info->Cache.GroupMask.Mask);
@@ -170,15 +175,15 @@ void parse_processor_info_win(const char* base_ptr,
if (_processors <= list[list_len - 1] + base_proc) {
group_start = list[0];
group_end = list[list_len - 1];
group_id = group;
group_id = CPU_BLOCKED;
group_type = EFFICIENT_CORE_PROC;
}
for (int m = 0; m < _processors - list[0]; m++) {
_cpu_mapping_table[list[m] + base_proc][CPU_MAP_CORE_TYPE] = EFFICIENT_CORE_PROC;
_cpu_mapping_table[list[m] + base_proc][CPU_MAP_GROUP_ID] = group;
_proc_type_table[0][EFFICIENT_CORE_PROC]++;
_cpu_mapping_table[list[m] + base_proc][CPU_MAP_GROUP_ID] = group_id;
_cpu_mapping_table[list[m] + base_proc][CPU_MAP_USED_FLAG] = CPU_BLOCKED;
}
group++;
num_blocked++;
} else if (1 == list_len) {
_cpu_mapping_table[list[0] + base_proc][CPU_MAP_CORE_TYPE] = MAIN_CORE_PROC;
_cpu_mapping_table[list[0] + base_proc][CPU_MAP_GROUP_ID] = group;
@@ -188,6 +193,9 @@ void parse_processor_info_win(const char* base_ptr,
}
}
_sockets++;
_processors -= num_blocked;
_cores -= num_blocked;
_proc_type_table[0][ALL_PROC] -= num_blocked;
if (_sockets > 1) {
_proc_type_table.push_back(_proc_type_table[0]);
_proc_type_table[0] = proc_init_line;
@@ -1672,23 +1672,23 @@ WinCpuMapTestCase _1sockets_24cores_hyperthreading_set2 = {
};
WinCpuMapTestCase _1sockets_22cores_hyperthreading = {
22,
20,
1,
1,
16,
{{22, 6, 10, 6, 0, 0}},
14,
{{20, 6, 8, 6, 0, 0}},
{
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
{2, 0, 0, 1, EFFICIENT_CORE_PROC, 1, -1}, {3, 0, 0, 2, EFFICIENT_CORE_PROC, 1, -1},
{4, 0, 0, 3, EFFICIENT_CORE_PROC, 1, -1}, {5, 0, 0, 4, EFFICIENT_CORE_PROC, 1, -1},
{6, 0, 0, 5, EFFICIENT_CORE_PROC, 2, -1}, {7, 0, 0, 6, EFFICIENT_CORE_PROC, 2, -1},
{8, 0, 0, 7, EFFICIENT_CORE_PROC, 2, -1}, {9, 0, 0, 8, EFFICIENT_CORE_PROC, 2, -1},
{10, 0, 0, 9, HYPER_THREADING_PROC, 3, -1}, {11, 0, 0, 9, MAIN_CORE_PROC, 3, -1},
{12, 0, 0, 10, HYPER_THREADING_PROC, 4, -1}, {13, 0, 0, 10, MAIN_CORE_PROC, 4, -1},
{14, 0, 0, 11, HYPER_THREADING_PROC, 5, -1}, {15, 0, 0, 11, MAIN_CORE_PROC, 5, -1},
{16, 0, 0, 12, HYPER_THREADING_PROC, 6, -1}, {17, 0, 0, 12, MAIN_CORE_PROC, 6, -1},
{18, 0, 0, 13, HYPER_THREADING_PROC, 7, -1}, {19, 0, 0, 13, MAIN_CORE_PROC, 7, -1},
{20, 0, 0, 14, EFFICIENT_CORE_PROC, 8, -1}, {21, 0, 0, 15, EFFICIENT_CORE_PROC, 8, -1},
{0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1}, {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
{2, 0, 0, 1, EFFICIENT_CORE_PROC, 1, -1}, {3, 0, 0, 2, EFFICIENT_CORE_PROC, 1, -1},
{4, 0, 0, 3, EFFICIENT_CORE_PROC, 1, -1}, {5, 0, 0, 4, EFFICIENT_CORE_PROC, 1, -1},
{6, 0, 0, 5, EFFICIENT_CORE_PROC, 2, -1}, {7, 0, 0, 6, EFFICIENT_CORE_PROC, 2, -1},
{8, 0, 0, 7, EFFICIENT_CORE_PROC, 2, -1}, {9, 0, 0, 8, EFFICIENT_CORE_PROC, 2, -1},
{10, 0, 0, 9, HYPER_THREADING_PROC, 3, -1}, {11, 0, 0, 9, MAIN_CORE_PROC, 3, -1},
{12, 0, 0, 10, HYPER_THREADING_PROC, 4, -1}, {13, 0, 0, 10, MAIN_CORE_PROC, 4, -1},
{14, 0, 0, 11, HYPER_THREADING_PROC, 5, -1}, {15, 0, 0, 11, MAIN_CORE_PROC, 5, -1},
{16, 0, 0, 12, HYPER_THREADING_PROC, 6, -1}, {17, 0, 0, 12, MAIN_CORE_PROC, 6, -1},
{18, 0, 0, 13, HYPER_THREADING_PROC, 7, -1}, {19, 0, 0, 13, MAIN_CORE_PROC, 7, -1},
{20, 0, 0, 14, EFFICIENT_CORE_PROC, -100, -100}, {21, 0, 0, 15, EFFICIENT_CORE_PROC, -100, -100},
},
{"0300000030000000000000000000000000000000000000000000000000000100ffff3f0000000000000000000000000000000000300000000"
"10100000000000000000000000000000000000000000100030000000000000000000000000000000700000030000000000000000000000000"