From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756103AbbKDQPB (ORCPT ); Wed, 4 Nov 2015 11:15:01 -0500 Received: from mail-wi0-f179.google.com ([209.85.212.179]:38056 "EHLO mail-wi0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751255AbbKDQO7 (ORCPT ); Wed, 4 Nov 2015 11:14:59 -0500 Date: Wed, 4 Nov 2015 17:14:57 +0100 From: Frederic Weisbecker To: Peter Zijlstra Cc: Hiroshi Shimamoto , Ingo Molnar , "linux-kernel@vger.kernel.org" , Thomas Gleixner Subject: Re: [PATCH v3 1/2] cputime: fix invalid gtime in proc Message-ID: <20151104161455.GB12889@lerouge> References: <7F861DC0615E0C47A872E6F3C5FCDDBD05F575AA@BPXM14GP.gisp.nec.co.jp> <20151102161351.GT3604@twins.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151102161351.GT3604@twins.programming.kicks-ass.net> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 02, 2015 at 05:13:51PM +0100, Peter Zijlstra wrote: > On Fri, Oct 30, 2015 at 12:46:39AM +0000, Hiroshi Shimamoto wrote: > > +++ b/kernel/sched/cputime.c > > @@ -786,6 +786,9 @@ cputime_t task_gtime(struct task_struct *t) > > unsigned int seq; > > cputime_t gtime; > > > > + if (!context_tracking_is_enabled()) > > + return t->gtime; > > + > > Yeah, not happy about that.. why do we have to touch context tracking > muck to find vtime state etc. That's right, this is because it is deemed to be a quick and non invasive fix to be backported. Then will come the more invasive but proper fix consisting in having vtime_accounting_enabled() telling if vtime is running on any CPU and vtime_accounting_cpu_enabled(). The first will be used for remote readers (as in this patch) and the second for writers. Since we are dealing with a regression, it's better to minimize the changes. AFAICT, the regression got introduced in 2012: 6a61671bb2f3a1bd12cd17b8fca811a624782632 ("cputime: Safely read cputime of full dynticks CPUs") > > > do { > > seq = read_seqbegin(&t->vtime_seqlock); > > > > -- > > 1.8.3.1 > >