Re: [PATCH] perf/x86/intel/cqm: Check cqm/mbm enabled state in event init

From: Peter Zijlstra
Date: Tue Sep 06 2016 - 04:13:42 EST


On Mon, Sep 05, 2016 at 05:30:07PM +0200, Jiri Olsa wrote:
> Yanqiu Zhang reported kernel panic when using mbm event
> on system where CQM is detected but without mbm event
> support, like with perf:
>
> # perf stat -e 'intel_cqm/event=3/' -a
>
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000020
> IP: [<ffffffff8100d64c>] update_sample+0xbc/0xe0
> ...
> <IRQ>
> [<ffffffff8100d688>] __intel_mbm_event_init+0x18/0x20
> [<ffffffff81113d6b>] flush_smp_call_function_queue+0x7b/0x160
> [<ffffffff81114853>] generic_smp_call_function_single_interrupt+0x13/0x60
> [<ffffffff81052017>] smp_call_function_interrupt+0x27/0x40
> [<ffffffff816fb06c>] call_function_interrupt+0x8c/0xa0
> ...
>
> The reason is that we currently allow to init mbm event
> even if mbm support is not detected. Adding checks for
> both cqm and mbm events and support into cqm's event_init.
>
> Reported-by: Yanqiu Zhang <yanqzhan@xxxxxxxxxx>
> Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>

Fixes: 33c3cc7acfd9 ("perf/x86/mbm: Add Intel Memory B/W Monitoring enumeration and init")

Cc: stable@xxxxxxxxxxxxxxxx # 4.6+