/linux-6.6.21/drivers/cpufreq/ |
D | intel_pstate.c | 229 int cpu; member 284 int (*get_max)(int cpu); 285 int (*get_max_physical)(int cpu); 286 int (*get_min)(int cpu); 287 int (*get_turbo)(int cpu); 289 int (*get_cpu_scaling)(int cpu); 352 static void intel_pstate_set_itmt_prio(int cpu) in intel_pstate_set_itmt_prio() argument 358 ret = cppc_get_perf_caps(cpu, &cppc_perf); in intel_pstate_set_itmt_prio() 368 cppc_perf.highest_perf = HWP_HIGHEST_PERF(READ_ONCE(all_cpu_data[cpu]->hwp_cap_cached)); in intel_pstate_set_itmt_prio() 375 sched_set_itmt_core_prio(cppc_perf.highest_perf, cpu); in intel_pstate_set_itmt_prio() [all …]
|
/linux-6.6.21/arch/arm/boot/dts/intel/axm/ |
D | axm5516-cpus.dtsi | 13 cpu-map { 16 cpu = <&CPU0>; 19 cpu = <&CPU1>; 22 cpu = <&CPU2>; 25 cpu = <&CPU3>; 30 cpu = <&CPU4>; 33 cpu = <&CPU5>; 36 cpu = <&CPU6>; 39 cpu = <&CPU7>; 44 cpu = <&CPU8>; [all …]
|
/linux-6.6.21/arch/powerpc/kernel/ |
D | smp.c | 286 void smp_muxed_ipi_set_message(int cpu, int msg) in smp_muxed_ipi_set_message() argument 288 struct cpu_messages *info = &per_cpu(ipi_message, cpu); in smp_muxed_ipi_set_message() 298 void smp_muxed_ipi_message_pass(int cpu, int msg) in smp_muxed_ipi_message_pass() argument 300 smp_muxed_ipi_set_message(cpu, msg); in smp_muxed_ipi_message_pass() 306 smp_ops->cause_ipi(cpu); in smp_muxed_ipi_message_pass() 360 static inline void do_message_pass(int cpu, int msg) in do_message_pass() argument 363 smp_ops->message_pass(cpu, msg); in do_message_pass() 366 smp_muxed_ipi_message_pass(cpu, msg); in do_message_pass() 370 void arch_smp_send_reschedule(int cpu) in arch_smp_send_reschedule() argument 373 do_message_pass(cpu, PPC_MSG_RESCHEDULE); in arch_smp_send_reschedule() [all …]
|
D | tau_6xx.c | 55 static void set_thresholds(unsigned long cpu) in set_thresholds() argument 60 mtspr(SPRN_THRM1, THRM1_THRES(tau[cpu].low) | THRM1_V | maybe_tie | THRM1_TID); in set_thresholds() 63 mtspr(SPRN_THRM2, THRM1_THRES(tau[cpu].high) | THRM1_V | maybe_tie); in set_thresholds() 66 static void TAUupdate(int cpu) in TAUupdate() argument 77 if (tau[cpu].low >= step_size) { in TAUupdate() 78 tau[cpu].low -= step_size; in TAUupdate() 79 tau[cpu].high -= (step_size - window_expand); in TAUupdate() 81 tau[cpu].grew = 1; in TAUupdate() 88 if (tau[cpu].high <= 127 - step_size) { in TAUupdate() 89 tau[cpu].low += (step_size - window_expand); in TAUupdate() [all …]
|
D | watchdog.c | 148 int cpu = raw_smp_processor_id(); in wd_lockup_ipi() local 151 pr_emerg("CPU %d Hard LOCKUP\n", cpu); in wd_lockup_ipi() 153 cpu, tb, per_cpu(wd_timer_tb, cpu), in wd_lockup_ipi() 154 tb_to_ns(tb - per_cpu(wd_timer_tb, cpu)) / 1000000); in wd_lockup_ipi() 182 static bool set_cpu_stuck(int cpu) in set_cpu_stuck() argument 184 cpumask_set_cpu(cpu, &wd_smp_cpus_stuck); in set_cpu_stuck() 185 cpumask_clear_cpu(cpu, &wd_smp_cpus_pending); in set_cpu_stuck() 200 static void watchdog_smp_panic(int cpu) in watchdog_smp_panic() argument 213 if (cpumask_test_cpu(cpu, &wd_smp_cpus_pending)) in watchdog_smp_panic() 220 if (c == cpu) in watchdog_smp_panic() [all …]
|
/linux-6.6.21/tools/testing/selftests/cpu-hotplug/ |
D | cpu-on-off-test.sh | 27 if ! ls $SYSFS/devices/system/cpu/cpu* > /dev/null 2>&1; then 28 echo $msg cpu hotplug is not supported >&2 33 online_cpus=`cat $SYSFS/devices/system/cpu/online` 41 present_cpus=`cat $SYSFS/devices/system/cpu/present` 47 offline_cpus=`cat $SYSFS/devices/system/cpu/offline` 63 for cpu in $SYSFS/devices/system/cpu/cpu*; do 64 if [ -f $cpu/online ] && grep -q $state $cpu/online; then 65 echo ${cpu##/*/cpu} 82 grep -q 1 $SYSFS/devices/system/cpu/cpu$1/online 87 grep -q 0 $SYSFS/devices/system/cpu/cpu$1/online [all …]
|
/linux-6.6.21/drivers/base/ |
D | arch_topology.c | 63 int cpu; in topology_set_scale_freq_source() local 74 for_each_cpu(cpu, cpus) { in topology_set_scale_freq_source() 75 sfd = rcu_dereference(*per_cpu_ptr(&sft_data, cpu)); in topology_set_scale_freq_source() 79 rcu_assign_pointer(per_cpu(sft_data, cpu), data); in topology_set_scale_freq_source() 80 cpumask_set_cpu(cpu, &scale_freq_counters_mask); in topology_set_scale_freq_source() 94 int cpu; in topology_clear_scale_freq_source() local 98 for_each_cpu(cpu, cpus) { in topology_clear_scale_freq_source() 99 sfd = rcu_dereference(*per_cpu_ptr(&sft_data, cpu)); in topology_clear_scale_freq_source() 102 rcu_assign_pointer(per_cpu(sft_data, cpu), NULL); in topology_clear_scale_freq_source() 103 cpumask_clear_cpu(cpu, &scale_freq_counters_mask); in topology_clear_scale_freq_source() [all …]
|
D | cacheinfo.c | 25 #define ci_cacheinfo(cpu) (&per_cpu(ci_cpu_cacheinfo, cpu)) argument 26 #define cache_leaves(cpu) (ci_cacheinfo(cpu)->num_leaves) argument 27 #define per_cpu_cacheinfo(cpu) (ci_cacheinfo(cpu)->info_list) argument 28 #define per_cpu_cacheinfo_idx(cpu, idx) \ argument 29 (per_cpu_cacheinfo(cpu) + (idx)) 34 struct cpu_cacheinfo *get_cpu_cacheinfo(unsigned int cpu) in get_cpu_cacheinfo() argument 36 return ci_cacheinfo(cpu); in get_cpu_cacheinfo() 57 bool last_level_cache_is_valid(unsigned int cpu) in last_level_cache_is_valid() argument 61 if (!cache_leaves(cpu)) in last_level_cache_is_valid() 64 llc = per_cpu_cacheinfo_idx(cpu, cache_leaves(cpu) - 1); in last_level_cache_is_valid() [all …]
|
/linux-6.6.21/include/linux/ |
D | topology.h | 94 static inline int cpu_to_node(int cpu) in cpu_to_node() argument 96 return per_cpu(numa_node, cpu); in cpu_to_node() 108 static inline void set_cpu_numa_node(int cpu, int node) in set_cpu_numa_node() argument 110 per_cpu(numa_node, cpu) = node; in set_cpu_numa_node() 151 static inline int cpu_to_mem(int cpu) in cpu_to_mem() argument 153 return per_cpu(_numa_mem_, cpu); in cpu_to_mem() 158 static inline void set_cpu_numa_mem(int cpu, int node) in set_cpu_numa_mem() argument 160 per_cpu(_numa_mem_, cpu) = node; in set_cpu_numa_mem() 175 static inline int cpu_to_mem(int cpu) in cpu_to_mem() argument 177 return cpu_to_node(cpu); in cpu_to_mem() [all …]
|
/linux-6.6.21/Documentation/translations/zh_CN/scheduler/ |
D | sched-bwc.rst | 24 达“配额”微秒的CPU时间。当cgroup中的线程可运行时,该配额以时间片段的方式被分配到每个cpu 29 它以需求为基础被转移到cpu-local“筒仓”,在每次更新中转移的数量是可调整的,被描述为“片“(时 65 配额、周期和突发是在cpu子系统内通过cgroupfs管理的。 69 :ref:`Documentation/admin-guide/cgroup-v2.rst <cgroup-v2-cpu>`. 71 - cpu.cfs_quota_us:在一个时期内补充的运行时间(微秒)。 72 - cpu.cfs_period_us:一个周期的长度(微秒)。 73 - cpu.stat: 输出节流统计数据[下面进一步解释] 74 - cpu.cfs_burst_us:最大累积运行时间(微秒)。 78 cpu.cfs_period_us=100ms 79 cpu.cfs_quota_us=-1 [all …]
|
/linux-6.6.21/arch/microblaze/kernel/cpu/ |
D | cpuinfo-static.c | 23 void __init set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu) in set_cpuinfo_static() argument 28 (fcpu(cpu, "xlnx,use-barrel") ? PVR0_USE_BARREL_MASK : 0) | in set_cpuinfo_static() 29 (fcpu(cpu, "xlnx,use-msr-instr") ? PVR2_USE_MSR_INSTR : 0) | in set_cpuinfo_static() 30 (fcpu(cpu, "xlnx,use-pcmp-instr") ? PVR2_USE_PCMP_INSTR : 0) | in set_cpuinfo_static() 31 (fcpu(cpu, "xlnx,use-div") ? PVR0_USE_DIV_MASK : 0); in set_cpuinfo_static() 43 ci->use_mult = fcpu(cpu, "xlnx,use-hw-mul"); in set_cpuinfo_static() 51 ci->use_fpu = fcpu(cpu, "xlnx,use-fpu"); in set_cpuinfo_static() 59 (fcpu(cpu, "xlnx,unaligned-exceptions") ? in set_cpuinfo_static() 61 (fcpu(cpu, "xlnx,ill-opcode-exception") ? in set_cpuinfo_static() 63 (fcpu(cpu, "xlnx,iopb-bus-exception") ? in set_cpuinfo_static() [all …]
|
/linux-6.6.21/arch/arm/mach-tegra/ |
D | platsmp.c | 36 static void tegra_secondary_init(unsigned int cpu) in tegra_secondary_init() argument 38 cpumask_set_cpu(cpu, &tegra_cpu_init_mask); in tegra_secondary_init() 42 static int tegra20_boot_secondary(unsigned int cpu, struct task_struct *idle) in tegra20_boot_secondary() argument 44 cpu = cpu_logical_map(cpu); in tegra20_boot_secondary() 54 tegra_put_cpu_in_reset(cpu); in tegra20_boot_secondary() 62 flowctrl_write_cpu_halt(cpu, 0); in tegra20_boot_secondary() 64 tegra_enable_cpu_clock(cpu); in tegra20_boot_secondary() 65 flowctrl_write_cpu_csr(cpu, 0); /* Clear flow controller CSR. */ in tegra20_boot_secondary() 66 tegra_cpu_out_of_reset(cpu); in tegra20_boot_secondary() 70 static int tegra30_boot_secondary(unsigned int cpu, struct task_struct *idle) in tegra30_boot_secondary() argument [all …]
|
/linux-6.6.21/arch/powerpc/include/asm/ |
D | smp.h | 34 extern int cpu_to_chip_id(int cpu); 44 void (*message_pass)(int cpu, int msg); 46 void (*cause_ipi)(int cpu); 48 int (*cause_nmi_ipi)(int cpu); 67 extern int smp_send_nmi_ipi(int cpu, void (*fn)(struct pt_regs *), u64 delay_us); 68 extern int smp_send_safe_nmi_ipi(int cpu, void (*fn)(struct pt_regs *), u64 delay_us); 78 void generic_cpu_die(unsigned int cpu); 79 void generic_set_cpu_dead(unsigned int cpu); 80 void generic_set_cpu_up(unsigned int cpu); 81 int generic_check_cpu_restart(unsigned int cpu); [all …]
|
/linux-6.6.21/arch/arm/mach-meson/ |
D | platsmp.c | 38 static struct reset_control *meson_smp_get_core_reset(int cpu) in meson_smp_get_core_reset() argument 40 struct device_node *np = of_get_cpu_node(cpu, 0); in meson_smp_get_core_reset() 45 static void meson_smp_set_cpu_ctrl(int cpu, bool on_off) in meson_smp_set_cpu_ctrl() argument 50 val |= BIT(cpu); in meson_smp_set_cpu_ctrl() 52 val &= ~BIT(cpu); in meson_smp_set_cpu_ctrl() 116 static void meson_smp_begin_secondary_boot(unsigned int cpu) in meson_smp_begin_secondary_boot() argument 125 sram_base + MESON_SMP_SRAM_CPU_CTRL_ADDR_REG(cpu)); in meson_smp_begin_secondary_boot() 131 scu_cpu_power_enable(scu_base, cpu); in meson_smp_begin_secondary_boot() 134 static int meson_smp_finalize_secondary_boot(unsigned int cpu) in meson_smp_finalize_secondary_boot() argument 139 while (readl(sram_base + MESON_SMP_SRAM_CPU_CTRL_ADDR_REG(cpu))) { in meson_smp_finalize_secondary_boot() [all …]
|
/linux-6.6.21/arch/arm/mach-bcm/ |
D | platsmp-brcmstb.c | 59 static int per_cpu_sw_state_rd(u32 cpu) in per_cpu_sw_state_rd() argument 61 sync_cache_r(SHIFT_PERCPU_PTR(&per_cpu_sw_state, per_cpu_offset(cpu))); in per_cpu_sw_state_rd() 62 return per_cpu(per_cpu_sw_state, cpu); in per_cpu_sw_state_rd() 65 static void per_cpu_sw_state_wr(u32 cpu, int val) in per_cpu_sw_state_wr() argument 68 per_cpu(per_cpu_sw_state, cpu) = val; in per_cpu_sw_state_wr() 69 sync_cache_w(SHIFT_PERCPU_PTR(&per_cpu_sw_state, per_cpu_offset(cpu))); in per_cpu_sw_state_wr() 72 static inline void per_cpu_sw_state_wr(u32 cpu, int val) { } in per_cpu_sw_state_wr() argument 75 static void __iomem *pwr_ctrl_get_base(u32 cpu) in pwr_ctrl_get_base() argument 78 base += (cpu_logical_map(cpu) * 4); in pwr_ctrl_get_base() 82 static u32 pwr_ctrl_rd(u32 cpu) in pwr_ctrl_rd() argument [all …]
|
/linux-6.6.21/arch/x86/include/asm/ |
D | topology.h | 48 extern int __cpu_to_node(int cpu); 51 extern int early_cpu_to_node(int cpu); 56 static inline int early_cpu_to_node(int cpu) in early_cpu_to_node() argument 58 return early_per_cpu(x86_cpu_to_node_map, cpu); in early_cpu_to_node() 94 static inline int early_cpu_to_node(int cpu) in early_cpu_to_node() argument 105 extern const struct cpumask *cpu_coregroup_mask(int cpu); 106 extern const struct cpumask *cpu_clustergroup_mask(int cpu); 108 #define topology_logical_package_id(cpu) (cpu_data(cpu).logical_proc_id) argument 109 #define topology_physical_package_id(cpu) (cpu_data(cpu).phys_proc_id) argument 110 #define topology_logical_die_id(cpu) (cpu_data(cpu).logical_die_id) argument [all …]
|
/linux-6.6.21/arch/loongarch/kernel/ |
D | smp.c | 81 unsigned int cpu, i; in show_ipi_list() local 85 for_each_online_cpu(cpu) in show_ipi_list() 86 seq_printf(p, "%10u ", per_cpu(irq_stat, cpu).ipi_irqs[i]); in show_ipi_list() 91 static inline void set_cpu_core_map(int cpu) in set_cpu_core_map() argument 95 cpumask_set_cpu(cpu, &cpu_core_setup_map); in set_cpu_core_map() 98 if (cpu_data[cpu].package == cpu_data[i].package) { in set_cpu_core_map() 99 cpumask_set_cpu(i, &cpu_core_map[cpu]); in set_cpu_core_map() 100 cpumask_set_cpu(cpu, &cpu_core_map[i]); in set_cpu_core_map() 105 static inline void set_cpu_sibling_map(int cpu) in set_cpu_sibling_map() argument 109 cpumask_set_cpu(cpu, &cpu_sibling_setup_map); in set_cpu_sibling_map() [all …]
|
/linux-6.6.21/arch/x86/xen/ |
D | smp.c | 33 void xen_smp_intr_free(unsigned int cpu) in xen_smp_intr_free() argument 35 kfree(per_cpu(xen_resched_irq, cpu).name); in xen_smp_intr_free() 36 per_cpu(xen_resched_irq, cpu).name = NULL; in xen_smp_intr_free() 37 if (per_cpu(xen_resched_irq, cpu).irq >= 0) { in xen_smp_intr_free() 38 unbind_from_irqhandler(per_cpu(xen_resched_irq, cpu).irq, NULL); in xen_smp_intr_free() 39 per_cpu(xen_resched_irq, cpu).irq = -1; in xen_smp_intr_free() 41 kfree(per_cpu(xen_callfunc_irq, cpu).name); in xen_smp_intr_free() 42 per_cpu(xen_callfunc_irq, cpu).name = NULL; in xen_smp_intr_free() 43 if (per_cpu(xen_callfunc_irq, cpu).irq >= 0) { in xen_smp_intr_free() 44 unbind_from_irqhandler(per_cpu(xen_callfunc_irq, cpu).irq, NULL); in xen_smp_intr_free() [all …]
|
D | smp_pv.c | 61 int cpu; in cpu_bringup() local 74 cpu = smp_processor_id(); in cpu_bringup() 75 smp_store_cpu_info(cpu); in cpu_bringup() 76 cpu_data(cpu).x86_max_cores = 1; in cpu_bringup() 77 set_cpu_sibling_map(cpu); in cpu_bringup() 83 notify_cpu_starting(cpu); in cpu_bringup() 85 set_cpu_online(cpu, true); in cpu_bringup() 99 void xen_smp_intr_free_pv(unsigned int cpu) in xen_smp_intr_free_pv() argument 101 kfree(per_cpu(xen_irq_work, cpu).name); in xen_smp_intr_free_pv() 102 per_cpu(xen_irq_work, cpu).name = NULL; in xen_smp_intr_free_pv() [all …]
|
/linux-6.6.21/kernel/ |
D | smpboot.c | 30 struct task_struct *idle_thread_get(unsigned int cpu) in idle_thread_get() argument 32 struct task_struct *tsk = per_cpu(idle_threads, cpu); in idle_thread_get() 50 static __always_inline void idle_init(unsigned int cpu) in idle_init() argument 52 struct task_struct *tsk = per_cpu(idle_threads, cpu); in idle_init() 55 tsk = fork_idle(cpu); in idle_init() 57 pr_err("SMP: fork_idle() failed for CPU %u\n", cpu); in idle_init() 59 per_cpu(idle_threads, cpu) = tsk; in idle_init() 68 unsigned int cpu, boot_cpu; in idle_threads_init() local 72 for_each_possible_cpu(cpu) { in idle_threads_init() 73 if (cpu != boot_cpu) in idle_threads_init() [all …]
|
/linux-6.6.21/arch/arm64/kernel/ |
D | smp.c | 83 static void ipi_setup(int cpu); 86 static void ipi_teardown(int cpu); 87 static int op_cpu_kill(unsigned int cpu); 89 static inline int op_cpu_kill(unsigned int cpu) in op_cpu_kill() argument 100 static int boot_secondary(unsigned int cpu, struct task_struct *idle) in boot_secondary() argument 102 const struct cpu_operations *ops = get_cpu_ops(cpu); in boot_secondary() 105 return ops->cpu_boot(cpu); in boot_secondary() 112 int __cpu_up(unsigned int cpu, struct task_struct *idle) in __cpu_up() argument 125 ret = boot_secondary(cpu, idle); in __cpu_up() 127 pr_err("CPU%u: failed to boot: %d\n", cpu, ret); in __cpu_up() [all …]
|
/linux-6.6.21/drivers/xen/ |
D | cpu_hotplug.c | 12 static void enable_hotplug_cpu(int cpu) in enable_hotplug_cpu() argument 14 if (!cpu_present(cpu)) in enable_hotplug_cpu() 15 xen_arch_register_cpu(cpu); in enable_hotplug_cpu() 17 set_cpu_present(cpu, true); in enable_hotplug_cpu() 20 static void disable_hotplug_cpu(int cpu) in disable_hotplug_cpu() argument 22 if (!cpu_is_hotpluggable(cpu)) in disable_hotplug_cpu() 25 if (cpu_online(cpu)) in disable_hotplug_cpu() 26 device_offline(get_cpu_device(cpu)); in disable_hotplug_cpu() 27 if (!cpu_online(cpu) && cpu_present(cpu)) { in disable_hotplug_cpu() 28 xen_arch_unregister_cpu(cpu); in disable_hotplug_cpu() [all …]
|
/linux-6.6.21/arch/s390/include/asm/ |
D | topology.h | 9 struct cpu; 29 #define topology_physical_package_id(cpu) (cpu_topology[cpu].socket_id) argument 30 #define topology_thread_id(cpu) (cpu_topology[cpu].thread_id) argument 31 #define topology_sibling_cpumask(cpu) (&cpu_topology[cpu].thread_mask) argument 32 #define topology_core_id(cpu) (cpu_topology[cpu].core_id) argument 33 #define topology_core_cpumask(cpu) (&cpu_topology[cpu].core_mask) argument 34 #define topology_book_id(cpu) (cpu_topology[cpu].book_id) argument 35 #define topology_book_cpumask(cpu) (&cpu_topology[cpu].book_mask) argument 36 #define topology_drawer_id(cpu) (cpu_topology[cpu].drawer_id) argument 37 #define topology_drawer_cpumask(cpu) (&cpu_topology[cpu].drawer_mask) argument [all …]
|
/linux-6.6.21/tools/power/cpupower/utils/ |
D | cpufreq-info.c | 58 unsigned int cpu, nr_cpus; in proc_cpufreq_output() local 67 for (cpu = 0; cpu < nr_cpus; cpu++) { in proc_cpufreq_output() 68 policy = cpufreq_get_policy(cpu); in proc_cpufreq_output() 72 if (cpufreq_get_hardware_limits(cpu, &min, &max)) { in proc_cpufreq_output() 79 cpu , policy->min, max ? min_pctg : 0, policy->max, in proc_cpufreq_output() 126 static int get_boost_mode_x86(unsigned int cpu) in get_boost_mode_x86() argument 132 ret = cpufreq_has_boost_support(cpu, &support, &active, &b_states); in get_boost_mode_x86() 135 " on CPU %d -- are you root?\n"), cpu); in get_boost_mode_x86() 155 ret = decode_pstates(cpu, b_states, pstates, &pstate_no); in get_boost_mode_x86() 181 intel_turbo_ratio = msr_intel_get_turbo_ratio(cpu); in get_boost_mode_x86() [all …]
|
/linux-6.6.21/Documentation/devicetree/bindings/cpu/ |
D | cpu-topology.txt | 20 For instance in a system where CPUs support SMT, "cpu" nodes represent all 22 In systems where SMT is not supported "cpu" nodes represent all cores present 25 CPU topology bindings allow one to associate cpu nodes with hierarchical groups 29 Currently, only ARM/RISC-V intend to use this cpu topology binding but it may be 32 The cpu nodes, as per bindings defined in [4], represent the devices that 35 A topology description containing phandles to cpu nodes that are not compliant 39 2 - cpu-map node 42 The ARM/RISC-V CPU topology is defined within the cpu-map node, which is a direct 46 - cpu-map node 51 cpu-map node. [all …]
|