| /xnu-11215/doc/scheduler/ |
| H A D | sched_clutch_edge.md | 3 The intra-cluster thread scheduling design. 172 * Improved performance from avoid expensive inter-cluster, inter-die cache fills 198 …cluster & processor for a runnable thread, the edge scheduler uses the preferred cluster for the t… 234 * If preferred cluster scheduling latency is 0, return preferred cluster 235 * Otherwise, for each cluster which is not the preferred cluster, 237 * If scheduling latency metric is 0, return cluster 238 * Otherwise, calulate the scheduling latency delta between the cluster and the preferred cluster 239 * If delta is less than the edge weight between preferred cluster and cluster, continue 241 * Return cluster with largest scheduling latency delta 263 * (4) Steal a thread from another cluster based on sce_steal_allowed & cluster loads (sched_edge_st… [all …]
|
| /xnu-11215/osfmk/arm64/ |
| H A D | machine_routines.c | 1233 if (cluster->num_cpus == 0) { in ml_parse_cpu_topology() 1241 cluster->die_id = cpu->die_id; in ml_parse_cpu_topology() 1243 cluster->first_cpu_id = cpu->cpu_id; in ml_parse_cpu_topology() 1252 ml_read_reg_range(child, "acc-impl-reg", &cluster->acc_IMPL_pa, &cluster->acc_IMPL_len); in ml_parse_cpu_topology() 1253 ml_read_reg_range(child, "cpm-impl-reg", &cluster->cpm_IMPL_pa, &cluster->cpm_IMPL_len); in ml_parse_cpu_topology() 1267 cluster->num_cpus++; in ml_parse_cpu_topology() 1273 topology_info.boot_cluster = cluster; in ml_parse_cpu_topology() 1349 if (cluster->acc_IMPL_pa) { in ml_map_cpu_pio() 1350 cluster->acc_IMPL_regs = (vm_offset_t)ml_io_map(cluster->acc_IMPL_pa, cluster->acc_IMPL_len); in ml_map_cpu_pio() 1352 if (cluster->cpm_IMPL_pa) { in ml_map_cpu_pio() [all …]
|
| H A D | monotonic_arm64.c | 553 unsigned int cluster = topo->cpus[cpu].cluster_id; in _broadcast_block_trampoline() local 554 if (topo->clusters[cluster].first_cpu_id == cpu) { in _broadcast_block_trampoline() 839 ml_topology_cluster_t *cluster = &topology_info->clusters[monid]; in uncore_init() local 840 cpm_impl[monid] = (uintptr_t)cluster->cpm_IMPL_regs; in uncore_init() 841 acc_impl[monid] = (uintptr_t)cluster->acc_IMPL_regs; in uncore_init()
|
| /xnu-11215/bsd/kern/ |
| H A D | sys_recount.c | 79 cluster_type_t cluster = cpu_type_for_perflevel(perflevel); in _perflevel_index_to_cpu_kind() local 81 cluster_type_t cluster = CLUSTER_TYPE_SMP; in _perflevel_index_to_cpu_kind() 84 switch (cluster) { in _perflevel_index_to_cpu_kind() 95 panic("recount: unexpected CPU type %d for perflevel %d", cluster, in _perflevel_index_to_cpu_kind()
|
| /xnu-11215/doc/observability/ |
| H A D | mt_stackshot.md | 68 Stackshot uses a basic per-cluster bump allocator to allocate space within the 69 buffer. Each cluster gets its own bump allocator to mitigate cache contention, 70 with space split evenly between each cluster. If a cluster runs out of buffer 73 Memory that is freed is put into a per-cluster freelist. Even if the data was 74 originally allocated from a different cluster's buffer, it will be put into the 75 current cluster's freelist (again, to reduce cache effects). The freelist is a 76 last resort, and is only used if the current cluster's buffer space fills.
|
| /xnu-11215/doc/building/ |
| H A D | xnu_build_consolidation.md | 10 core/cluster counts or cache sizes). Similarly, SoC-specific fix-ups are usually conditionally comp… 95 ### Deriving core/cluster counts from device tree 104 * Extending the `ml_*` API to extract cluster information from the topology parser. New APIs includ… 108 * Removing hardcoded core counts (`CPU_COUNT`) and cluster counts (`ARM_CLUSTER_COUNT`) from XNU, a… 113 ### Allocating memory that is core size/cluster size/cache size aligned 116 element per core or cluster. Whilst this information is not known precisely at compile time anymore…
|
| /xnu-11215/osfmk/kern/ |
| H A D | sched_clutch.c | 4119 …for (int cluster = bitmap_first(foreign_pset_bitmap, sched_edge_max_clusters); cluster >= 0; clust… in sched_edge_foreign_runnable_thread_available() local 4125 processor_set_t target_pset = pset_array[cluster]; in sched_edge_foreign_runnable_thread_available() 4144 …for (int cluster = bitmap_first(foreign_pset_bitmap, sched_edge_max_clusters); cluster >= 0; clust… in sched_edge_foreign_runnable_thread_remove() local 4150 processor_set_t target_pset = pset_array[cluster]; in sched_edge_foreign_runnable_thread_remove() 4214 int cluster = -1; in sched_edge_foreign_running_thread_available() local 4215 …while ((cluster = sched_edge_iterate_clusters_ordered(pset, foreign_pset_bitmap[0], cluster)) != -… in sched_edge_foreign_running_thread_available() 4217 processor_set_t target_pset = pset_array[cluster]; in sched_edge_foreign_running_thread_available() 4469 …for (int cluster = bitmap_first(foreign_pset_bitmap, sched_edge_max_clusters); cluster >= 0; clust… in sched_edge_balance() local 4471 processor_set_t target_pset = pset_array[cluster]; in sched_edge_balance()
|
| H A D | sched_prim.c | 7629 ml_topology_cluster_t* cluster = &topology->clusters[i]; in sched_compute_requested_powered_cores() local 7630 if ((cluster->cpu_mask & online_cores_goal) != 0) { in sched_compute_requested_powered_cores() 7631 workaround_online_cores |= cluster->cpu_mask; in sched_compute_requested_powered_cores() 8112 ml_topology_cluster_t* cluster = &topology->clusters[i]; in die_and_cluster_to_cpu_mask() local 8113 if ((cluster->die_id == die_id) && in die_and_cluster_to_cpu_mask() 8114 (cluster->die_cluster_id == die_cluster_id)) { in die_and_cluster_to_cpu_mask() 8115 return cluster->cpu_mask; in die_and_cluster_to_cpu_mask()
|
| /xnu-11215/osfmk/arm/ |
| H A D | machine_routines_common.c | 1416 ml_topology_cluster_t *cluster = &ml_get_topology_info()->clusters[i]; in ml_cpu_cache_sharing() local 1417 if ((1 << cluster->cluster_type) & cluster_types) { in ml_cpu_cache_sharing() 1418 cpu_number += cluster->num_cpus; in ml_cpu_cache_sharing() 1419 cluster_types &= ~(1 << cluster->cluster_type); in ml_cpu_cache_sharing()
|
| /xnu-11215/osfmk/mach/ |
| H A D | host_priv.defs | 119 * Also sets the default cluster size used for pagein/pageout
|
| /xnu-11215/config/ |
| H A D | MASTER | 108 options CONFIG_MBUF_JUMBO # jumbo cluster pool # <config_mbuf_jumbo>
|
| /xnu-11215/tests/ |
| H A D | stackshot_tests.m | 2295 /* Check cluster types */ 2299 …exp_cluster_types containsObject:cluster_type], "Type of CPU cluster in expected CPU cluster types… 2378 /* Perform AMP tests with different cluster types active */
|