Re: Perf hotplug lockup in v4.9-rc8

From: Mark Rutland
Date: Wed Dec 07 2016 - 13:03:43 EST


On Wed, Dec 07, 2016 at 01:52:17PM +0000, Mark Rutland wrote:
> Hi all
>
> Jeremy noticed a kernel lockup on arm64 when the perf tool was used in
> parallel with hotplug, which I've reproduced on arm64 and x86(-64) with
> v4.9-rc8. In both cases I'm using defconfig; I've tried enabling lockdep
> but it was silent for arm64 and x86.

It looks like we're trying to install a task-bound event into a context
where task_cpu(ctx->task) is dead, and thus the cpu_function_call() in
perf_install_in_context() fails. We retry repeatedly.

On !PREEMPT (as with x86 defconfig), we manage to prevent the hotplug
machinery from making progress, and this turns into a livelock.

On PREEMPT (as with arm64 defconfig), I'm somewhat lost.

Thanks,
Mark.