lkml.org 
[lkml]   [2011]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Q: perf_event && task->ptrace_bps[]
    On Mon, Jan 17, 2011 at 09:52:56PM +0100, Peter Zijlstra wrote:
    > On Mon, 2011-01-17 at 21:34 +0100, Oleg Nesterov wrote:
    > > On 11/08, Oleg Nesterov wrote:
    > > >
    > > > I am trying to understand the usage of hw-breakpoints in arch_ptrace().
    > > > ptrace_set_debugreg() and related code looks obviously racy. Nothing
    > > > protects us against flush_ptrace_hw_breakpoint() called by the dying
    > > > tracee. Afaics we can leak perf_event or use the already freed memory
    > > > or both.
    > > >
    > > > Am I missed something?
    > > >
    > > > Looking into the git history, I don't even know which patch should be
    > > > blamed (if I am right), there were too many changes. I noticed that
    > > > 2ebd4ffb6d0cb877787b1e42be8485820158857e "perf events: Split out task
    > > > search into helper" moved the PF_EXITING check from find_get_context().
    > > > This check coould help if sys_ptrace() races with SIGKILL, but it was
    > > > racy anyway.
    > >
    > > Ping.
    > >
    > > Any idea how to fix this cleanly? May be we can reuse perf_event_mutex,
    > > but this looks soooo ugly. And do_exit()->flush_ptrace_hw_breakpoint()
    > > has the strange "FIXME:" comment which doesn't help me to understand
    > > what can we do.
    > >
    > > Probably the best fix is to change this code so that the tracer owns
    > > ->ptrace_bps[], not the tracee. But this is not trivial, and needs a
    > > lot of changes in ptrace code.
    >
    > Wasn't this sorted by: 8882135bcd332f294df5455747ea43ba9e6f77ad?
    >
    > Or is this purely related to the ptrace muck? in which case I guess
    > Frederic is you man, I never looked at the hw_breakpoint stuff in
    > general and the ptrace bits in particular.

    Yeah sorry I lost track on this and left it unanswered in the middle.
    Just lemme rewalk the thread and I'm back :)


    \
     
     \ /
      Last update: 2011-01-17 22:03    [W:0.025 / U:0.184 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site