Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp1029706pxb; Thu, 19 Aug 2021 18:07:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxhs5zn20k8HiOhfuL5FLfR42L/YNQktFSI9wJUI06IP/74lIIF5CQ8BspOz92420EW2JNB X-Received: by 2002:a05:6402:1850:: with SMTP id v16mr19940939edy.308.1629421664363; Thu, 19 Aug 2021 18:07:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629421664; cv=none; d=google.com; s=arc-20160816; b=dUr2Yn45EZ89OVu6gSBZzUsaiv3g8lXquWHthrcPqY6ZQ9vBE8QwYucBlonM6R73KN w2epcDwW1ATcvIFy1gYGRVdRhd/Qxb8khsxMDWWG7e58ALX6ODT/MMwLeuEJX8wlSsj5 qWCMBZo+j5eAPBF7ifjH4CdZWfd36cgtXxG7oUFpgi6vpze+Kd2z9CEJ3rCe/sVLy9xR kr/HNzYkjgYuU4UDzyc+vzfHPseEGSfVhQsWr2D8d3BmlMfrG8J+Oc0BXzcWMiJD5N6W 8t6SXY6V1AzUhefJLYrXU+uppp0YI6kaaMO+iaVKPDK7rG5g7k2KnWky3bbekU4kZ3+6 2ZeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=5ZSzDmZf9Lp/Z5C3yKlFbAaN/ZWlBsBW09PXv4v1as4=; b=k4j2svkTKJZDDVzycL0NtUlyfJrLev9uvlnHKJ80Hr6FAa6ybppYFzIhM9a44Jabys 1bHMCUE/qUJPgqULaaJQRjycsBa84bgMVk0JtwaT/A2it1cbLx2f8AyLdT/kJqyf1ZeR ur3/0GGkbp9hQ/R5tAqxvnkQ7Z2vfpP4xzDCdLIOKAkzNCA9L9K66EwdzRdpmhTE74KB 9a4/UWPTyAi7cYrrw7e/0Otm98gHE2orHFbJQV3Ck+4rzs2ysJf2l2CyPMpHqxL6QDGL QXKwvWt/zusvJ0D4LTF1n90BqfAoY9dTKQYkBHfw74MwvsSRlZBobzMNaIR7FUDwMgf2 6yuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=IkqB1nRl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ga11si4960059ejc.571.2021.08.19.18.07.19; Thu, 19 Aug 2021 18:07:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=IkqB1nRl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237552AbhHTBFQ (ORCPT + 99 others); Thu, 19 Aug 2021 21:05:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237579AbhHTBFO (ORCPT ); Thu, 19 Aug 2021 21:05:14 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7357BC0613D9 for ; Thu, 19 Aug 2021 18:04:37 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id s4-20020a259004000000b005947575ac53so8408052ybl.5 for ; Thu, 19 Aug 2021 18:04:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=5ZSzDmZf9Lp/Z5C3yKlFbAaN/ZWlBsBW09PXv4v1as4=; b=IkqB1nRlRi+AqC600zP1g+vW12uwhGNK0Ps5se66FABH2EZ5am53LggtLR9EL2aQw0 YFHJOlxjWyKU8oV8ftsV9GjMydjOZ7uknf4mtSGyb4/WwgzUMa4tQRclEC2rPUpZZN52 kYNPZA3tV2KwkpEMtWEMZ8yX3l9xdaWEMh8KTsMEGtqJN//gxaJk6++KRTCL6248fKQF V07RFG4Diy58PlOQbAxmc7TM7UEUmU0uhBNj3OuDUliOLurQGY6GbQ0mbx31sgJeQes4 9PqZ6RpaHB58eF/2qkUpbtGLNxCfqNyVT3yHRuK6b8FTOB7kZbEcuJ/oGgfx0iHpm26q 4i+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=5ZSzDmZf9Lp/Z5C3yKlFbAaN/ZWlBsBW09PXv4v1as4=; b=H0VD3KSDFgQzT4Otm+o9+szqC+J8iyWmze0ZyrMlT3tfw7xjbXXyrPfT89XjT/eixE MUjd7UVKBA39Nf2dGuo80pDEWtbcer3kDGXI7RDhRxwITfqz46fENyMHRyESaan6yqbV BP2C6Q0Vz6Kh2cDptsjNH0ll4jvXOLMPTCTXF9sC7jLaIK7SlBS4PNxJnvmXzeOkB8A4 1jfO/13ct9UTnWn28m2S7Mp0/jOM/tvXT6XfTHVC9ThIaB6lFXKUMahY7J1iA5mHpMxt Rd9zswvryogWRhLiFx8XlnkzfsH3hQvK5zaVWUrvR17sK7lxF4sQS2LtO9stSPej7CMD UYqw== X-Gm-Message-State: AOAM531j6laR4vTfe2dPvudsyw5GROAcR5qToXrV558eu/eZieRfcbWV 6fui0529WeS5TNv5/nG5UgOG+LHJaHkL X-Received: from joshdon.svl.corp.google.com ([2620:15c:2cd:202:23c6:59ba:fc84:7672]) (user=joshdon job=sendgmr) by 2002:a25:f80a:: with SMTP id u10mr22267696ybd.391.1629421476693; Thu, 19 Aug 2021 18:04:36 -0700 (PDT) Date: Thu, 19 Aug 2021 18:04:03 -0700 In-Reply-To: <20210820010403.946838-1-joshdon@google.com> Message-Id: <20210820010403.946838-5-joshdon@google.com> Mime-Version: 1.0 References: <20210820010403.946838-1-joshdon@google.com> X-Mailer: git-send-email 2.33.0.rc2.250.ged5fa647cd-goog Subject: [PATCH v3 4/4] sched: adjust sleeper credit for SCHED_IDLE entities From: Josh Don To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot Cc: Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Daniel Bristot de Oliveira , Paul Turner , Oleg Rombakh , Viresh Kumar , Steve Sistare , Tejun Heo , Rik van Riel , linux-kernel@vger.kernel.org, Josh Don Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Give reduced sleeper credit to SCHED_IDLE entities. As a result, woken SCHED_IDLE entities will take longer to preempt normal entities. The benefit of this change is to make it less likely that a newly woken SCHED_IDLE entity will preempt a short-running normal entity before it blocks. We still give a small sleeper credit to SCHED_IDLE entities, so that idle<->idle competition retains some fairness. Example: With HZ=1000, spawned four threads affined to one cpu, one of which was set to SCHED_IDLE. Without this patch, wakeup latency for the SCHED_IDLE thread was ~1-2ms, with the patch the wakeup latency was ~5ms. Signed-off-by: Josh Don --- kernel/sched/fair.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 31f40aa005b9..aa9c046d2aab 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4230,7 +4230,12 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) /* sleeps up to a single latency don't count. */ if (!initial) { - unsigned long thresh = sysctl_sched_latency; + unsigned long thresh; + + if (se_is_idle(se)) + thresh = sysctl_sched_min_granularity; + else + thresh = sysctl_sched_latency; /* * Halve their sleep time's effect, to allow -- 2.33.0.rc2.250.ged5fa647cd-goog