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

Frederic Weisbecker
2009-08-26T13:53:47Z

On Wed, Aug 26, 2009 at 09:48:48AM -0400, Steven Rostedt wrote:
>
> On Wed, 26 Aug 2009, Frederic Weisbecker wrote:
> > >
> > > That won't always work as pointed out in the other example:
> > > - Process doing sys_init_module then scheduled away
> > > - User enables syscall tracing -> TIF_SYSCALL_FTRACE gets set
> > > - init function of the module gets called and is doing kernel_thread()
> > > (old API) -> kernel thread inherits TIF_SYSCALL_FTRACE.
> > >
> > > I don't think that's what you want. You might want to clear the flag for
> > > new processes during fork (only for kernel threads I would guess).
> > >
> > > At least the current patch leaves a hole.
> >
> >
> > Ah, there are callsites that use kernel_thread() directly?
> > Does it means that t->mm could be non NULL for such resulting
> > kernel threads, in that case it would be hard to hook on
> > do_fork() to check that.
>
> All kernel threads have a NULL t->mm. Since do_fork is called by kthreadd
> and not by kthread_create, the caller of do_fork will also have a
> t->mm = NULL.
>
> -- Steve
>

Yeah, that's the case with kthread_create() creation fashion,
but what if you create a kernel thread using the low level
kernel_thread() directly (ie: without relaying on kthreadd queue)?

Especially in Heiko example, it seems to be a duplication of user
task.

I wonder what obvious think I'm missing here...