Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756305AbdLVOdU (ORCPT ); Fri, 22 Dec 2017 09:33:20 -0500 Received: from mail-io0-f176.google.com ([209.85.223.176]:45648 "EHLO mail-io0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752722AbdLVOdR (ORCPT ); Fri, 22 Dec 2017 09:33:17 -0500 X-Google-Smtp-Source: ACJfBovTheoq/0ju5f9ANsYUta/X4e2ldq7yrJf4s/d9y1ToZP1oxgS0CdednBL9wwDhtpxsaahcawUAGql6BjsdcZU= MIME-Version: 1.0 In-Reply-To: <20171222091221.ow5vn3ydx3hj4nht@hirez.programming.kicks-ass.net> References: <20171221102139.177253391@infradead.org> <20171221102235.088181011@infradead.org> <20171222075934.f6yenvcb2zkf2ysd@hirez.programming.kicks-ass.net> <20171222082915.4lcb7xyyooqyjpia@hirez.programming.kicks-ass.net> <20171222091221.ow5vn3ydx3hj4nht@hirez.programming.kicks-ass.net> From: Vincent Guittot Date: Fri, 22 Dec 2017 15:32:53 +0100 Message-ID: Subject: Re: [RFC PATCH 2/5] sched: Add NOHZ_STATS_KICK To: Peter Zijlstra Cc: Ingo Molnar , linux-kernel , Brendan Jackman , Dietmar Eggemann , Morten Rasmussen Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2022 Lines: 42 On 22 December 2017 at 10:12, Peter Zijlstra wrote: > On Fri, Dec 22, 2017 at 09:29:15AM +0100, Peter Zijlstra wrote: >> On Fri, Dec 22, 2017 at 09:05:45AM +0100, Vincent Guittot wrote: >> > On 22 December 2017 at 08:59, Peter Zijlstra wrote: >> > > On Thu, Dec 21, 2017 at 05:56:32PM +0100, Vincent Guittot wrote: >> > >> In fact, we can't only rely on the tick and newly_idle load balance to >> > >> ensure a period update of the blocked load because they can never >> > >> happen. >> > > >> > > I'm confused, why would the ilb not happen? >> > >> > the ilb will be kick only if tick fires which might not be the case >> > for task that runs less than a tick >> >> Oh, urgh, you're talking about when the entire system is idle. Yes >> indeed. >> >> Lemme have a think, surely we can do something saner there. > > The only thing I could come up with is running a timer for this :/ That > would keep the ILB thing running until all load is decayed (have a patch > for that somewhere). IMHO running a timer doesn't sound really great When we have enough activity on the system, the tick and the periodic load balance will ensure the update of load of all cpus (including the idle cpus) at the load balance period pace But if we don't have enough activity to trig the periodic update through ilb or because the system is not overloaded or even almost idle, we don't have these periodic update anymore. The goal is to do a lazy update of the blocked load to not hurt too much power consumption of idle CPUs. When a task wakes up and the blocked idle load have not been updated for a while, we trig the update of these blocked loads in parallel to the wake up so the data will be more accurate for the next events. It's already too late for the current wake up but that's not a big deal because the wake up path of a light loaded system is mainly choosing between previous and current cpu and the load_avg_contrib and the utilization will have been updated for next events. >