perf: Fix 'perf sched record' deadlock
perf sched record can deadlock a box should the holder of
handle->data->lock take an interrupt, and then attempt to
acquire an rq lock held by a CPU trying to acquire the
same lock. Disable interrupts.
   CPU0                            CPU1
   sched event with rq->lock held
                                   grab handle->data->lock
   spin on handle->data->lock
                                   interrupt
                                   try to grab rq->lock
Reported-by:  Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by:
Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by:  Mike Galbraith <efault@gmx.de>
Tested-by:
Mike Galbraith <efault@gmx.de>
Tested-by:  Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by:
Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by:  Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <1269598293.6174.8.camel@marge.simson.net>
Signed-off-by:
Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <1269598293.6174.8.camel@marge.simson.net>
Signed-off-by:  Ingo Molnar <mingo@elte.hu>
Ingo Molnar <mingo@elte.hu>
Loading
Please register or sign in to comment
