Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp796637ybb; Fri, 20 Mar 2020 08:13:43 -0700 (PDT) X-Google-Smtp-Source: ADFU+vuJC6m1aZE/Bddzc0SfawcJZugBb9gue8toP8Ij7+BnwIGgwFEibjG5XSKiQxEk3YeEqM3m X-Received: by 2002:aca:ddc5:: with SMTP id u188mr6575926oig.8.1584717221974; Fri, 20 Mar 2020 08:13:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584717221; cv=none; d=google.com; s=arc-20160816; b=ZmEK/CsiwxCyNAtQLo2H2Jm5RLQRd5kw3eyvt3Cj11hNdvKpF+otDHuiD4HLf0ki9u eKKTPyrTg3C4fjWV/vhMm/aEGAQgk/5M75VCknC4hnZzkclH/a5XV21Cna3YPKQcYvof FBLF0VzlJjU9Y5TNQcNZHLQOv+ykXOy4Bv9SsVLrITQsvyI5rv67vfe5+q7rbJQAf1dy DHIWkMOh2UMTfSGpmm39ALz15sGW0e0eqwsqicQbYhrN53hw4lEDJYNN/y+st/+VPtKb kiB9WZDTlJozDGuKhRf79x6TwKhAWPw2GS8NLPJFpOD10Bix1tMtHNW1Vatygqep/Bxv l02w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=CtfWb/UQeryM+JWPwVDzH9ou2qmxiMs4ApMtrx1iFJ0=; b=xZkyDbFaHiB4JSZJtq3GZ4E7V/f6qIJr2NGkeEkhnQhqT+J/+cfwVb33XnM//e9Rup 6s8OOD85YtuJHJFsmciPRO3/T3HdOGedACSrPqSwnOLf4d1f+s7i3811PB/8tvk85YKU O3QSlm2UmRdAchLvlnFYZbzU7ARHRk68i5ZNf/+D1gqwtNZB0ckYnMMhUGboaU/muyJZ ciymZYps9soenKq2Bue6oEazntdJIB1fOQAVQQZEgcdfuS0V3icZvPbLv9hG/Z3Ov3oB NYhxKflUj5BoDuB/mfWthonrO2sUSmFqH1FA5Uq0A8cj+6Dmi3QE1E7Gs2G4rpzyOKOL 8hew== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j185si2796056oif.36.2020.03.20.08.13.19; Fri, 20 Mar 2020 08:13:41 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727049AbgCTPM6 (ORCPT + 99 others); Fri, 20 Mar 2020 11:12:58 -0400 Received: from outbound-smtp36.blacknight.com ([46.22.139.219]:55885 "EHLO outbound-smtp36.blacknight.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726773AbgCTPM6 (ORCPT ); Fri, 20 Mar 2020 11:12:58 -0400 Received: from mail.blacknight.com (pemlinmail01.blacknight.ie [81.17.254.10]) by outbound-smtp36.blacknight.com (Postfix) with ESMTPS id 024EC1B75 for ; Fri, 20 Mar 2020 15:12:57 +0000 (GMT) Received: (qmail 28040 invoked from network); 20 Mar 2020 15:12:56 -0000 Received: from unknown (HELO stampy.112glenside.lan) (mgorman@techsingularity.net@[84.203.18.57]) by 81.17.254.9 with ESMTPA; 20 Mar 2020 15:12:56 -0000 From: Mel Gorman To: Ingo Molnar Cc: Peter Zijlstra , Vincent Guittot , Valentin Schneider , Phil Auld , LKML , Mel Gorman Subject: [PATCH 0/4] Throttle select_idle_sibling when a target domain is overloaded Date: Fri, 20 Mar 2020 15:12:41 +0000 Message-Id: <20200320151245.21152-1-mgorman@techsingularity.net> X-Mailer: git-send-email 2.16.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is a follow-on from the CPU/NUMA load balancer reconcilation after I noticed that select_idle_sibling() was doing excessive work. It was originally part of a larger series that merged select_idle_core, select_idle_sibling and select_idle_cpu as a single pass. Unfortunately, fixes have invalidated the tests multiple times so this series covers only one part for now as the tests are extremely time-consuming. tip/sched/core as of March 13th was used as the baseline with "sched/fair: fix condition of avg_load calculation" applied which was just picked up by tip at the time of writing. Patches 1-2 add schedstats to track the efficiency of select_idle_sibling(). Ordinarily they are disabled and are only really of use to a kernel developer. However, I find them more practical to work with than perf. Patch 3 is a trivial micro-optimisation that avoids clearing part of a cpumask if a core has been found. Patch 4 tracks whether a domain appeared to be overloaded during select_idle_cpu() so that future scans can abort early if necessary. This reduces the number of runqueues that are scanned uselessly when a domain is overloaded. include/linux/sched/topology.h | 1 + kernel/sched/debug.c | 6 +++ kernel/sched/fair.c | 103 +++++++++++++++++++++++++++++++++++------ kernel/sched/features.h | 3 ++ kernel/sched/sched.h | 8 ++++ kernel/sched/stats.c | 9 ++-- 6 files changed, 113 insertions(+), 17 deletions(-) -- 2.16.4