Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753958AbdIDPm6 (ORCPT ); Mon, 4 Sep 2017 11:42:58 -0400 Received: from merlin.infradead.org ([205.233.59.134]:45426 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753842AbdIDPmH (ORCPT ); Mon, 4 Sep 2017 11:42:07 -0400 Date: Mon, 4 Sep 2017 17:41:45 +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 , Vince Weaver , Thomas Gleixner Subject: Re: [RFC][PATCH] perf: Rewrite enabled/running timekeeping Message-ID: <20170904154145.xl4fyg7vhgbnmhwi@hirez.programming.kicks-ass.net> References: <96c7776f-1f17-a39e-23e9-658596216d6b@linux.intel.com> <20170803150052.za2vofyqfgarukdr@hirez.programming.kicks-ass.net> <20170822204743.GR32112@worktop.programming.kicks-ass.net> <2a426aa2-42c8-e839-1cec-aa3971651f3e@linux.intel.com> <20170831171837.njnc6r6elsvkl7lt@hirez.programming.kicks-ass.net> <46f72a3f-f18b-0227-3d78-fb23c8a6e18e@linux.intel.com> <20170904120843.oazlv73phoxoinlj@hirez.programming.kicks-ass.net> <385005b6-51ea-383e-df81-43365f3f5152@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <385005b6-51ea-383e-df81-43365f3f5152@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: 969 Lines: 26 On Mon, Sep 04, 2017 at 05:56:06PM +0300, Alexey Budankov wrote: > On 04.09.2017 15:08, Peter Zijlstra wrote: > > On Mon, Sep 04, 2017 at 01:46:45PM +0300, Alexey Budankov wrote: > >>> So the below completely rewrites timekeeping (and probably breaks > >>> world) but does away with the need to touch events that don't get > >>> scheduled. > >> > >> We still need and do iterate thru all events at some points e.g. on context switches. > > > > Why do we _need_ to? > > We do so in the current implementation with several tstamp_* fields. Right, but we want to stop doing so asap :-) > >> U - allocation, A - ACTIVE, I - INACTIVE, O - OFF, > >> E - ERROR, X - EXIT, D - DEAD, > > > > Not sure we care about the different <0 values, they're all effectively > > OFF. > > We still need to care about proper initial state of timings when moving above >=0 state. Very true. I'm not sure I fully covered that, let me see if there's something sensible to do for that.