Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp1415548pxu; Fri, 16 Oct 2020 11:19:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwrdE7VKHjZU22q7AhApejuDD3hUm1cPMFTcTr3OPFMUvrBnNqAW2Oov2fVmBORjIIF77fC X-Received: by 2002:a17:906:fa99:: with SMTP id lt25mr4868671ejb.511.1602872395628; Fri, 16 Oct 2020 11:19:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602872395; cv=none; d=google.com; s=arc-20160816; b=g0o83Vdqpyz+E54wDpIzciw/nHvBHeMDCszZwM/PTdlAf16WU1b7R5ccJFWEF5PfG/ Z4qlxXqV6yG8TgmKGdUkoVCPfKt8L4zVjM7ejSg4x6lUx81H56ZSSD55F3keW6pvKBNK 9rSBFSUPyEx9Tnr8PBHC2tChA7wgIaX9tu+teOnLGBlfHQoKulQCVGeFNz48JstbIQD2 kImIiYhnA8QiGdmHTh29FtOs1KO4BGjSwhKrfhSlL4qWztn5y7t0ZdLkc3WxMGHWBbQa IuKUKOPni4nIpxyHrspYuaBq+kaL/HflTult0iTcPjmOb/7No+Fs6Cok0IXpZ4hSqHTW 49Gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:to:cc:from:subject:references:mime-version :message-id:in-reply-to:date:sender:dkim-signature; bh=jSjH1eyM8iVzeEs2L9+1VUmTOGY9+1KpajutAHg/TE8=; b=CfwZ2b2M8vh4wMGvgDUQmGzvI/r5HBnnBUxMryT6rnzSQNdW9qw6I3Y6Bmmo/oAPBJ J4SfCT0viLzU9Mmk65VTS6x0B8I4MjHX143yCShmQBkHlDAplY0R4LcEpS7nSA1Xo0RD BjTUN0YagsAVp5vrDV+QUBFB38v4xltED3eACpPy5LEUfrr6zcGq/ey3WEra87U8Umo6 /sJWxD9Rr2voAI4UNqMCVDi51+DFmanvFwEnYs1pj777gEaIIsqSpnoE2OThFg3aa9I1 AS9xoGjEOwp0+7VSpRQ7IppkLnGnUWHrMXCrhWe0NHg/1omCTFJBjnVD3KD3jsdyK82w Dqtg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=stpM8PVU; 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 n10si2197254eja.436.2020.10.16.11.19.32; Fri, 16 Oct 2020 11:19:55 -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=stpM8PVU; 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 S2391553AbgJPSRc (ORCPT + 99 others); Fri, 16 Oct 2020 14:17:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33276 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391489AbgJPSRc (ORCPT ); Fri, 16 Oct 2020 14:17:32 -0400 Received: from mail-qk1-x74a.google.com (mail-qk1-x74a.google.com [IPv6:2607:f8b0:4864:20::74a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DE6CBC0613D3 for ; Fri, 16 Oct 2020 11:17:31 -0700 (PDT) Received: by mail-qk1-x74a.google.com with SMTP id m126so2058144qkd.13 for ; Fri, 16 Oct 2020 11:17:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:date:in-reply-to:message-id:mime-version:references:subject :from:cc; bh=jSjH1eyM8iVzeEs2L9+1VUmTOGY9+1KpajutAHg/TE8=; b=stpM8PVUNvapHN5s3GE6OEHXwbzMr7MaqXEB3iezjKNeivnwwyNR3KGpmNu6x4y9yU UswZlo7ZUSX34RMC/ZwjPm5rE+hc8UrG5+UDizTp0RdKJClCXsISUAO1ZWr6Z3Pcturf g2f0IVLQ7ftWZn039a+ocgXPaPqzGOuynE7yaH8fxx1W77dGedK9ar/lZj2jMybL3EQK avRl4dUR7bdVCxMwyfRka2vNbRH8dUOULVcA18YIpMqx8hjQ+ygk8+DrPv6oNRDiis2d sKS/ToQvqYgpb+MRvnTt/hib+RFrcWyB1a0BZUN45Qxg8l9OnQeTKrrEE2dl2o0pCpQh L2hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:in-reply-to:message-id:mime-version :references:subject:from:cc; bh=jSjH1eyM8iVzeEs2L9+1VUmTOGY9+1KpajutAHg/TE8=; b=luVsjBqd3GvRQPatGrV9z6WTUmjOm2dIRwHNFQsX1fvzeNb+9NHGA7Cug1ONmFK828 OCRNU9aNdpRXCaiyDtIkrMfO7OoWgJrjXfI5piAf4kz1bpfxv6KPcDhhmB60Ed9R0rtJ wdQPDf0tq0iK4XK9eEB9FTbZd+dfoB5GpxkQfMofS1zlpcwcS/P/p5Mele0Mlv2yOUJD 67APwB36pHpaJWi4d2L5TdORMtO6Zfhl8JvozOgoN1q6HhnzmncSzmpkHtwTKgfUhyjj TSqo73dyvrnhiIVLvnuPrldy72rXddJMcpzb4+DlTotktfcz/BrfnxDDmVkPVGRrAjjK qCHw== X-Gm-Message-State: AOAM533RAXpaegstCv8TaoDR5H3hLMyNdFk6lIO5PHgb1i6bY+0oUEuv FDHgpGtb5bgv8g72oB/rHbzhvG0= Sender: "wvw via sendgmr" X-Received: from wvw-pc.mtv.corp.google.com ([2620:15c:211:1:f693:9fff:fef4:4f9b]) (user=wvw job=sendgmr) by 2002:ad4:45ec:: with SMTP id q12mr5445691qvu.33.1602872250940; Fri, 16 Oct 2020 11:17:30 -0700 (PDT) Date: Fri, 16 Oct 2020 11:17:22 -0700 In-Reply-To: Message-Id: <20201016181722.884812-1-wvw@google.com> Mime-Version: 1.0 References: X-Mailer: git-send-email 2.29.0.rc1.297.gfa9743e501-goog Subject: [PATCH] sched: cpufreq_schedutil: restore cached freq when next_f is not changed From: Wei Wang Cc: wei.vince.wang@gmail.com, viresh.kumar@linaro.org, qperret@google.com, rafael@kernel.org, Wei Wang , "Rafael J. Wysocki" , Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Daniel Bristot de Oliveira , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We have the raw cached freq to reduce the chance in calling cpufreq driver where it could be costly in some arch/SoC. Currently, the raw cached freq will be reset when next_f is changed for correctness. This patch changes it to maintain the cached value instead of dropping it to honor the purpose of the cached value. This is adapted from https://android-review.googlesource.com/1352810/ Signed-off-by: Wei Wang --- kernel/sched/cpufreq_schedutil.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index 5ae7b4e6e8d6..e254745a82cb 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -441,6 +441,7 @@ static void sugov_update_single(struct update_util_data *hook, u64 time, unsigned long util, max; unsigned int next_f; bool busy; + unsigned int cached_freq = sg_policy->cached_raw_freq; sugov_iowait_boost(sg_cpu, time, flags); sg_cpu->last_update = time; @@ -464,8 +465,8 @@ static void sugov_update_single(struct update_util_data *hook, u64 time, if (busy && next_f < sg_policy->next_freq) { next_f = sg_policy->next_freq; - /* Reset cached freq as next_freq has changed */ - sg_policy->cached_raw_freq = 0; + /* Restore cached freq as next_freq has changed */ + sg_policy->cached_raw_freq = cached_freq; } /* -- 2.29.0.rc1.297.gfa9743e501-goog