lkml.org 
[lkml]   [2014]   [Apr]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH RESEND 2/2] tracing: syscall_regfunc() should not skip kernel threads
    On Wed, 9 Apr 2014 19:06:16 +0200
    Oleg Nesterov <oleg@redhat.com> wrote:

    > syscall_regfunc() ignores the kernel thread because "it has
    > no effect", see cc3b13c1 "Don't trace kernel thread syscalls".
    >
    > However, this means that a user-space task spawned by
    > call_usermodehelper() won't report the system calls if
    > kernel_execve() is called when sys_tracepoint_refcount != 0.

    What about doing the set there? That is, we could add a check in the
    call_userspacehelper() just before it does the do_execve, that if
    sys_tracepoint_refcount is set, we set the TIF flag.


    -- Steve

    >
    > Remove this check. Hopefully the unnecessary report from
    > ret_from_fork path mentioned by cc3b13c1 is fine. In fact
    > "this is the only case" is not true. Say, kernel_execve()
    > itself does "int 80" on X86_32. Hopefully fine too.
    >
    > Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    > ---
    > kernel/tracepoint.c | 4 +---
    > 1 files changed, 1 insertions(+), 3 deletions(-)
    >
    > diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c
    > index a16754b..4e1e4ca 100644
    > --- a/kernel/tracepoint.c
    > +++ b/kernel/tracepoint.c
    > @@ -737,9 +737,7 @@ void syscall_regfunc(void)
    > if (!sys_tracepoint_refcount) {
    > read_lock(&tasklist_lock);
    > do_each_thread(g, t) {
    > - /* Skip kernel threads. */
    > - if (!(t->flags & PF_KTHREAD))
    > - set_tsk_thread_flag(t, TIF_SYSCALL_TRACEPOINT);
    > + set_tsk_thread_flag(t, TIF_SYSCALL_TRACEPOINT);
    > } while_each_thread(g, t);
    > read_unlock(&tasklist_lock);
    > }



    \
     
     \ /
      Last update: 2014-04-10 16:41    [W:3.738 / U:0.200 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site