Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp5715994ybh; Wed, 7 Aug 2019 10:11:40 -0700 (PDT) X-Google-Smtp-Source: APXvYqxwm126c9YfSNRVnRVfHrrBOQt/vP8DzBaghf0aVU8VE7TMphRBAF2n0L3R0PxiibwC59wA X-Received: by 2002:a17:902:3341:: with SMTP id a59mr8914685plc.186.1565197900725; Wed, 07 Aug 2019 10:11:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565197900; cv=none; d=google.com; s=arc-20160816; b=ZngM0nZhHyZNV91hmNkw9ivixS4Yo6MbOHz1nyKMei4mVO6m9ZV+D1B/k/U1aP5zYi GvXp+TIR9Pf2lAc5se2FHak9hiNYjzEks8olQOb1wzy3K+ALXBjx+fkacBPpZH5PUmnQ IdZUJSADJliZNodmyvG6F168nk3GENV+VVcy9+V2sX7i3bb/qguQ2JPHqF8HCcV/HvFu LUZvpa37Z8+/hWH0oSLwGZJBWqKc4Ql+F37rw++vVDkIP7/23OqA8/4FrTTd6/CMprta 90E3fPOagrkzDLt7HZbYAVDeZ+oPC6LYuDcHssJBzbDTtOc9+QhKeJUMwRlXPbQO8Lma BSHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:subject:autocrypt:openpgp:from:references:cc:to; bh=wbS3SJuacxJI6Pjo4kJCPeiXYNl3DqrfRoyzUUqlQmM=; b=oFY1l7QtJTtWOaC/Fk+xtnBIOYQF8pNzNkzI16kZLk1vRrOK4nLzAEDIOd9ORYXTx9 sMNyi+32eGle5kktTOkcSpcdqWBgS7L2op/5LQlhFrGbiNOev+QYE0qfUYWLg/Fc2bUW GQzzh+TBqkLOZ6DY+VDy07rIcF9Qjw1qiznxUgPlOVvEHqT8Yzcnr4KIAVgCfuPCgk0l v81hcZxd7iihnscR6st7Iv7qegmgf/oEa8WP5ivJS84Nh4rimO0YlovkpD/nCq08h5bI Vi2BMtqoY6c+kHGSJYPmExIvsvwyzwmBWolnr73EW0RUu1Y9po8e9if6BStVkOczllbo GJ0w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f12si44889106plr.211.2019.08.07.10.11.24; Wed, 07 Aug 2019 10:11:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388774AbfHGRKt (ORCPT + 99 others); Wed, 7 Aug 2019 13:10:49 -0400 Received: from mga14.intel.com ([192.55.52.115]:29340 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729278AbfHGRKt (ORCPT ); Wed, 7 Aug 2019 13:10:49 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Aug 2019 10:10:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,358,1559545200"; d="scan'208";a="203261178" Received: from schen9-desk.jf.intel.com (HELO [10.54.74.162]) ([10.54.74.162]) by fmsmga002.fm.intel.com with ESMTP; 07 Aug 2019 10:10:48 -0700 To: Dario Faggioli , Julien Desfossez , "Li, Aubrey" Cc: Aaron Lu , Aubrey Li , Subhra Mazumdar , Vineeth Remanan Pillai , Nishanth Aravamudan , Peter Zijlstra , Ingo Molnar , Thomas Gleixner , Paul Turner , Linus Torvalds , Linux List Kernel Mailing , =?UTF-8?B?RnLDqWTDqXJpYyBXZWlzYmVja2Vy?= , Kees Cook , Greg Kerr , Phil Auld , Valentin Schneider , Mel Gorman , Pawan Gupta , Paolo Bonzini References: <20190612163345.GB26997@sinkpad> <635c01b0-d8f3-561b-5396-10c75ed03712@oracle.com> <20190613032246.GA17752@sinkpad> <20190619183302.GA6775@sinkpad> <20190718100714.GA469@aaronlu> <20190725143003.GA992@aaronlu> <20190726152101.GA27884@sinkpad> <7dc86e3c-aa3f-905f-3745-01181a3b0dac@linux.intel.com> <20190802153715.GA18075@sinkpad> From: Tim Chen Openpgp: preference=signencrypt Autocrypt: addr=tim.c.chen@linux.intel.com; prefer-encrypt=mutual; keydata= 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 l50q2K/r651xphs7CGEdKi1nU0YJVbQxJQ== Subject: Re: [RFC PATCH v3 00/16] Core scheduling v3 Message-ID: <69cd9bca-da28-1d35-3913-1efefe0c1c22@linux.intel.com> Date: Wed, 7 Aug 2019 10:10:47 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/7/19 1:58 AM, Dario Faggioli wrote: > So, here comes my question: I've done a benchmarking campaign (yes, > I'll post numbers soon) using this branch: > > https://github.com/digitalocean/linux-coresched.git vpillai/coresched-v3-v5.1.5-test > https://github.com/digitalocean/linux-coresched/tree/vpillai/coresched-v3-v5.1.5-test > > Last commit: > 7feb1007f274 "Fix stalling of untagged processes competing with tagged > processes" > > Since I see that, in this thread, there are various patches being > proposed and discussed... should I rerun my benchmarks with them > applied? If yes, which ones? And is there, by any chance, one (or maybe > more than one) updated git branch(es)? > > Thanks in advance and Regards > Hi Dario, Having an extra set of eyes are certainly welcomed. I'll give my 2 cents on the issues with v3. Others feel free to chime in if my understanding is incorrect or I'm missing something. 1) Unfairness between the sibling threads ----------------------------------------- One sibling thread could be suppressing and force idling the sibling thread over proportionally. Resulting in the force idled CPU not getting run and stall tasks on suppressed CPU. Status: i) Aaron has proposed a patchset here based on using one rq as a base reference for vruntime for task priority comparison between siblings. https://lore.kernel.org/lkml/20190725143248.GC992@aaronlu/ It works well on fairness but has some initialization issues ii) Tim has proposed a patchset here to account for forced idle time in rq's min_vruntime https://lore.kernel.org/lkml/f96350c1-25a9-0564-ff46-6658e96d726c@linux.intel.com/ It improves over v3 with simpler logic compared to Aaron's patch, but does not work as well on fairness iii) Tim has proposed yet another patch to maintain fairness of forced idle time between CPU threads per Peter's suggestion. https://lore.kernel.org/lkml/21933a50-f796-3d28-664c-030cb7c98431@linux.intel.com/ Its performance has yet to be tested. 2) Not rescheduling forced idled CPU ------------------------------------ The forced idled CPU does not get a chance to re-schedule itself, and will stall for a long time even though it has eligible tasks to run. Status: i) Aaron proposed a patch to fix this to check if there are runnable tasks when scheduling tick comes in. https://lore.kernel.org/lkml/20190725143344.GD992@aaronlu/ ii) Vineeth has patches to this issue and also issue 1, based on scheduling in a new "forced idle task" when getting forced idle, but has yet to post the patches. 3) Load balancing between CPU cores ----------------------------------- Say if one CPU core's sibling threads get forced idled a lot as it has mostly incompatible tasks between the siblings, moving the incompatible load to other cores and pulling compatible load to the core could help CPU utilization. So just considering the load of a task is not enough during load balancing, task compatibility also needs to be considered. Peter has put in mechanisms to balance compatible tasks between CPU thread siblings, but not across cores. Status: I have not seen patches on this issue. This issue could lead to large variance in workload performance based on your luck in placing the workload among the cores. Thanks. Tim