On 12/10, Dmitry V. Levin wrote: > > +struct ptrace_syscall_info { > + __u8 op; /* PTRACE_SYSCALL_INFO_* */ > + __u8 __pad0[3]; > + __u32 arch; > + __u64 instruction_pointer; > + __u64 stack_pointer; > + __u64 frame_pointer; > + union { > + struct { > + __u64 nr; > + __u64 args[6]; > + } entry; > + struct { > + __s64 rval; > + __u8 is_error; > + __u8 __pad1[7]; > + } exit; > + struct { > + __u64 nr; > + __u64 args[6]; > + __u32 ret_data; > + __u8 __pad2[4]; > + } seccomp; > + }; > +}; Could you explain why ptrace_syscall_info needs __pad{0,1,2} ? I simply can't understand why... Otherwise the patch looks good to me. I am not going to discuss the API and data layout, I am fine with anything which suits user-space needs. I think the patch is technically correct, feel free to add Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>