Re: [PATCH 08/12] add trace events for each syscall entry/exit

Frederic Weisbecker
2009-08-26T16:15:48Z

On Wed, Aug 26, 2009 at 10:43:01AM -0400, Steven Rostedt wrote:
>
> On Wed, 26 Aug 2009, Frederic Weisbecker wrote:
> > >
> > > Oh yes, you are right. kernel threads created with kernel_thread()
> > > have t->mm != NULL if the forking process has an mm too.
> > >
> > > There are very few callsites left which still use kernel_thread().
> > > (the last one in s390 driver code will be gone after the next
> > > merge window).
> > >
> > > As far as I can there are only four callsites left
> > > (excluding staging): jffs2 and three in net/bluetooth/*
> >
> >
> > In that case, I'd suggest to pick the patch that checks for
> > kernel threads while setting the TIF_FLAGS.
> >
> > The check for invalid syscall numbers in another patch should be
> > sufficient to not crash.
> >
> > We might have rare inaccurate result because of the remaining
> > buggy callsites but instead of working around on it, these
> > should be fixed.
>
> Well, do these (buggy threads) call syscalls?
>
> -- Steve
>

That's not exactly what raises bugs because their syscalls
won't be traced. The problem occurs when the freshly created
kernel thread reaches ret_from_fork with its ->mm != NULL

It will take the trace_sys_exit() call and then will be traced
as a normal user thread.