lkml.org 
[lkml]   [2010]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC][PATCH 1/7] perf: Fix task refcount issues
    On Thu, Oct 14, 2010 at 10:34:05PM +0200, Peter Zijlstra wrote:
    > Currently it looks like find_lively_task_by_vpid() takes a task ref
    > and relies on find_get_context() to drop it.
    >
    > The problem is that perf_event_create_kernel_counter() shouldn't be
    > dropping task refs.

    Doh.

    Looks good.

    Acked-by: Matt Helsley <matthltc@us.ibm.com>

    > Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    > Cc: Frederic Weisbecker <fweisbec@gmail.com>
    > Cc: Matt Helsley <matthltc@us.ibm.com>
    > ---
    > kernel/perf_event.c | 7 ++++---
    > 1 file changed, 4 insertions(+), 3 deletions(-)
    >
    > Index: linux-2.6/kernel/perf_event.c
    > ===================================================================
    > --- linux-2.6.orig/kernel/perf_event.c
    > +++ linux-2.6/kernel/perf_event.c
    > @@ -2124,11 +2124,9 @@ find_get_context(struct pmu *pmu, struct
    > }
    > }
    >
    > - put_task_struct(task);
    > return ctx;
    >
    > errout:
    > - put_task_struct(task);
    > return ERR_PTR(err);
    > }
    >
    > @@ -5536,7 +5534,7 @@ SYSCALL_DEFINE5(perf_event_open,
    > ctx = find_get_context(pmu, task, cpu);
    > if (IS_ERR(ctx)) {
    > err = PTR_ERR(ctx);
    > - goto err_group_fd;
    > + goto err_task;
    > }
    >
    > /*
    > @@ -5632,6 +5630,9 @@ SYSCALL_DEFINE5(perf_event_open,
    >
    > err_context:
    > put_ctx(ctx);
    > +err_task:
    > + if (task)
    > + put_task_struct(task);
    > err_group_fd:
    > fput_light(group_file, fput_needed);
    > free_event(event);
    >
    >
    > --
    > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at http://vger.kernel.org/majordomo-info.html
    > Please read the FAQ at http://www.tux.org/lkml/


    \
     
     \ /
      Last update: 2010-10-15 22:05    [W:4.056 / U:0.140 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site