| /linux/tools/verification/models/sched/ |
| H A D | sssw.dot | 8 {node [shape = circle] "sleepable"}; 13 "runnable" -> "sleepable" [ label = "sched_set_state_sleepable" ]; 18 "signal_wakeup" -> "sleepable" [ label = "sched_set_state_sleepable" ]; 19 "sleepable" [label = "sleepable"]; 20 "sleepable" -> "runnable" [ label = "sched_set_state_runnable\nsched_wakeup" ]; 21 "sleepable" -> "signal_wakeup" [ label = "sched_switch_yield" ]; 22 …"sleepable" -> "sleepable" [ label = "sched_set_state_sleepable\nsched_switch_in\nsched_switch_pre… 23 "sleepable" -> "sleeping" [ label = "sched_switch_suspend\nsched_switch_blocking" ];
|
| /linux/drivers/infiniband/sw/rxe/ |
| H A D | rxe_pool.h | 59 bool sleepable); 61 #define rxe_add_to_pool_ah(pool, obj, sleepable) __rxe_add_to_pool(pool, \ argument 62 &(obj)->elem, sleepable) 73 int __rxe_cleanup(struct rxe_pool_elem *elem, bool sleepable); 75 #define rxe_cleanup_ah(obj, sleepable) __rxe_cleanup(&(obj)->elem, sleepable) argument
|
| /linux/kernel/trace/rv/monitors/sssw/ |
| H A D | Kconfig | 10 Monitor to ensure sched_set_state to sleepable leads to sleeping and
|
| /linux/kernel/bpf/ |
| H A D | trampoline.c | 623 * rcu_read_lock_trace to protect sleepable bpf progs in bpf_tramp_image_put() 658 * Use call_rcu_tasks_trace() to wait for sleepable progs to finish. in bpf_tramp_image_put() 1501 bool sleepable = prog->sleepable; in arch_free_bpf_trampoline() 1504 return sleepable ? __bpf_prog_enter_sleepable_recur : in arch_free_bpf_trampoline() 1511 return sleepable ? __bpf_prog_enter_sleepable : __bpf_prog_enter; in arch_protect_bpf_trampoline() 1516 bool sleepable = prog->sleepable; in arch_bpf_trampoline_size() 1519 return sleepable ? __bpf_prog_exit_sleepable_recur : 1526 return sleepable in trampoline_lock_all() 1450 bool sleepable = prog->sleepable; bpf_trampoline_enter() local 1465 bool sleepable = prog->sleepable; bpf_trampoline_exit() local [all...] |
| H A D | arena.c | 49 static void arena_free_pages(struct bpf_arena *arena, long uaddr, long page_cnt, bool sleepable); 669 bool sleepable) in arena_alloc_pages() argument 773 arena_free_pages(arena, uaddr32, mapped, sleepable); in arena_alloc_pages() 847 static void arena_free_pages(struct bpf_arena *arena, long uaddr, long page_cnt, bool sleepable) in arena_free_pages() argument 875 if (!sleepable) in arena_free_pages()
|
| H A D | core.c | 2533 map->owner->sleepable = fp->sleepable; in __bpf_prog_map_compatible() 2546 map->owner->sleepable == fp->sleepable; in __bpf_prog_map_compatible() 3035 bool sleepable; in __bpf_free_used_maps() 3038 sleepable = aux->prog->sleepable; in __bpf_free_used_maps() 3043 if (sleepable) in bpf_free_used_maps() 3029 bool sleepable; __bpf_free_used_maps() local
|
| H A D | bpf_iter.c | 548 if (prog->sleepable && !bpf_iter_target_support_resched(tinfo)) in bpf_iter_link_attach() 685 if (prog->sleepable) { in bpf_iter_run_prog()
|
| H A D | syscall.c | 154 /* Wait for any running non-sleepable BPF programs to complete so that in maybe_wait_bpf_programs() 155 * userspace, when we return to it, knows that all non-sleepable in maybe_wait_bpf_programs() 156 * programs that could be running use the new map value. For sleepable in maybe_wait_bpf_programs() 160 * so don't handle sleepable BPF programs now. in maybe_wait_bpf_programs() 1931 /* These maps require sleepable context */ in map_delete_elem() 2460 if (prog->sleepable) in __bpf_prog_put_noref() 2481 else if (prog->sleepable) in bpf_prog_put_deferred() 3070 prog->sleepable = !!(attr->prog_flags & BPF_F_SLEEPABLE); in BTF_ID_LIST_GLOBAL_SINGLE() 3239 * "sleepable" semantics, which normally would mean that BPF link's attach in bpf_link_init_sleepable() 3242 * BPF program itself can be non-sleepable, ye in bpf_link_init_sleepable() 3231 bpf_link_init_sleepable(struct bpf_link * link,enum bpf_link_type type,const struct bpf_link_ops * ops,struct bpf_prog * prog,enum bpf_attach_type attach_type,bool sleepable) bpf_link_init_sleepable() argument [all...] |
| H A D | verifier.c | 527 /* bpf_timer callbacks are never sleepable. */ in is_async_cb_sleepable() 531 /* bpf_wq and bpf_task_work callbacks are always sleepable. */ in is_async_cb_sleepable() 4578 /* The non-sleepable programs and sleepable programs with explicit bpf_rcu_read_lock() 6102 * happened in a sleepable program outside of bpf_rcu_read_lock() in check_ptr_to_btf_access() 6103 * section. In a non-sleepable program it's trusted while in RCU CS (aka MEM_RCU). in check_ptr_to_btf_access() 9961 verbose(env, "sleepable global function %s() called in %s\n", in check_func_call() 9963 operation = bpf_diag_fmt(env, "sleepable global function %s()", sub_name); in check_func_call() 9965 "Move the call outside the critical section, or use a non-sleepable function."); in check_func_call() 10799 /* Check if we're in a sleepable contex 13786 bool sleepable, rcu_lock, rcu_unlock, preempt_disable, preempt_enable; check_kfunc_call() local [all...] |
| H A D | fixups.c | 1166 func[i]->sleepable = prog->sleepable; in jit_subprogs()
|
| H A D | helpers.c | 2235 return prog->sleepable ? &bpf_get_task_stack_sleepable_proto in bpf_base_func_proto()
|
| /linux/kernel/trace/ |
| H A D | bpf_trace.c | 1351 return prog->sleepable ? &bpf_get_stack_sleepable_proto : &bpf_get_stack_proto; in kprobe_prog_func_proto() 2108 bool sleepable = prog->sleepable; in __bpf_trace_run() local 2112 if (sleepable) { in __bpf_trace_run() 2133 if (sleepable) { in __bpf_trace_run() 2803 if (prog->sleepable) in bpf_kprobe_multi_link_attach() 3140 bool sleepable = prog->sleepable; in uprobe_prog_run() local 3147 if (sleepable) in uprobe_prog_run() 3160 if (sleepable) in uprobe_prog_run()
|
| /linux/drivers/hid/bpf/ |
| H A D | hid_bpf_struct_ops.c | 51 if (prog->sleepable) in hid_bpf_ops_check_member()
|
| /linux/fs/ |
| H A D | binfmt_misc_bpf.c | 366 if (!prog->sleepable) in bm_bpf_check_member()
|
| /linux/include/linux/ |
| H A D | bpf.h | 295 bool sleepable; member 1921 sleepable:1; /* BPF program is sleepable */ 1968 /* whether BPF link itself has "sleepable" semantics, which can differ 1969 * from underlying BPF program having a "sleepable" semantics, as BPF 1972 bool sleepable; 1982 * if either the underlying BPF program is sleepable or BPF link's 1983 * target hook is sleepable, we'll go through tasks trace RCU GP and 1985 * classic RCU GPs is designated by setting bpf_link->sleepable flag 1987 * For non-sleepable tracepoin 1884 sleepable:1; /* BPF program is sleepable */ global() member 1935 bool sleepable; global() member 3318 bpf_link_init_sleepable(struct bpf_link * link,enum bpf_link_type type,const struct bpf_link_ops * ops,struct bpf_prog * prog,enum bpf_attach_type attach_type,bool sleepable) bpf_link_init_sleepable() argument [all...] |
| /linux/net/bpf/ |
| H A D | test_run.c | 755 if (info->prog->sleepable) { in __bpf_prog_test_run_raw_tp() 772 if (info->prog->sleepable) { in __bpf_prog_test_run_raw_tp() 809 if (prog->sleepable && (kattr->test.flags & BPF_F_TEST_RUN_ON_CPU)) in bpf_prog_test_run_raw_tp() 823 if (prog->sleepable) { in bpf_prog_test_run_raw_tp()
|
| /linux/Documentation/locking/ |
| H A D | mutex-design.rst | 69 While formally kernel mutexes are sleepable locks, it is path (ii) that
|
| /linux/Documentation/hid/ |
| H A D | hid-bpf.rst | 176 Note that ``hid_rdesc_fixup`` can be declared as sleepable (``SEC("struct_ops.s/hid_rdesc_fixup")``… 201 Available API that can be used in syscall HID-BPF programs or in sleepable HID-BPF struct_ops progr…
|
| /linux/Documentation/bpf/ |
| H A D | kfuncs.rst | 395 be called by sleepable BPF programs (BPF_F_SLEEPABLE). 422 an RCU critical section. This is assumed by default in non-sleepable programs, 423 and must be explicitly ensured by calling ``bpf_rcu_read_lock`` for sleepable
|
| /linux/tools/sched_ext/ |
| H A D | README.md | |
| /linux/tools/memory-model/Documentation/ |
| H A D | ordering.txt | 118 sleepable contexts. Therefore, RCU's grace-period primitives are
|
| /linux/Documentation/RCU/ |
| H A D | checklist.rst | 413 and srcu_read_unlock()), hence the "SRCU": "sleepable RCU".
|
| /linux/Documentation/RCU/Design/Requirements/ |
| H A D | Requirements.rst | 1099 | read-side critical sections, and also within Linux-kernel sleepable | 2593 introduction of `sleepable RCU <https://lwn.net/Articles/202847/>`__, or
|
| /linux/kernel/events/ |
| H A D | core.c | 11707 if (prog->type == BPF_PROG_TYPE_KPROBE && prog->sleepable && !is_uprobe) in perf_event_is_tracing() 11708 /* only uprobe programs are allowed to be sleepable */ in perf_event_is_tracing() 11711 if (prog->type == BPF_PROG_TYPE_TRACEPOINT && prog->sleepable) { in perf_event_is_tracing()
|
| /linux/kernel/sched/ext/ |
| H A D | ext.c | 8213 if (prog->sleepable) in bpf_scx_reg() 9491 * Create a custom DSQ identified by @dsq_id. Can be called from any sleepable in scx_bpf_create_dsq() 10567 /* KF_RCU covers only @p - a sleepable program holds no RCU lock */ in scx_bpf_locked_rq() 11218 * ops.cgroup_set_bandwidth() may be implemented as a sleepable callback.
|