Quoting Oren Laadan (orenl@xxxxxxxxxxx): > >>>> The proposed interface for clone_extended() is: > >>>> > >>>> struct clone_tid_info { > >>>> void *parent_tid; /* parent_tid_ptr parameter */ > >>>> void *child_tid; /* child_tid_ptr parameter */ > >>>> }; > >>>> > >>>> struct pid_set { > >>>> int num_pids; > >>>> pid_t *pids; > >>>> }; > >>>> > >>>> int clone_extended(int flags_low, int flags_high, void *child_stack, > >>>> void *unused, struct clone_tid_info *tid_ptrs, > >>>> struct pid_set *pid_setp); > >>> I was thinking additional flags would be passed in the (renamed) > >>> struct pid_set. > >> Yes. > >> > >> But maybe in (renamed) 'struct clone_info' instead of 'struct pid_set' ? > >> > >> I vaguely recall a strong preference to not require copy-from-user > >> during a fast-path clone, because it may hurt performance. > >> > >> *If* this is the case, then maybe place extra flags among the > >> "base" args, or at least a CLONE_EXTRA would indicate that more > >> arguments need to be pulled from user-space ? > > > > Wouldn't passing NULL for struct clone_info suffice? > > :o > > Actually, I misread the original prototype, and I prefer Suka's > current suggestion. I think Suka's suggestion is again inherently limited (in # of clone flags) and will force even uglier syscalls for each arch than the previous one already does. -serge _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers