block SOC Ecore to be used in multi-threading on Windows (#18910)
This commit is contained in:
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
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in new issue
Block a user