Home
last modified time | relevance | path

Searched refs:prev_cpu (Results 1 – 25 of 37) sorted by relevance

12

/linux/kernel/sched/
H A Dext_idle.c443 * begin in @prev_cpu's node and proceed to other nodes in order of
451 s32 scx_select_cpu_dfl(struct task_struct *p, s32 prev_cpu, u64 wake_flags, in scx_select_cpu_dfl() argument
456 int node = scx_cpu_node_if_enabled(prev_cpu); in scx_select_cpu_dfl()
463 * Check whether @prev_cpu is still within the allowed set. If not, in scx_select_cpu_dfl()
466 is_prev_allowed = cpumask_test_cpu(prev_cpu, allowed); in scx_select_cpu_dfl()
498 const struct cpumask *cpus = numa_span(prev_cpu); in scx_select_cpu_dfl()
508 const struct cpumask *cpus = llc_span(prev_cpu); in scx_select_cpu_dfl()
523 * If the waker's CPU is cache affine and prev_cpu is idle, in scx_select_cpu_dfl()
527 if (is_prev_allowed && cpus_share_cache(cpu, prev_cpu) && in scx_select_cpu_dfl()
528 scx_idle_test_and_clear_cpu(prev_cpu)) { in scx_select_cpu_dfl()
859 select_cpu_from_kfunc(struct task_struct * p,s32 prev_cpu,u64 wake_flags,const struct cpumask * allowed,u64 flags) select_cpu_from_kfunc() argument
946 scx_bpf_select_cpu_dfl(struct task_struct * p,s32 prev_cpu,u64 wake_flags,bool * is_idle) scx_bpf_select_cpu_dfl() argument
981 scx_bpf_select_cpu_and(struct task_struct * p,s32 prev_cpu,u64 wake_flags,const struct cpumask * cpus_allowed,u64 flags) scx_bpf_select_cpu_and() argument
[all...]
H A Dext_idle.h18 s32 scx_select_cpu_dfl(struct task_struct *p, s32 prev_cpu, u64 wake_flags,
/linux/tools/testing/selftests/sched_ext/
H A Denq_select_cpu.bpf.c15 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
18 return prev_cpu; in BPF_STRUCT_OPS()
24 s32 cpu, prev_cpu = scx_bpf_task_cpu(p); in BPF_STRUCT_OPS() local
27 cpu = scx_bpf_select_cpu_dfl(p, prev_cpu, 0, &found); in BPF_STRUCT_OPS()
H A Dallowed_cpus.bpf.c30 struct task_struct *p, s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
44 cpu = scx_bpf_select_cpu_and(p, prev_cpu, wake_flags, allowed, 0); in BPF_STRUCT_OPS()
52 return prev_cpu; in BPF_STRUCT_OPS()
58 s32 prev_cpu = scx_bpf_task_cpu(p), cpu; in BPF_STRUCT_OPS() local
72 cpu = scx_bpf_select_cpu_and(p, prev_cpu, 0, allowed, 0); in BPF_STRUCT_OPS()
H A Dselect_cpu_dispatch.bpf.c16 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
19 s32 cpu = prev_cpu; in BPF_STRUCT_OPS()
29 cpu = prev_cpu; in BPF_STRUCT_OPS()
H A Dselect_cpu_dfl_nodispatch.bpf.c31 s32 scx_bpf_select_cpu_dfl(struct task_struct *p, s32 prev_cpu, u64 wake_flags,
35 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
46 cpu = scx_bpf_select_cpu_dfl(p, prev_cpu, wake_flags, in BPF_STRUCT_OPS()
H A Dselect_cpu_dispatch_bad_dsq.bpf.c18 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
23 return prev_cpu; in BPF_STRUCT_OPS()
H A Dselect_cpu_dispatch_dbl_dsp.bpf.c18 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
24 return prev_cpu; in BPF_STRUCT_OPS()
H A Dddsp_bogus_dsq_fail.bpf.c14 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
28 return prev_cpu; in BPF_STRUCT_OPS()
H A Dddsp_vtimelocal_fail.bpf.c14 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
25 return prev_cpu; in BPF_STRUCT_OPS()
H A Ddsp_local_on.bpf.c20 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
22 return prev_cpu; in BPF_STRUCT_OPS()
H A Dexit.bpf.c21 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
28 return scx_bpf_select_cpu_dfl(p, prev_cpu, wake_flags, &found); in BPF_STRUCT_OPS()
H A Dselect_cpu_vtime.bpf.c39 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
47 cpu = prev_cpu; in BPF_STRUCT_OPS()
H A Dmaximal.bpf.c17 s32 BPF_STRUCT_OPS(maximal_select_cpu, struct task_struct *p, s32 prev_cpu, in BPF_STRUCT_OPS() argument
20 return prev_cpu; in BPF_STRUCT_OPS()
H A Dnuma.bpf.c35 struct task_struct *p, s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
/linux/arch/x86/include/asm/trace/
H A Dirq_vectors.h155 unsigned int prev_cpu),
157 TP_ARGS(irq, vector, cpu, prev_vector, prev_cpu),
164 __field( unsigned int, prev_cpu )
172 __entry->prev_cpu = prev_cpu;
176 TP_printk("irq=%u vector=%u cpu=%u prev_vector=%u prev_cpu=%u",
178 __entry->prev_vector, __entry->prev_cpu)
185 unsigned int prev_cpu), \
186 TP_ARGS(irq, vector, cpu, prev_vector, prev_cpu), NULL, NULL); \
/linux/drivers/irqchip/
H A Dirq-loongarch-avec.c54 unsigned int prev_cpu; member
92 if (cpu_online(adata->prev_cpu)) { in avecintc_sync()
93 plist = per_cpu_ptr(&pending_list, adata->prev_cpu); in avecintc_sync()
96 mp_ops.send_ipi_single(adata->prev_cpu, ACTION_CLEAR_VECTOR); in avecintc_sync()
175 cpu = adata->prev_cpu; in complete_irq_moving()
201 adata->prev_cpu = adata->cpu; in complete_irq_moving()
264 adata->prev_cpu = adata->cpu = cpu; in avecintc_alloc_vector()
308 per_cpu(irq_map, adata->prev_cpu)[adata->prev_vec] = NULL; in avecintc_free_vector()
309 irq_matrix_free(loongarch_avec.vector_matrix, adata->prev_cpu, adata->prev_vec, false); in avecintc_free_vector()
/linux/arch/powerpc/lib/
H A Dqspinlock.c260 static struct qnode *get_tail_qnode(struct qspinlock *lock, int prev_cpu) in get_tail_qnode() argument
262 struct qnodes *qnodesp = per_cpu_ptr(&qnodes, prev_cpu); in get_tail_qnode()
376 static __always_inline bool yield_to_prev(struct qspinlock *lock, struct qnode *node, int prev_cpu, bool paravirt) in yield_to_prev() argument
391 if (node->sleepy || vcpu_is_preempted(prev_cpu)) { in yield_to_prev()
418 yield_count = yield_count_of(prev_cpu); in yield_to_prev()
430 yield_to_preempted(prev_cpu, yield_count); in yield_to_prev()
575 int prev_cpu = decode_tail_cpu(old); in queued_spin_lock_mcs_queue() local
576 struct qnode *prev = get_tail_qnode(lock, prev_cpu); in queued_spin_lock_mcs_queue()
586 if (yield_to_prev(lock, node, prev_cpu, paravirt)) in queued_spin_lock_mcs_queue()
/linux/tools/sched_ext/
H A Dscx_simple.bpf.c55 s32 BPF_STRUCT_OPS(simple_select_cpu, struct task_struct *p, s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
60 cpu = scx_bpf_select_cpu_dfl(p, prev_cpu, wake_flags, &is_idle); in BPF_STRUCT_OPS()
H A Dscx_qmap.bpf.c134 static s32 pick_direct_dispatch_cpu(struct task_struct *p, s32 prev_cpu) in pick_direct_dispatch_cpu() argument
139 scx_bpf_test_and_clear_cpu_idle(prev_cpu)) in pick_direct_dispatch_cpu()
140 return prev_cpu; in pick_direct_dispatch_cpu()
161 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
169 cpu = pick_direct_dispatch_cpu(p, prev_cpu); in BPF_STRUCT_OPS()
175 return prev_cpu; in BPF_STRUCT_OPS()
/linux/Documentation/translations/zh_CN/scheduler/
H A Dsched-energy.rst132 prev_cpu = 0(上一次运行在CPU0)。
/linux/arch/sparc/kernel/
H A Dcpumap.c193 int n, id, cpu, prev_cpu, last_cpu, level; in build_cpuinfo_tree() local
204 prev_cpu = cpu = cpumask_first(cpu_online_mask); in build_cpuinfo_tree()
268 (cpu == last_cpu) ? cpu : prev_cpu; in build_cpuinfo_tree()
290 prev_cpu = cpu; in build_cpuinfo_tree()
/linux/arch/riscv/include/asm/
H A Dswitch_to.h99 bool thread_migrated = smp_processor_id() != task->thread.prev_cpu; in switch_to_should_flush_icache()
108 #define __set_prev_cpu(thread) ((thread).prev_cpu = smp_processor_id())
H A Dprocessor.h123 unsigned int prev_cpu; member
/linux/arch/x86/kernel/apic/
H A Dvector.c31 unsigned int prev_cpu; member
174 apicd->prev_cpu = apicd->cpu; in apic_update_vector()
357 apicd->prev_cpu); in clear_irq_vector()
368 per_cpu(vector_irq, apicd->prev_cpu)[vector] = VECTOR_SHUTDOWN; in clear_irq_vector()
369 irq_matrix_free(vector_matrix, apicd->prev_cpu, vector, managed); in clear_irq_vector()
648 seq_printf(m, "%*sPrevious target: %5u\n", ind, "", apicd.prev_cpu); in x86_vector_debug_show()
894 unsigned int cpu = apicd->prev_cpu; in free_moved_vector()
934 if (!vector || (apicd->cpu != cpu && apicd->prev_cpu != cpu)) in apic_force_complete_move()
1088 unsigned int cpu = apicd->prev_cpu; in __vector_schedule_cleanup()

12