arch_exit_to_user_mode_work(9)
π arch_exit_to_user_mode_work(9)
okay so bestie, welcome to the Kernel API Manual β this is the page for arch_exit_to_user_mode_work, and yes it's a long name, we're gonna get through it together π«Ά
πΈ NAME
arch_exit_to_user_mode_work β the architecture-specific TIF work for exiting to user mode β¨
like literally, that's the whole vibe: you're heading back out to user mode and this is where the arch gets to do its little pre-exit chores π
π SYNOPSIS
void arch_exit_to_user_mode_work (struct pt_regs *regs , unsigned long
ti_work );
no cap, that's the exact signature β void in, void out, two args in the middle π
π¦ ARGUMENTS
regsβ pointer to the current task'spt_regsπ that's your register snapshot right thereti_workβ the cached TIF flags, gathered with interrupts disabled π₯ (important detail, keep it, iykyk)
π DESCRIPTION
so this one gets invoked from exit_to_user_mode_loop, and the key tea is: it's called with interrupts enabled β¨
and the default? it's a NOOP π like literally does nothing by default β but architecture-specific code can supply its own version, and that's where the actual work happens π
β SEE ALSO
the kernel file: ./include/linux/irq-entry-common.h π
and the whole squad of related pages, in the order the manpage gives them, no skips, no cuts π§:
arch_enter_from_user_mode(9)arch_in_rcu_eqs(9)enter_from_user_mode(9)arch_exit_to_user_mode_prepare(9)arch_exit_to_user_mode(9)arch_do_signal_or_restart(9)__exit_to_user_mode_prepare(9)syscall_exit_to_user_mode_prepare(9)irqentry_exit_to_user_mode_prepare(9)exit_to_user_mode(9)irqentry_enter_from_user_mode(9)irqentry_exit_to_user_mode(9)struct irqentry_state(9)irqentry_enter_from_kernel_mode(9)irqentry_exit_to_kernel_mode_preempt(9)irqentry_exit_to_kernel_mode_after_preempt(9)irqentry_exit_to_kernel_mode(9)irqentry_enter(9)irqentry_exit(9)irqentry_nmi_enter(9)irqentry_nmi_exit(9)
that's a whole friend group right there, bestie ππ
ngl if you're here because something's weird on the exit-to-user-mode path, check the arch-specific implementation β the generic default is a NOOP, so if nothing's happening, that might literally be why π
kisses from the ./include/linux directory, dated October 2026 β mwah, go read the other twenty-one pages, slay π
β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms