[lkml]   [2019]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: For review: documentation of clone3() system call
On Mon, Nov 11, 2019 at 4:03 PM Florian Weimer <> wrote:
> * Michael Kerrisk:
> > Another difference for the raw clone() system call is that the
> > stack argument may be NULL, in which case the child uses a dupli‐
> > cate of the parent's stack. (Copy-on-write semantics ensure that
> > the child gets separate copies of stack pages when either process
> > modifies the stack.) In this case, for correct operation, the
> > CLONE_VM option should not be specified. (If the child shares the
> > parent's memory because of the use of the CLONE_VM flag, then no
> > copy-on-write duplication occurs and chaos is likely to result.)
> I think sharing the stack also works with CLONE_VFORK with CLONE_VM, as
> long as measures are taken to preserve the return address in a register.

That basically just requires that the userspace function declaration
for clone3 includes __attribute__((returns_twice)), right?

 \ /
  Last update: 2019-11-11 16:17    [W:0.183 / U:0.748 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site