return;
}
- /* Let's implement here the automatic binding to the first available
- * NUMA node when thread count is not set, taskset is not used and
- * no cpu-map directive is present.
- */
-
- if (global.numa_cpu_mapping && !global.nbthread && !cpu_mask_forced && !cpu_map_configured()) {
- int first_node_id = -1;
- int second_node_id = -1;
- int cpu_count = 0;
-
- /* determine first node with usable CPUs */
- for (cpu = 0; cpu <= cpu_topo_lastcpu; cpu++) {
- if (ha_cpu_topo[cpu].st & HA_CPU_F_EXCL_MASK)
- continue;
-
- if (ha_cpu_topo[cpu].no_id >= 0) {
- if (first_node_id < 0)
- first_node_id = ha_cpu_topo[cpu].no_id;
- else {
- second_node_id = ha_cpu_topo[cpu].no_id;
- break;
- }
- }
- }
-
- if (second_node_id >= 0) {
- /* ignore all CPUs of other nodes, and count them */
- for (cpu = 0; cpu <= cpu_topo_lastcpu; cpu++) {
- if (ha_cpu_topo[cpu].no_id != first_node_id)
- ha_cpu_topo[cpu].st |= HA_CPU_F_IGNORED;
- else if (!(ha_cpu_topo[cpu].st & HA_CPU_F_EXCL_MASK))
- cpu_count++;
- }
- ha_diag_warning("Multi-socket cpu detected, automatically binding on active CPUs of '%d' (%u active cpu(s))\n", first_node_id, cpu_count);
- }
- }
-
if (!ha_cpuset_count(&cpu_map[0].thread[0])) {
/* thread 1 is not mapped, no policy was applied, so we have to
* count the threads ourselves.