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 exclusi

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 trac

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 o

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 ut

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

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

2009-08-20 Thread Oleg Nesterov
pdated patch below. ----------- [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

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

2009-08-19 Thread Oleg Nesterov
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 when the tracee had no chance to execute any callback, a sim