public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Vince Weaver <vincent.weaver@maine.edu>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Stephane Eranian <eranian@google.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Jiri Olsa <jolsa@redhat.com>, Ingo Molnar <mingo@redhat.com>,
	Paul Mackerras <paulus@samba.org>
Subject: Re: perf: odd event scheduling issue
Date: Wed, 20 May 2015 11:28:42 +0200	[thread overview]
Message-ID: <20150520092842.GF18673@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <20150520070057.GK3644@twins.programming.kicks-ass.net>

On Wed, May 20, 2015 at 09:00:57AM +0200, Peter Zijlstra wrote:
> On Tue, May 19, 2015 at 11:07:09PM -0400, Vince Weaver wrote:
> > Hello
> > 
> > so I'm running 4.1-rc4 on my Haswell machine and a lot of my perf_event 
> > testsuite is failing.  There seems to be weird event scheduling issues.
> > 
> > I can reproduce it with plain perf; simple event groups that should work 
> > fine can't be scheduled.
> > 
> > vince@haswell:~$ perf stat -e \{cycles,instructions\} sleep 1
> > 
> 
> Hmm indeed, my ivb-ep does the same thing. Lemme go poke at that.

I've gotta go pick the kid up from school, but the bisect just finished
and threw up the below commit.

I'll go stare at it in an hour or so.

---

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>

:040000 040000 d78b3927f7fb17a34079012f7184aeef6120e411 84a0237880834d5b58b357fb58ff816124718545 M      arch

  parent reply	other threads:[~2015-05-20  9:28 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-20  3:07 perf: odd event scheduling issue Vince Weaver
2015-05-20  7:00 ` Peter Zijlstra
2015-05-20  7:11   ` Jiri Olsa
2015-05-20  9:28   ` Peter Zijlstra [this message]
2015-05-20 13:52     ` Peter Zijlstra
2015-05-20 15:25       ` Peter Zijlstra
2015-05-20 16:08         ` Peter Zijlstra
2015-05-20 16:28           ` Peter Zijlstra
2015-05-20 23:10             ` Andi Kleen
2015-05-21 12:04               ` Stephane Eranian
2015-05-20 16:25       ` Jiri Olsa
2015-05-21 12:05         ` Stephane Eranian

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150520092842.GF18673@twins.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=acme@kernel.org \
    --cc=eranian@google.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=paulus@samba.org \
    --cc=vincent.weaver@maine.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox