Messages in this thread | | | Date | Thu, 6 Apr 2017 11:16:04 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH] MIPS: perf: fix deadlock |
| |
On Wed, Apr 05, 2017 at 03:14:08PM +0200, Rabin Vincent wrote:
That lock is disgusting... but yes patch looks about right.
I'll leave it to the MIPS people though.
> --- > arch/mips/kernel/perf_event_mipsxx.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/arch/mips/kernel/perf_event_mipsxx.c b/arch/mips/kernel/perf_event_mipsxx.c > index 8c35b31..9452b02 100644 > --- a/arch/mips/kernel/perf_event_mipsxx.c > +++ b/arch/mips/kernel/perf_event_mipsxx.c > @@ -1446,6 +1446,11 @@ static int mipsxx_pmu_handle_shared_irq(void) > HANDLE_COUNTER(0) > } > > +#ifdef CONFIG_MIPS_PERF_SHARED_TC_COUNTERS > + read_unlock(&pmuint_rwlock); > +#endif > + resume_local_counters(); > + > /* > * Do all the work for the pending perf events. We can do this > * in here because the performance counter interrupt is a regular > @@ -1454,10 +1459,6 @@ static int mipsxx_pmu_handle_shared_irq(void) > if (handled == IRQ_HANDLED) > irq_work_run(); > > -#ifdef CONFIG_MIPS_PERF_SHARED_TC_COUNTERS > - read_unlock(&pmuint_rwlock); > -#endif > - resume_local_counters(); > return handled; > } > > -- > 2.7.0 >
| |