Re: perf: odd event scheduling issue

Peter Zijlstra
2015-05-20T13:52:18Z

On Wed, May 20, 2015 at 11:28:42AM +0200, Peter Zijlstra wrote:

> ---
>
> c02cdbf60b51b8d98a49185535f5d527a2965142 is the first bad commit
> commit c02cdbf60b51b8d98a49185535f5d527a2965142
> Author: Stephane Eranian <eranian@google.com>
> Date: Mon Nov 17 20:07:02 2014 +0100
>
> perf/x86/intel: Limit to half counters when the HT workaround is enabled, to avoid exclusive mode starvation
>
> This patch limits the number of counters available to each CPU when
> the HT bug workaround is enabled.
>
> This is necessary to avoid situation of counter starvation. Such can
> arise from configuration where one HT thread, HT0, is using all 4 counters
> with corrupting events which require exclusion the the sibling HT, HT1.
>
> In such case, HT1 would not be able to schedule any event until HT0
> is done. To mitigate this problem, this patch artificially limits
> the number of counters to 2.
>
> That way, we can gurantee that at least 2 counters are not in exclusive
> mode and therefore allow the sibling thread to schedule events of the
> same type (system vs. per-thread). The 2 counters are not determined
> in advance. We simply set the limit to two events per HT.
>
> This helps mitigate starvation in case of events with specific counter
> constraints such a PREC_DIST.
>
> Note that this does not elimintate the starvation is all cases. But
> it is better than not having it.
>
> (Solution suggested by Peter Zjilstra.)
>
> Signed-off-by: Stephane Eranian <eranian@google.com>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> Cc: bp@alien8.de
> Cc: jolsa@redhat.com
> Cc: kan.liang@intel.com
> Cc: maria.n.dimakopoulou@gmail.com
> Link: http://lkml.kernel.org/r/1416251225-17721-11-git-send-email-eranian@google.com
> Signed-off-by: Ingo Molnar <mingo@kernel.org>

OK, so if you have the watchdog enabled, that's 1 event, and having a
max of 2 GP events, adding another 2 events is fail.

Jiri, did you SNB have the watchdog disabled?