Lines Matching full:slice
475 current->rseq.slice.state.enabled = !!(rseqfl & RSEQ_CS_FLAG_SLICE_EXT_ENABLED); in rseq_register()
593 if (st->cookie == current && current->rseq.slice.state.granted) { in rseq_slice_expired()
608 * This check prevents a task, which got a time slice extension in __rseq_arm_slice_extension_timer()
614 if ((unlikely(curr->rseq.slice.expires < ktime_get_mono_fast_ns()))) { in __rseq_arm_slice_extension_timer()
625 hrtimer_start(&st->timer, curr->rseq.slice.expires, HRTIMER_MODE_ABS_PINNED_HARD); in __rseq_arm_slice_extension_timer()
686 * Invoked from syscall entry if a time slice extension was granted and the
690 * rseq_slice_yield(2), any syscall within a granted slice terminates the
698 struct rseq_slice_ctrl ctrl = { .granted = curr->rseq.slice.state.granted }; in rseq_syscall_enter_work()
707 * userspace, but kept the SLICE work set. in rseq_syscall_enter_work()
731 curr->rseq.slice.yielded = 1; in rseq_syscall_enter_work()
741 curr->rseq.slice.state.granted = false; in rseq_syscall_enter_work()
752 return current->rseq.slice.state.enabled ? PR_RSEQ_SLICE_EXT_ENABLE : 0; in rseq_slice_extension_prctl()
768 if (enable == !!current->rseq.slice.state.enabled) in rseq_slice_extension_prctl()
774 if (current->rseq.slice.state.enabled) in rseq_slice_extension_prctl()
788 current->rseq.slice.state.enabled = enable; in rseq_slice_extension_prctl()
801 * task granted with a time slice extension is done with
804 * Return: 1 if the task successfully yielded the CPU within the granted slice.
805 * 0 if the slice extension was either never granted or was revoked by
814 int yielded = !!current->rseq.slice.yielded; in SYSCALL_DEFINE0()
816 current->rseq.slice.yielded = 0; in SYSCALL_DEFINE0()