/linux/kernel/sched/ |
H A D | ext_idle.c | 443 * 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 D | ext_idle.h | 18 s32 scx_select_cpu_dfl(struct task_struct *p, s32 prev_cpu, u64 wake_flags,
|
/linux/tools/testing/selftests/sched_ext/ |
H A D | enq_select_cpu.bpf.c | 15 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 D | allowed_cpus.bpf.c | 30 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 D | select_cpu_dispatch.bpf.c | 16 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 D | select_cpu_dfl_nodispatch.bpf.c | 31 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 D | select_cpu_dispatch_bad_dsq.bpf.c | 18 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument 23 return prev_cpu; in BPF_STRUCT_OPS()
|
H A D | select_cpu_dispatch_dbl_dsp.bpf.c | 18 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument 24 return prev_cpu; in BPF_STRUCT_OPS()
|
H A D | ddsp_bogus_dsq_fail.bpf.c | 14 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument 28 return prev_cpu; in BPF_STRUCT_OPS()
|
H A D | ddsp_vtimelocal_fail.bpf.c | 14 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument 25 return prev_cpu; in BPF_STRUCT_OPS()
|
H A D | dsp_local_on.bpf.c | 20 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument 22 return prev_cpu; in BPF_STRUCT_OPS()
|
H A D | exit.bpf.c | 21 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 D | select_cpu_vtime.bpf.c | 39 s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument 47 cpu = prev_cpu; in BPF_STRUCT_OPS()
|
H A D | maximal.bpf.c | 17 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 D | numa.bpf.c | 35 struct task_struct *p, s32 prev_cpu, u64 wake_flags) in BPF_STRUCT_OPS() argument
|
/linux/arch/x86/include/asm/trace/ |
H A D | irq_vectors.h | 155 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 D | irq-loongarch-avec.c | 54 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 D | qspinlock.c | 260 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 D | scx_simple.bpf.c | 55 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 D | scx_qmap.bpf.c | 134 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 D | sched-energy.rst | 132 prev_cpu = 0(上一次运行在CPU0)。
|
/linux/arch/sparc/kernel/ |
H A D | cpumap.c | 193 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 D | switch_to.h | 99 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 D | processor.h | 123 unsigned int prev_cpu; member
|
/linux/arch/x86/kernel/apic/ |
H A D | vector.c | 31 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()
|