From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751603AbdEBWCA (ORCPT ); Tue, 2 May 2017 18:02:00 -0400 Received: from mail-yw0-f181.google.com ([209.85.161.181]:32866 "EHLO mail-yw0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751274AbdEBWB5 (ORCPT ); Tue, 2 May 2017 18:01:57 -0400 Date: Tue, 2 May 2017 18:01:54 -0400 From: Tejun Heo To: Peter Zijlstra Cc: Vincent Guittot , Ingo Molnar , linux-kernel , Linus Torvalds , Mike Galbraith , Paul Turner , Chris Mason , kernel-team@fb.com Subject: Re: [PATCH 2/2] sched/fair: Always propagate runnable_load_avg Message-ID: <20170502220154.GD5335@htj.duckdns.org> References: <20170424201344.GA14169@wtj.duckdns.org> <20170424201444.GC14169@wtj.duckdns.org> <20170426225202.GC11348@wtj.duckdns.org> <20170428203347.GC19364@htj.duckdns.org> <20170501155613.plfee2hzfvt3n6j7@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170501155613.plfee2hzfvt3n6j7@hirez.programming.kicks-ass.net> User-Agent: Mutt/1.8.0 (2017-02-23) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, On Mon, May 01, 2017 at 05:56:13PM +0200, Peter Zijlstra wrote: > On Fri, Apr 28, 2017 at 04:33:47PM -0400, Tejun Heo wrote: > > I'm attaching the debug patch. With your change (avg instead of > > runnable_avg), the following trace shows why it's wrong. > > Ah, OK. So you really want runnable_avg (and I understand why), which is > rather unfortunate, since we have everything on load_avg. > > So for shares, load_avg gives a more stable number. This is important > since tg->load_avg is a global number, so computing it is expensive (and > slow). Therefore more stable numbers are good. > > > The thing with cfs_rq se's load_avg is that, it isn't really used > > anywhere else AFAICS, so overriding it to the cfs_rq's > > runnable_load_avg isn't prettiest but doesn't really change anything. > > You mean, consistently expressing a group's se->load.weight in terms of > runnable_load_avg? See the above. I think you got this on the other thread but for clarity: cfs_rq->avg.load_avg is used for share calculation and we want to keep it that way as the calcluation is expensive and rather decoupled across CPUs (the deviation can be quite a bit without the stability). But the group *se*->avg.load_avg is a separate thing which isn't really used anywhere except for as a propagation channel from group cfs_rq to its parent cfs_rq. Thanks. -- tejun