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:
Mike Galbraith <efault@gmx.de>
Tested-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:
Ingo Molnar <mingo@elte.hu>
Loading
Please register or sign in to comment