Re: [PATCH RESEND 1/2] tracing: syscall_*regfunc() can race with copy_process()

From: Oleg Nesterov
Date: Thu Apr 10 2014 - 09:33:19 EST


On 04/10, Steven Rostedt wrote:
>
> On Wed, 9 Apr 2014 19:05:42 +0200
> Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
>
> > syscall_regfunc() and syscall_unregfunc() should set/clear
> > TIF_SYSCALL_TRACEPOINT system-wide, but do_each_thread() can race
> > with copy_process() and miss the new child which was not added to
> > init_task.tasks list yet.
> >
> > Change copy_process() to update the child's TIF_SYSCALL_TRACEPOINT
> > under tasklist.
> >
> > While at it,
> >
> > - remove _irqsafe from syscall_regfunc/syscall_unregfunc,
> > read_lock(tasklist) doesn't need to disable irqs.
> >
> > - change syscall_unregfunc() to check PF_KTHREAD to skip
> > the kernel threads, ->mm != NULL is the common mistake.
> >
> > Note: probably this check should be simply removed, needs
> > another patch.
> >
> > Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
>
> BTW, how important is this fix? Something we should aim for the current
> merge window? stable? Or can it wait till 3.16?

I think this all can wait till 3.16. The problem is really minor.

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/