| /linux/include/linux/ |
| H A D | rseq_entry.h | 100 if (likely(!current->rseq.slice.state.granted)) in rseq_arm_slice_extension_timer() 108 if (IS_ENABLED(CONFIG_RSEQ_STATS) && t->rseq.slice.state.granted) in rseq_slice_clear_grant() 110 t->rseq.slice.state.granted = false; in rseq_slice_clear_grant() 118 struct rseq __user *rseq; in rseq_grant_slice_extension() local 124 state = curr->rseq.slice.state; in rseq_grant_slice_extension() 125 state.enabled &= curr->rseq.event.user_irq; in rseq_grant_slice_extension() 129 rseq = curr->rseq.usrptr; in rseq_grant_slice_extension() 130 scoped_user_rw_access(rseq, efault) { in rseq_grant_slice_extension() 144 unsafe_put_user(0U, &rseq->slice_ctrl.all, efault); in rseq_grant_slice_extension() 149 unsafe_get_user(usr_ctrl.all, &rseq->slice_ctrl.all, efault); in rseq_grant_slice_extension() [all …]
|
| H A D | rseq.h | 16 if (current->rseq.event.slowpath) in rseq_handle_slowpath() 20 if (current->rseq.event.sched_switch & current->rseq.event.has_rseq) in rseq_handle_slowpath() 35 if (current->rseq.event.has_rseq & current->rseq.event.user_irq) in rseq_signal_deliver() 38 if (current->rseq.event.has_rseq) in rseq_signal_deliver() 51 struct rseq_event *ev = &t->rseq.event; in rseq_sched_switch_event() 69 t->rseq.event.sched_switch = true; in rseq_sched_switch_event() 84 t->rseq.event.ids_changed = true; in rseq_sched_set_ids_changed() 90 if (current->rseq.event.has_rseq) { in rseq_force_update() 91 current->rseq.event.ids_changed = true; in rseq_force_update() 92 current->rseq.event.sched_switch = true; in rseq_force_update() [all …]
|
| H A D | rseq_types.h | 10 struct rseq; 111 struct rseq __user *usrptr;
|
| H A D | syscalls.h | 66 struct rseq; 961 asmlinkage long sys_rseq(struct rseq __user *rseq, uint32_t rseq_len,
|
| H A D | sched.h | 1410 struct rseq_data rseq; 1409 struct rseq_data rseq; global() member
|
| /linux/kernel/ |
| H A D | rseq.c | 246 struct rseq __user *urseq = t->rseq.usrptr; in rseq_handle_cs() 295 event = t->rseq.event.sched_switch; in rseq_slowpath_update_usr() 296 t->rseq.event.all &= evt_mask.all; in rseq_slowpath_update_usr() 311 t->rseq.event.error = 0; in rseq_slowpath_update_usr() 349 current->rseq.event.error = 0; in __rseq_signal_deliver() 363 if (!t->rseq.event.has_rseq) in __rseq_debug_syscall_return() 365 if (get_user(csaddr, &t->rseq.usrptr->rseq_cs)) in __rseq_debug_syscall_return() 410 SYSCALL_DEFINE4(rseq, struct rseq __user *, rseq, u32, rseq_len, int, flags, u32, sig) in SYSCALL_DEFINE4() argument 418 if (current->rseq.usrptr != rseq || !current->rseq.usrptr) in SYSCALL_DEFINE4() 420 if (rseq_len != current->rseq.len) in SYSCALL_DEFINE4() [all …]
|
| H A D | sys_ni.c | 392 COND_SYSCALL(rseq);
|
| H A D | Makefile | 139 obj-$(CONFIG_RSEQ) += rseq.o
|
| /linux/include/uapi/linux/ |
| H A D | rseq.h | 102 struct rseq { struct
|
| /linux/tools/testing/selftests/ |
| H A D | Makefile | 100 TARGETS += rseq
|
| /linux/tools/perf/arch/mips/entry/syscalls/ |
| H A D | syscall_n64.tbl | 338 327 n64 rseq sys_rseq
|
| /linux/tools/testing/selftests/kvm/ |
| H A D | Makefile.kvm | 268 -I ../rseq -I.. $(EXTRA_CFLAGS) $(KHDR_INCLUDES)
|
| /linux/scripts/ |
| H A D | syscall.tbl | 344 293 common rseq sys_rseq
|
| /linux/tools/scripts/ |
| H A D | syscall.tbl | 344 293 common rseq sys_rseq
|
| /linux/tools/perf/arch/s390/entry/syscalls/ |
| H A D | syscall.tbl | 337 383 common rseq sys_rseq
|
| /linux/tools/perf/arch/sh/entry/syscalls/ |
| H A D | syscall.tbl | 397 387 common rseq sys_rseq
|
| /linux/tools/perf/arch/xtensa/entry/syscalls/ |
| H A D | syscall.tbl | 375 352 common rseq sys_rseq
|
| /linux/tools/perf/arch/x86/entry/syscalls/ |
| H A D | syscall_64.tbl | 346 334 common rseq sys_rseq
|
| H A D | syscall_32.tbl | 401 386 i386 rseq sys_rseq
|
| /linux/tools/perf/arch/sparc/entry/syscalls/ |
| H A D | syscall.tbl | 439 365 common rseq sys_rseq
|
| /linux/tools/perf/arch/arm/entry/syscalls/ |
| H A D | syscall.tbl | 416 398 common rseq sys_rseq
|
| /linux/tools/perf/arch/powerpc/entry/syscalls/ |
| H A D | syscall.tbl | 482 387 nospu rseq sys_rseq
|
| /linux/init/ |
| H A D | Kconfig | 1953 bool "Enable rseq() system call" if EXPERT 1967 bool "Enable rseq-based time slice extension mechanism" 2005 bool "Enable debugging of rseq() system call" if EXPERT 2009 Enable extra debugging checks for the rseq system call.
|
| /linux/fs/ |
| H A D | binfmt_elf.c | 289 NEW_AUX_ENT(AT_RSEQ_FEATURE_SIZE, offsetof(struct rseq, end)); in create_elf_tables()
|
| /linux/ |
| H A D | MAINTAINERS | 22629 F: include/trace/events/rseq.h 22630 F: include/uapi/linux/rseq.h 22631 F: kernel/rseq.c 22632 F: tools/testing/selftests/rseq/
|