Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751984AbdHGQ5Z (ORCPT ); Mon, 7 Aug 2017 12:57:25 -0400 Received: from merlin.infradead.org ([205.233.59.134]:51876 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751493AbdHGQ5Y (ORCPT ); Mon, 7 Aug 2017 12:57:24 -0400 Date: Mon, 7 Aug 2017 18:57:11 +0200 From: Peter Zijlstra To: Alexey Budankov Cc: Ingo Molnar , Arnaldo Carvalho de Melo , Alexander Shishkin , Andi Kleen , Kan Liang , Dmitri Prokhorov , Valery Cherepennikov , Mark Rutland , Stephane Eranian , David Carrillo-Cisneros , linux-kernel Subject: Re: [PATCH v6 1/3] perf/core: use rb trees for pinned/flexible groups Message-ID: <20170807165711.lqv2yjobqskruvpx@hirez.programming.kicks-ass.net> References: <20170803130002.oatczvnaalplrsep@hirez.programming.kicks-ass.net> <86cbe0b0-a1ec-4d5f-addc-87bccf2e97d7@linux.intel.com> <20170804143628.34c2xqxl2e6k2arj@hirez.programming.kicks-ass.net> <9d2e25c9-209c-f28a-d601-d3f1a71f032f@linux.intel.com> <20170807083913.vfqmwsdzxsczh4yr@hirez.programming.kicks-ass.net> <20170807091326.5e3iec54ninmeyex@hirez.programming.kicks-ass.net> <9ce8c683-791b-add1-33c4-e65233e2398c@linux.intel.com> <20170807155527.alarhawa64xqhp62@hirez.programming.kicks-ass.net> <6272c0e7-7254-9035-d0bc-3abf5485d309@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6272c0e7-7254-9035-d0bc-3abf5485d309@linux.intel.com> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1044 Lines: 22 On Mon, Aug 07, 2017 at 07:27:30PM +0300, Alexey Budankov wrote: > On 07.08.2017 18:55, Peter Zijlstra wrote: > > In the extreme, if you construct your program such that you'll never get > > hit by the tick (this used to be a popular measure to hide yourself from > > time accounting) > > Well, some weird thing for me. Never run longer than one tick? > I could imaging some I/O bound code that would fast serve some short > messages, all the other time waiting for incoming requests. > Not sure if CPU events monitoring is helpful in this case. Like I said, in extreme. Typically its less weird. Another example is scheduling a very constrained counter/group along with a bunch of simple events such that the group will only succeed to schedule when its the first. In this case it will get only 1/nr_events time with RR, as opposed to the other/simple events that will get nr_counters/nr_events time. By making it runtime based, the constrained thing will more often be head of list and acquire equal total runtime to the other events.