From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757456AbcASS5P (ORCPT ); Tue, 19 Jan 2016 13:57:15 -0500 Received: from bombadil.infradead.org ([198.137.202.9]:45418 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756972AbcASS5I (ORCPT ); Tue, 19 Jan 2016 13:57:08 -0500 Date: Tue, 19 Jan 2016 19:56:47 +0100 From: Peter Zijlstra To: Frederic Weisbecker Cc: LKML , Byungchul Park , Chris Metcalf , Thomas Gleixner , Luiz Capitulino , Christoph Lameter , "Paul E . McKenney" , Mike Galbraith , Rik van Riel Subject: Re: [PATCH 1/4] sched: Don't account tickless CPU load on tick Message-ID: <20160119185647.GA6357@twins.programming.kicks-ass.net> References: <1452700891-21807-1-git-send-email-fweisbec@gmail.com> <1452700891-21807-2-git-send-email-fweisbec@gmail.com> <20160119130857.GC6344@twins.programming.kicks-ass.net> <20160119162210.GA5317@lerouge> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160119162210.GA5317@lerouge> User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jan 19, 2016 at 05:22:11PM +0100, Frederic Weisbecker wrote: > On Tue, Jan 19, 2016 at 02:08:57PM +0100, Peter Zijlstra wrote: > > On Wed, Jan 13, 2016 at 05:01:28PM +0100, Frederic Weisbecker wrote: > > > The cpu load update on tick doesn't care about dynticks and as such is > > > buggy when occuring on nohz ticks (including idle ticks) as it resets > > > the jiffies snapshot that was recorded on nohz entry. We eventually > > > ignore the potentially long tickless load that happened before the > > > tick. > > > > I don't get it, how can we call scheduler_tick() while > > tick_nohz_tick_stopped() ? > > tick_nohz_tick_stopped() (which is ts->tick_stopped == 1) doesn't actually > mean that the tick is really stopped. It just means that the tick fires only > when it's really needed (timer list expired, RCU stuff, irq_work, ...). That's insane and broken. Fix _that_. If RCU, irq_work etc.. needs the tick, do not stop the tick.