@@ -78,7 +78,10 @@ int clone3_with_pid_noasan(int (*fn)(void *), void *arg, int flags, int exit_sig
7878 c_args .flags = flags ;
7979 c_args .set_tid = ptr_to_u64 (& pid );
8080 c_args .set_tid_size = 1 ;
81+ pr_info ("clone3 set_tid pid=%d flags=0x%x size=1\n" , pid , flags );
8182 pid = syscall (__NR_clone3 , & c_args , sizeof (c_args ));
83+ if (pid < 0 )
84+ pr_perror ("clone3 set_tid failed flags=0x%x size=1" , flags );
8285 if (pid == 0 )
8386 exit (fn (arg ));
8487 return pid ;
@@ -99,6 +102,12 @@ int clone3_with_nested_pid_noasan(int (*fn)(void *), void *arg, int flags, int e
99102 BUG_ON (pid -> ns_level > MAX_PID_NS_LEVEL || pid -> ns_level <= 1 );
100103 for (i = 0 ; i < pid -> ns_level ; i ++ )
101104 tids [i ] = pid -> ns [i ].ns_pid ;
105+ pr_info ("clone3 nested set_tid flags=0x%x size=%d tids=%d/%d/%d/%d\n" ,
106+ flags , pid -> ns_level ,
107+ tids [0 ],
108+ pid -> ns_level > 1 ? tids [1 ] : -1 ,
109+ pid -> ns_level > 2 ? tids [2 ] : -1 ,
110+ pid -> ns_level > 3 ? tids [3 ] : -1 );
102111
103112 if (!(flags & CLONE_PARENT )) {
104113 if (exit_signal != SIGCHLD ) {
@@ -112,6 +121,13 @@ int clone3_with_nested_pid_noasan(int (*fn)(void *), void *arg, int flags, int e
112121 c_args .set_tid = ptr_to_u64 (tids );
113122 c_args .set_tid_size = pid -> ns_level ;
114123 pid_ret = syscall (__NR_clone3 , & c_args , sizeof (c_args ));
124+ if (pid_ret < 0 )
125+ pr_perror ("clone3 nested set_tid failed flags=0x%x size=%d tids=%d/%d/%d/%d" ,
126+ flags , pid -> ns_level ,
127+ tids [0 ],
128+ pid -> ns_level > 1 ? tids [1 ] : -1 ,
129+ pid -> ns_level > 2 ? tids [2 ] : -1 ,
130+ pid -> ns_level > 3 ? tids [3 ] : -1 );
115131 if (pid_ret == 0 )
116132 exit (fn (arg ));
117133 return pid_ret ;
0 commit comments