From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752176AbdECVp7 (ORCPT ); Wed, 3 May 2017 17:45:59 -0400 Received: from mail-qk0-f195.google.com ([209.85.220.195]:35429 "EHLO mail-qk0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750716AbdECVpy (ORCPT ); Wed, 3 May 2017 17:45:54 -0400 Date: Wed, 3 May 2017 17:45:46 -0400 From: Tejun Heo To: Peter Zijlstra Cc: Ingo Molnar , linux-kernel@vger.kernel.org, Linus Torvalds , Vincent Guittot , Mike Galbraith , Paul Turner , Chris Mason , kernel-team@fb.com Subject: Re: [PATCH v2 1/2] sched/fair: Fix how load gets propagated from cfs_rq to its sched_entity Message-ID: <20170503214546.GA7451@htj.duckdns.org> References: <20170424201344.GA14169@wtj.duckdns.org> <20170424201415.GB14169@wtj.duckdns.org> <20170424213324.GA23619@wtj.duckdns.org> <20170503180028.ejf73et3pc4meqji@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170503180028.ejf73et3pc4meqji@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, Peter. On Wed, May 03, 2017 at 08:00:28PM +0200, Peter Zijlstra wrote: > Just FUDGE2 on its own seems to be the best on my system and is a change > that makes sense (and something Paul recently pointed out as well). > > The implementation isn't particularly pretty or fast, but should > illustrate the idea. > > Poking at the whole update_tg_cfs_load() thing only makes it worse after > that. And while I agree that that code is mind bending; it seems to work > OK-ish. > > Tejun, Vincent, could you guys have a poke? So, just preliminary testing. FUDGE: Does cut down the number of wrong picks by about 70% and p99 latency by about half; however, the resulting p99 is still worse by 5 - 10 times compared to !cgroup case. FUDGE2: Changes things a lot (load values go wild) but only because it's missing scale_load_down(). After adding scale_load_down(), it doesn't do much. For this to work, it needs to be always propagated, which btw shouldn't be prohibitively expensive given other operations which are performed at the same time. Thanks. -- tejun