• Peter Zijlstra's avatar
    perf/hw_breakpoint: Annotate tsk->perf_event_mutex vs ctx->mutex · 82aad7ff
    Peter Zijlstra authored
    Perf fuzzer gifted a lockdep splat:
    
      perf_event_init_context()
        mutex_lock(parent_ctx->mutex);			(B)
        inherit_task_group()
          inherit_group()
            inherit_event()
              perf_event_alloc()
                perf_try_init_event() := hw_breakpoint_event_init()
                  register_perf_hw_breakpoint()
                    mutex_lock(child->perf_event_mutex);	(A)
    
    Which is against the normal (documented) order. Now, this is a false
    positive in that child is not published yet, but also inherited events
    never end up on ->perf_event_list.
    
    Annotate this one away.
    
    Fixes: 0912037f ("perf/hw_breakpoint: Reduce contention with large number of tasks")
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    82aad7ff
hw_breakpoint.c 27.1 KB