Re: [PATCH 09] move -ptrace == 0 checks to ptrace_attach_task()

2009-08-22 Thread Oleg Nesterov
On 08/21, Oleg Nesterov wrote: On 08/21, Srikar Dronamraju wrote: Please note the comment, this check relies on UTRACE_ATTACH_EXCLUSIVE above. Once we see -ptrace = 0 after utrace_attach_task(), nobody can change -ptrace. However after attaching an engine exclusively, (which would

Re: [PATCH 09] move -ptrace == 0 checks to ptrace_attach_task()

2009-08-21 Thread Srikar Dronamraju
Hi Oleg, --- PU/kernel/ptrace.c~09_MV_PTRACE_CK2009-08-19 16:49:25.0 +0200 +++ PU/kernel/ptrace.c2009-08-20 20:04:59.0 +0200 @@ -471,35 +471,47 @@ static int ptrace_attach_task(struct tas { struct utrace_engine *engine; unsigned long events;

Re: [PATCH 09] move -ptrace == 0 checks to ptrace_attach_task()

2009-08-21 Thread Oleg Nesterov
Hi Srikar, On 08/21, Srikar Dronamraju wrote: --- PU/kernel/ptrace.c~09_MV_PTRACE_CK 2009-08-19 16:49:25.0 +0200 +++ PU/kernel/ptrace.c 2009-08-20 20:04:59.0 +0200 @@ -471,35 +471,47 @@ static int ptrace_attach_task(struct tas { struct utrace_engine

Re: [PATCH 09] move -ptrace == 0 checks to ptrace_attach_task()

2009-08-21 Thread Srikar Dronamraju
Hi Oleg, Thanks for the clarification. Please note the comment, this check relies on UTRACE_ATTACH_EXCLUSIVE above. Once we see -ptrace = 0 after utrace_attach_task(), nobody can change -ptrace. However after attaching an engine exclusively, (which would mean the child is not traced or was

Re: [PATCH 09] move -ptrace == 0 checks to ptrace_attach_task()

2009-08-21 Thread Oleg Nesterov
On 08/21, Srikar Dronamraju wrote: Please note the comment, this check relies on UTRACE_ATTACH_EXCLUSIVE above. Once we see -ptrace = 0 after utrace_attach_task(), nobody can change -ptrace. However after attaching an engine exclusively, (which would mean the child is not traced or was

Re: [PATCH 09] move -ptrace == 0 checks to ptrace_attach_task()

2009-08-20 Thread Oleg Nesterov
. --- [PATCH 09] move -ptrace == 0 checks to ptrace_attach_task() Until we kill -ptrace, attach must ensure -ptrace == 0 to avoid the races with detach. We can move these checks to ptrace_attach_task() from the callers, and we can do this check lockless. From now ptrace_abort_attach() is only called