Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752817AbdCPSPD (ORCPT ); Thu, 16 Mar 2017 14:15:03 -0400 Received: from merlin.infradead.org ([205.233.59.134]:36230 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752151AbdCPSO7 (ORCPT ); Thu, 16 Mar 2017 14:14:59 -0400 Date: Thu, 16 Mar 2017 19:14:13 +0100 From: Peter Zijlstra To: Vince Weaver Cc: linux-kernel@vger.kernel.org, Ingo Molnar , Arnaldo Carvalho de Melo Subject: Re: perf: massive perf_event slowdown between 4.9 and 4.11-rc Message-ID: <20170316181413.kprvdeck3rirexaj@hirez.programming.kicks-ass.net> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1187 Lines: 39 On Thu, Mar 16, 2017 at 11:54:58AM -0400, Vince Weaver wrote: > Hello > > My student actually noticed this before I did, I was hoping it was some > sort of error in her data. > > Anyway all perf_event functionality (especially reads) has become about > 20x slower, at least on Intel machines (haswell and skylake are the only > ones I've tested) sometime between 4.9 and 4.11-rc > > For example, in the PAPI tests: > > 4.11-rc2 > > Total cost for PAPI_read (2 counters) over 1000000 iterations > min cycles : 15192 > max cycles : 3887735 > mean cycles : 15662.057418 > std deviation: 19079.398693 > > > 4.9 > > Total cost for PAPI_read (2 counters) over 1000000 iterations > min cycles : 864 > max cycles : 78459 > mean cycles : 908.010315 > std deviation: 144.875697 > > > The perf_event_test validation tests are also showing this, even when > using rdpmc() rather than read. > > Is there a likely change that might have caused this? Hoping to avoid > bisecting it as that will kill the rest of the week probably. No immediate clue; but I can have a poke. Do you have a handy way of showing this using: perf test rdpmc, or should I hack something together?