On Wed, Jun 16, 2021 at 01:32:50PM -0500, Eric W. Biederman wrote: > -.macro fork_like name > +.macro allregs name > .align 4 > .globl alpha_\name > .ent alpha_\name > + .cfi_startproc > alpha_\name: > .prologue 0 > - bsr $1, do_switch_stack > + SAVE_SWITCH_STACK > jsr $26, sys_\name > - ldq $26, 56($sp) > - lda $sp, SWITCH_STACK_SIZE($sp) > + RESTORE_SWITCH_STACK No. You've just added one hell of an overhead to fork(2), for no reason whatsoever. sys_fork() et.al. does *NOT* modify the callee-saved registers; it's plain C. So this change is complete BS. > +allregs exit > +allregs exit_group Details, please - what exactly makes exit(2) different from e.g. open(2)?