| /linux/drivers/cpufreq/ |
| H A D | intel_pstate.c | 230 int cpu; member 288 int (*get_max)(int cpu); 289 int (*get_max_physical)(int cpu); 290 int (*get_min)(int cpu); 291 int (*get_turbo)(int cpu); 293 int (*get_cpu_scaling)(int cpu); 362 static void intel_pstate_set_itmt_prio(int cpu) in intel_pstate_set_itmt_prio() argument 368 ret = cppc_get_perf_caps(cpu, &cppc_perf); in intel_pstate_set_itmt_prio() 377 cppc_perf.highest_perf = HWP_HIGHEST_PERF(READ_ONCE(all_cpu_data[cpu]->hwp_cap_cached)); in intel_pstate_set_itmt_prio() 384 sched_set_itmt_core_prio(cppc_perf.highest_perf, cpu); in intel_pstate_set_itmt_prio() [all …]
|
| /linux/drivers/base/ |
| H A D | arch_topology.c | 74 int cpu; in topology_set_scale_freq_source() local 85 for_each_cpu(cpu, cpus) { in topology_set_scale_freq_source() 86 sfd = rcu_dereference(*per_cpu_ptr(&sft_data, cpu)); in topology_set_scale_freq_source() 90 rcu_assign_pointer(per_cpu(sft_data, cpu), data); in topology_set_scale_freq_source() 91 cpumask_set_cpu(cpu, &scale_freq_counters_mask); in topology_set_scale_freq_source() 105 int cpu; in topology_clear_scale_freq_source() local 109 for_each_cpu(cpu, cpus) { in topology_clear_scale_freq_source() 110 sfd = rcu_dereference(*per_cpu_ptr(&sft_data, cpu)); in topology_clear_scale_freq_source() 113 rcu_assign_pointer(per_cpu(sft_data, cpu), NULL); in topology_clear_scale_freq_source() 114 cpumask_clear_cpu(cpu, &scale_freq_counters_mask); in topology_clear_scale_freq_source() [all …]
|
| H A D | cacheinfo.c | 26 #define ci_cacheinfo(cpu) (&per_cpu(ci_cpu_cacheinfo, cpu)) argument 27 #define cache_leaves(cpu) (ci_cacheinfo(cpu)->num_leaves) argument 28 #define per_cpu_cacheinfo(cpu) (ci_cacheinfo(cpu)->info_list) argument 29 #define per_cpu_cacheinfo_idx(cpu, idx) \ argument 30 (per_cpu_cacheinfo(cpu) + (idx)) 35 struct cpu_cacheinfo *get_cpu_cacheinfo(unsigned int cpu) in get_cpu_cacheinfo() argument 37 return ci_cacheinfo(cpu); in get_cpu_cacheinfo() 58 bool last_level_cache_is_valid(unsigned int cpu) in last_level_cache_is_valid() argument 62 if (!cache_leaves(cpu) || !per_cpu_cacheinfo(cpu)) in last_level_cache_is_valid() 65 llc = per_cpu_cacheinfo_idx(cpu, cache_leaves(cpu) - 1); in last_level_cache_is_valid() [all …]
|
| /linux/arch/powerpc/kernel/ |
| H A D | smp.c | 278 void smp_muxed_ipi_set_message(int cpu, int msg) in smp_muxed_ipi_set_message() argument 280 struct cpu_messages *info = &per_cpu(ipi_message, cpu); in smp_muxed_ipi_set_message() 290 void smp_muxed_ipi_message_pass(int cpu, int msg) in smp_muxed_ipi_message_pass() argument 292 smp_muxed_ipi_set_message(cpu, msg); in smp_muxed_ipi_message_pass() 298 smp_ops->cause_ipi(cpu); in smp_muxed_ipi_message_pass() 352 static inline void do_message_pass(int cpu, int msg) in do_message_pass() argument 355 smp_ops->message_pass(cpu, msg); in do_message_pass() 358 smp_muxed_ipi_message_pass(cpu, msg); in do_message_pass() 362 void arch_smp_send_reschedule(int cpu) in arch_smp_send_reschedule() argument 365 do_message_pass(cpu, PPC_MSG_RESCHEDULE); in arch_smp_send_reschedule() [all …]
|
| H A 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 …]
|
| H A D | watchdog.c | 149 int cpu = raw_smp_processor_id(); in wd_lockup_ipi() local 152 pr_emerg("CPU %d Hard LOCKUP\n", cpu); in wd_lockup_ipi() 154 cpu, tb, per_cpu(wd_timer_tb, cpu), in wd_lockup_ipi() 155 tb_to_ns(tb - per_cpu(wd_timer_tb, cpu)) / 1000000); in wd_lockup_ipi() 183 static bool set_cpu_stuck(int cpu) in set_cpu_stuck() argument 185 cpumask_set_cpu(cpu, &wd_smp_cpus_stuck); in set_cpu_stuck() 186 cpumask_clear_cpu(cpu, &wd_smp_cpus_pending); in set_cpu_stuck() 201 static void watchdog_smp_panic(int cpu) in watchdog_smp_panic() argument 214 if (cpumask_test_cpu(cpu, &wd_smp_cpus_pending)) in watchdog_smp_panic() 221 if (c == cpu) in watchdog_smp_panic() [all …]
|
| /linux/arch/arm/boot/dts/intel/axm/ |
| H A 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/include/linux/ |
| H A D | topology.h | 91 static inline int cpu_to_node(int cpu) in cpu_to_node() argument 93 return per_cpu(numa_node, cpu); in cpu_to_node() 105 static inline void set_cpu_numa_node(int cpu, int node) in set_cpu_numa_node() argument 107 per_cpu(numa_node, cpu) = node; in set_cpu_numa_node() 148 static inline int cpu_to_mem(int cpu) in cpu_to_mem() argument 150 return per_cpu(_numa_mem_, cpu); in cpu_to_mem() 155 static inline void set_cpu_numa_mem(int cpu, int node) in set_cpu_numa_mem() argument 157 per_cpu(_numa_mem_, cpu) = node; in set_cpu_numa_mem() 172 static inline int cpu_to_mem(int cpu) in cpu_to_mem() argument 174 return cpu_to_node(cpu); in cpu_to_mem() [all …]
|
| H A D | cpumask.h | 135 static __always_inline void cpu_max_bits_warn(unsigned int cpu, unsigned int bits) in cpu_max_bits_warn() argument 138 WARN_ON_ONCE(cpu >= bits); in cpu_max_bits_warn() 143 static __always_inline unsigned int cpumask_check(unsigned int cpu) in cpumask_check() argument 145 cpu_max_bits_warn(cpu, small_cpumask_bits); in cpumask_check() 146 return cpu; in cpumask_check() 379 #define for_each_cpu(cpu, mask) \ argument 380 for_each_set_bit(cpu, cpumask_bits(mask), small_cpumask_bits) 392 #define for_each_cpu_wrap(cpu, mask, start) \ argument 393 for_each_set_bit_wrap(cpu, cpumask_bits(mask), small_cpumask_bits, start) 409 #define for_each_cpu_and(cpu, mask1, mask2) \ argument [all …]
|
| /linux/arch/um/kernel/ |
| H A D | smp.c | 32 void arch_smp_send_reschedule(int cpu) in arch_smp_send_reschedule() argument 34 os_send_ipi(cpu, UML_IPI_RES); in arch_smp_send_reschedule() 37 void arch_send_call_function_single_ipi(int cpu) in arch_send_call_function_single_ipi() argument 39 os_send_ipi(cpu, UML_IPI_CALL_SINGLE); in arch_send_call_function_single_ipi() 44 int cpu; in arch_send_call_function_ipi_mask() local 46 for_each_cpu(cpu, mask) in arch_send_call_function_ipi_mask() 47 os_send_ipi(cpu, UML_IPI_CALL); in arch_send_call_function_ipi_mask() 52 int cpu, me = smp_processor_id(); in smp_send_stop() local 54 for_each_online_cpu(cpu) { in smp_send_stop() 55 if (cpu == me) in smp_send_stop() [all …]
|
| /linux/tools/perf/tests/ |
| H A D | topology.c | 72 struct perf_cpu cpu; in check_cpu_topology() local 101 if (!env->cpu && strncmp(env->arch, "s390", 4) && strncmp(env->arch, "aarch64", 7)) in check_cpu_topology() 115 TEST_ASSERT_VAL("Session header CPU map not set", env->cpu); in check_cpu_topology() 118 cpu.cpu = i; in check_cpu_topology() 119 if (!perf_cpu_map__has(map, cpu)) in check_cpu_topology() 122 env->cpu[i].core_id, in check_cpu_topology() 123 env->cpu[i].socket_id); in check_cpu_topology() 127 perf_cpu_map__for_each_cpu(cpu, i, map) { in check_cpu_topology() 128 id = aggr_cpu_id__cpu(cpu, NULL); in check_cpu_topology() 130 cpu.cpu == id.cpu.cpu); in check_cpu_topology() [all …]
|
| /linux/tools/testing/selftests/cpu-hotplug/ |
| H A 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/Documentation/translations/zh_CN/scheduler/ |
| H A 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/arch/arm/mach-meson/ |
| H A 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/arch/powerpc/include/asm/ |
| H A D | smp.h | 35 extern int cpu_to_chip_id(int cpu); 45 void (*message_pass)(int cpu, int msg); 47 void (*cause_ipi)(int cpu); 49 int (*cause_nmi_ipi)(int cpu); 68 extern int smp_send_nmi_ipi(int cpu, void (*fn)(struct pt_regs *), u64 delay_us); 69 extern int smp_send_safe_nmi_ipi(int cpu, void (*fn)(struct pt_regs *), u64 delay_us); 79 void generic_cpu_die(unsigned int cpu); 80 void generic_set_cpu_dead(unsigned int cpu); 81 void generic_set_cpu_up(unsigned int cpu); 82 int generic_check_cpu_restart(unsigned int cpu); [all …]
|
| H A D | topology.h | 48 static inline void update_numa_cpu_lookup_table(unsigned int cpu, int node) in update_numa_cpu_lookup_table() argument 50 numa_cpu_lookup_table[cpu] = node; in update_numa_cpu_lookup_table() 53 static inline int early_cpu_to_node(int cpu) in early_cpu_to_node() argument 57 nid = numa_cpu_lookup_table[cpu]; in early_cpu_to_node() 69 extern void map_cpu_to_node(int cpu, int node); 71 extern void unmap_cpu_from_node(unsigned long cpu); 76 static inline int early_cpu_to_node(int cpu) { return 0; } in early_cpu_to_node() argument 90 static inline void update_numa_cpu_lookup_table(unsigned int cpu, int node) {} in update_numa_cpu_lookup_table() argument 105 static inline void map_cpu_to_node(int cpu, int node) {} in map_cpu_to_node() argument 107 static inline void unmap_cpu_from_node(unsigned long cpu) {} in unmap_cpu_from_node() argument [all …]
|
| /linux/arch/arm/mach-bcm/ |
| H A 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/arch/arm/mach-tegra/ |
| H A 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/arch/x86/xen/ |
| H A D | smp.c | 32 void xen_smp_intr_free(unsigned int cpu) in xen_smp_intr_free() argument 34 kfree(per_cpu(xen_resched_irq, cpu).name); in xen_smp_intr_free() 35 per_cpu(xen_resched_irq, cpu).name = NULL; in xen_smp_intr_free() 36 if (per_cpu(xen_resched_irq, cpu).irq >= 0) { in xen_smp_intr_free() 37 unbind_from_irqhandler(per_cpu(xen_resched_irq, cpu).irq, NULL); in xen_smp_intr_free() 38 per_cpu(xen_resched_irq, cpu).irq = -1; in xen_smp_intr_free() 40 kfree(per_cpu(xen_callfunc_irq, cpu).name); in xen_smp_intr_free() 41 per_cpu(xen_callfunc_irq, cpu).name = NULL; in xen_smp_intr_free() 42 if (per_cpu(xen_callfunc_irq, cpu).irq >= 0) { in xen_smp_intr_free() 43 unbind_from_irqhandler(per_cpu(xen_callfunc_irq, cpu).irq, NULL); in xen_smp_intr_free() [all …]
|
| H A D | smp_pv.c | 59 int cpu; in cpu_bringup() local 71 cpu = smp_processor_id(); in cpu_bringup() 72 identify_secondary_cpu(cpu); in cpu_bringup() 73 set_cpu_sibling_map(cpu); in cpu_bringup() 79 notify_cpu_starting(cpu); in cpu_bringup() 81 set_cpu_online(cpu, true); in cpu_bringup() 95 void xen_smp_intr_free_pv(unsigned int cpu) in xen_smp_intr_free_pv() argument 97 kfree(per_cpu(xen_irq_work, cpu).name); in xen_smp_intr_free_pv() 98 per_cpu(xen_irq_work, cpu).name = NULL; in xen_smp_intr_free_pv() 99 if (per_cpu(xen_irq_work, cpu).irq >= 0) { in xen_smp_intr_free_pv() [all …]
|
| /linux/tools/power/cpupower/utils/ |
| H A D | cpufreq-info.c | 42 if (strstr(value, "cpu ")) in count_cpus() 44 if (sscanf(value, "cpu%d ", &cpunr) != 1) in count_cpus() 51 /* cpu count starts from 0, on error return 1 (UP) */ in count_cpus() 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 , polic in proc_cpufreq_output() 125 get_boost_mode_x86(unsigned int cpu) get_boost_mode_x86() argument 207 get_boost_mode_generic(unsigned int cpu) get_boost_mode_generic() argument 221 get_boost_mode(unsigned int cpu) get_boost_mode() argument 250 get_freq_kernel(unsigned int cpu,unsigned int human) get_freq_kernel() argument 269 get_freq_hardware(unsigned int cpu,unsigned int human) get_freq_hardware() argument 292 get_hardware_limits(unsigned int cpu,unsigned int human) get_hardware_limits() argument 315 get_driver(unsigned int cpu) get_driver() argument 329 get_policy(unsigned int cpu) get_policy() argument 351 get_available_governors(unsigned int cpu) get_available_governors() argument 374 get_affected_cpus(unsigned int cpu) get_affected_cpus() argument 395 get_related_cpus(unsigned int cpu) get_related_cpus() argument 416 get_freq_stats(unsigned int cpu,unsigned int human) get_freq_stats() argument 441 get_epp(unsigned int cpu,bool interactive) get_epp() argument 458 get_latency(unsigned int cpu,unsigned int human) get_latency() argument 481 get_perf_cap(unsigned int cpu) get_perf_cap() argument 490 debug_output_one(unsigned int cpu) debug_output_one() argument 548 unsigned int cpu = 0; cmd_freq_info() local [all...] |
| /linux/tools/perf/util/ |
| H A D | cpumap.c | 79 if (data->cpus_data.cpu[i] == (u16) -1) { in cpu_map__from_entries() 80 RC_CHK_ACCESS(map)->map[i].cpu = -1; in cpu_map__from_entries() 81 } else if (data->cpus_data.cpu[i] < INT16_MAX) { in cpu_map__from_entries() 82 RC_CHK_ACCESS(map)->map[i].cpu = (int16_t) data->cpus_data.cpu[i]; in cpu_map__from_entries() 84 pr_err("Invalid cpumap entry %u\n", data->cpus_data.cpu[i]); in cpu_map__from_entries() 110 int cpu; in cpu_map__from_mask() local 113 for_each_set_bit(cpu, local_copy, 64) { in cpu_map__from_mask() 114 if (cpu + cpus_per_i < INT16_MAX) { in cpu_map__from_mask() 115 RC_CHK_ACCESS(map)->map[j++].cpu = cpu + cpus_per_i; in cpu_map__from_mask() 117 pr_err("Invalid cpumap entry %d\n", cpu + cpus_per_i); in cpu_map__from_mask() [all …]
|
| /linux/kernel/ |
| H A D | smpboot.c | 28 struct task_struct *idle_thread_get(unsigned int cpu) in idle_thread_get() argument 30 struct task_struct *tsk = per_cpu(idle_threads, cpu); in idle_thread_get() 48 static __always_inline void idle_init(unsigned int cpu) in idle_init() argument 50 struct task_struct *tsk = per_cpu(idle_threads, cpu); in idle_init() 53 tsk = fork_idle(cpu); in idle_init() 55 pr_err("SMP: fork_idle() failed for CPU %u\n", cpu); in idle_init() 57 per_cpu(idle_threads, cpu) = tsk; in idle_init() 66 unsigned int cpu, boot_cpu; in idle_threads_init() local 70 for_each_possible_cpu(cpu) { in idle_threads_init() 71 if (cpu != boot_cpu) in idle_threads_init() [all …]
|
| /linux/arch/s390/kernel/ |
| H A D | smp.c | 167 int cpu; in pcpu_find_address() local 169 for_each_cpu(cpu, mask) in pcpu_find_address() 170 if (per_cpu(pcpu_devices, cpu).address == address) in pcpu_find_address() 171 return &per_cpu(pcpu_devices, cpu); in pcpu_find_address() 183 static int pcpu_alloc_lowcore(struct pcpu *pcpu, int cpu) in pcpu_alloc_lowcore() argument 199 lc->cpu_nr = cpu; in pcpu_alloc_lowcore() 200 lc->spinlock_lockval = arch_spin_lockval(cpu); in pcpu_alloc_lowcore() 207 if (abs_lowcore_map(cpu, lc, true)) in pcpu_alloc_lowcore() 209 lowcore_ptr[cpu] = lc; in pcpu_alloc_lowcore() 223 static void pcpu_free_lowcore(struct pcpu *pcpu, int cpu) in pcpu_free_lowcore() argument [all …]
|
| /linux/arch/arm64/boot/dts/amd/ |
| H A D | elba-16core.dtsi | 11 cpu-map { 13 core0 { cpu = <&cpu0>; }; 14 core1 { cpu = <&cpu1>; }; 15 core2 { cpu = <&cpu2>; }; 16 core3 { cpu = <&cpu3>; }; 20 core0 { cpu = <&cpu4>; }; 21 core1 { cpu = <&cpu5>; }; 22 core2 { cpu = <&cpu6>; }; 23 core3 { cpu = <&cpu7>; }; 27 core0 { cpu = <&cpu8>; }; [all …]
|