Home
last modified time | relevance | path

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

/linux/kernel/
H A Drseq.c241 struct rseq __user *urseq = t->rseq.usrptr; in rseq_handle_cs()
292 event = t->rseq.event.sched_switch; in rseq_slowpath_update_usr()
293 t->rseq.event.all &= evt_mask.all; in rseq_slowpath_update_usr()
308 t->rseq.event.error = 0; in rseq_slowpath_update_usr()
347 current->rseq.event.error = 0; in __rseq_signal_deliver()
368 if (!t->rseq.event.has_rseq) in __rseq_debug_syscall_return()
370 if (get_user(csaddr, &t->rseq.usrptr->rseq_cs)) in __rseq_debug_syscall_return()
392 struct rseq __user *rseq = current->rseq.usrptr; in rseq_reset_ids() local
399 scoped_user_rw_access(rseq, efault) { in rseq_reset_ids()
400 unsafe_put_user(0, &rseq->cpu_id_start, efault); in rseq_reset_ids()
[all …]
H A Dptrace.c807 .rseq_abi_pointer = (u64)(uintptr_t)task->rseq.usrptr, in ptrace_get_rseq_configuration()
808 .rseq_abi_size = task->rseq.len, in ptrace_get_rseq_configuration()
809 .signature = task->rseq.sig, in ptrace_get_rseq_configuration()
/linux/include/linux/
H A Drseq_entry.h101 if (likely(!current->rseq.slice.state.granted)) in rseq_arm_slice_extension_timer()
109 if (IS_ENABLED(CONFIG_RSEQ_STATS) && t->rseq.slice.state.granted) in rseq_slice_clear_grant()
111 t->rseq.slice.state.granted = false; in rseq_slice_clear_grant()
122 #define rseq_slice_clear_user(rseq, efault) \ argument
125 unsafe_put_user(0U, &rseq->slice_ctrl.all, efault); \
133 struct rseq __user *rseq; in __rseq_grant_slice_extension() local
139 state = curr->rseq.slice.state; in __rseq_grant_slice_extension()
140 state.enabled &= curr->rseq.event.user_irq; in __rseq_grant_slice_extension()
144 rseq = curr->rseq.usrptr; in __rseq_grant_slice_extension()
145 scoped_user_rw_access(rseq, efault) { in __rseq_grant_slice_extension()
[all …]
H A Drseq.h14 return IS_ENABLED(CONFIG_GENERIC_IRQ_ENTRY) && likely(t->rseq.event.has_rseq > 1); in rseq_v2()
21 if (current->rseq.event.slowpath) in rseq_handle_slowpath()
24 if (current->rseq.event.sched_switch && current->rseq.event.has_rseq) in rseq_handle_slowpath()
39 if (current->rseq.event.user_irq) in rseq_signal_deliver()
42 if (current->rseq.event.has_rseq) in rseq_signal_deliver()
55 struct rseq_event *ev = &t->rseq.event; in rseq_sched_switch_event()
80 t->rseq.event.ids_changed = true; in rseq_sched_switch_event()
81 t->rseq.event.sched_switch = true; in rseq_sched_switch_event()
96 t->rseq.event.ids_changed = true; in rseq_sched_set_ids_changed()
102 if (current->rseq.event.has_rseq) { in rseq_force_update()
[all …]
H A Drseq_types.h10 struct rseq;
120 struct rseq __user *usrptr;
H A Dsched.h1414 struct rseq_data rseq; member
/linux/tools/testing/selftests/rseq/
H A DMakefile36 $(OUTPUT)/librseq.so: rseq.c rseq.h rseq-*.h
39 $(OUTPUT)/%: %.c $(TEST_GEN_PROGS_EXTENDED) rseq.h rseq-*.h
42 …T)/basic_percpu_ops_mm_cid_test: basic_percpu_ops_test.c $(TEST_GEN_PROGS_EXTENDED) rseq.h rseq-*.h
46 rseq.h rseq-*.h
50 rseq.h rseq-*.h
54 rseq.h rseq-*.h
58 rseq.h rseq-*.h
62 rseq.h rseq-*.h
66 rseq.h rseq-*.h
69 $(OUTPUT)/slice_test: slice_test.c $(TEST_GEN_PROGS_EXTENDED) rseq.h rseq-*.h
[all …]
/linux/Documentation/userspace-api/
H A Drseq.rst131 * A rseq userspace pointer has been registered for the thread in
147 ENXIO Available, but no rseq user struct registered
164 The availability and status is also exposed via the rseq ABI struct flags
170 slice extension by setting rseq::slice_ctrl::request to 1. If the thread is
174 determined by debugfs:rseq/slice_ext_nsec. The default value is 5 usec; which
179 rseq-slice-hist.py output that shows the new value has merrit.
181 The kernel indicates the grant by clearing rseq::slice_ctrl::request and
182 setting rseq::slice_ctrl::granted to 1. If there is a reschedule of the
200 rseq->slice_ctrl.request = 1;
204 rseq->slice_ctrl.request = 0;
[all …]
/linux/include/uapi/linux/
H A Drseq.h102 struct rseq { struct
/linux/tools/testing/selftests/
H A DMakefile105 TARGETS += rseq
/linux/tools/perf/arch/mips/entry/syscalls/
H A Dsyscall_n64.tbl338 327 n64 rseq sys_rseq
/linux/tools/testing/selftests/kvm/
H A DMakefile.kvm270 -I ../rseq -I.. $(EXTRA_CFLAGS) $(KHDR_INCLUDES)
/linux/scripts/
H A Dsyscall.tbl344 293 common rseq sys_rseq
/linux/tools/scripts/
H A Dsyscall.tbl344 293 common rseq sys_rseq
/linux/tools/perf/arch/s390/entry/syscalls/
H A Dsyscall.tbl337 383 common rseq sys_rseq
/linux/tools/perf/arch/sh/entry/syscalls/
H A Dsyscall.tbl397 387 common rseq sys_rseq
/linux/tools/perf/arch/xtensa/entry/syscalls/
H A Dsyscall.tbl375 352 common rseq sys_rseq
/linux/tools/perf/arch/x86/entry/syscalls/
H A Dsyscall_64.tbl346 334 common rseq sys_rseq
H A Dsyscall_32.tbl401 386 i386 rseq sys_rseq
/linux/tools/perf/arch/sparc/entry/syscalls/
H A Dsyscall.tbl439 365 common rseq sys_rseq
/linux/tools/perf/arch/arm/entry/syscalls/
H A Dsyscall.tbl416 398 common rseq sys_rseq
/linux/tools/perf/arch/powerpc/entry/syscalls/
H A Dsyscall.tbl482 387 nospu rseq sys_rseq
/linux/init/
H A DKconfig1964 bool "Enable rseq() system call" if EXPERT
1978 bool "Enable rseq-based time slice extension mechanism"
2016 bool "Enable debugging of rseq() system call" if EXPERT
2020 Enable extra debugging checks for the rseq system call.
/linux/fs/
H A Dbinfmt_elf.c289 NEW_AUX_ENT(AT_RSEQ_FEATURE_SIZE, offsetof(struct rseq, end)); in create_elf_tables()
/linux/
H A DMAINTAINERS22871 F: include/trace/events/rseq.h
22872 F: include/uapi/linux/rseq.h
22873 F: kernel/rseq.c
22874 F: tools/testing/selftests/rseq/