From patchwork Mon Sep 9 14:50:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Lezcano X-Patchwork-Id: 173381 Delivered-To: patch@linaro.org Received: by 2002:a05:6e02:ce:0:0:0:0 with SMTP id r14csp4464243ilq; Mon, 9 Sep 2019 07:50:42 -0700 (PDT) X-Google-Smtp-Source: APXvYqxm/VP3eI/rgnm+YgisiVQoT775kcWq8NYkecfOFlP50fQcyOJEezlz9cabdHzGTA4HNziM X-Received: by 2002:a17:906:a416:: with SMTP id l22mr19290078ejz.302.1568040642393; Mon, 09 Sep 2019 07:50:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568040642; cv=none; d=google.com; s=arc-20160816; b=k+ouefTYUM6FZEb4NPmDyZsfLbiJYWCx96/1ZsBhpGNx3KVFNQSKqX6kOewoNx1uGq pI9DCLZHCOApesgv9RlJqUZi2ZNOFLh4SIuXEt+gu3Wl91oP+gP8Jgb/aNoYVKx+a5wB P42zLS/m3H4AAu03Xftu5s4dqhHP9/hPjQj/PLfT1KuQT1R0neecyZ3OVku9thMKP6Nf E+APewPXmRA15+lO2gNtkKPTo3UXxjvMNIteKRiVxpC439Gfvk09lhWzKxFZHjgVKqom aZA7js3jZ+D2zEd6MkJsDmMdCQbX9YDezcaH3SbQ2UuERDHk65kLb08OSw8IJhNtqAcy qO+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=s6wI7i6Gbnav5uwhJVfDbJMtuedUVCsGJCuf8wyB5XU=; b=jiVAgkwT5LBgPlWwvolE6qsnXauJ6kBw0P8x7GHnWpRTRhZkTBqJqw/5fGjz1lS1to o0ddYdede6uogGlulEwhQT3Juiiu3DB6OrWzgIEhu7glxRj6/aCE/j5JbwAo4X7MTIm0 pd62fBwr7YlTgdoBek6LsnkbnFJLfjgia3867qiGbC8aQqTxcI3v3TNTYMCeT6aNMeAJ 3qATD/s4PYSuOtAxeWLD053+KQQ0dzBDgsQruiLuFl1gbtN1ceKRRExRv1gAxJAZr6sB RC6Y8YPZ3yRmlQtJtT0r9/oxIllUgBxO+m2oRd0yXvide+8bLAybtUtm5C4HYlKvw7fg OWWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=RPYUZPTi; spf=pass (google.com: best guess record for domain of linux-pm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q28si8306286eda.322.2019.09.09.07.50.41; Mon, 09 Sep 2019 07:50:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-pm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=RPYUZPTi; spf=pass (google.com: best guess record for domain of linux-pm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732613AbfIIOul (ORCPT + 11 others); Mon, 9 Sep 2019 10:50:41 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:35791 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728040AbfIIOuk (ORCPT ); Mon, 9 Sep 2019 10:50:40 -0400 Received: by mail-wm1-f65.google.com with SMTP id n10so15070975wmj.0 for ; Mon, 09 Sep 2019 07:50:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=s6wI7i6Gbnav5uwhJVfDbJMtuedUVCsGJCuf8wyB5XU=; b=RPYUZPTibr9AanKGPNcwdNX17NsYLWATLuxjMEKtRtT1pWQURXW6f2mgF1TFpItixz M5UWchWOk0NRM/RHgImjKHOJZUK4JLysiH0eFawJBDcI230yHnY1ETiv3v+CCQSl3vvI /6j8U20TpRGiBML/ADdwdphRVFpe+HgLtVBIQ1BjxahIPCqBiPSryOiOTheLxs28aZD2 I68HOko7jM0yTHpCtIreoDuvjioH7CisIifSjkuuOWH64No2MrIhntQh8Bx5pYADiK3x EPAS6P/Tk7500SB1z/pmpa3iwRIAYj4aUyWeTfAW67cTEB178VYyf+jDOpT3v598pYVP 1xqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=s6wI7i6Gbnav5uwhJVfDbJMtuedUVCsGJCuf8wyB5XU=; b=Z/3pfY9lNvErO7HJINJ4ZLwNJUdkDZCR8+0FhpP5dB7W0wUsIitxs/flgiHhqb6XMx zdqfptAoTxRNhWqcRo64u4KRKOqmtXJycXsVddBN51RTEmwQUNu1cGcOCxsu+V11LiXL uGCmeabTOBqT96wCo/AgsdSiJQl5vMJgUjyOWsPVzFv25TqgA1GcSkmB6KJZvi9HxpjO v4ORPfN5ekO7Gw9bzeHXGDl2tQDVRB6ZPrxPJl0Q1TNAxBSabOaRk7lnFCbQAlgg4K16 v8uR0AkFUCI4pCRwJYyTABfrhtoFmJoTYi7yil+iId4V0P2UQ8wiZW5IdYUwizZfltx6 JJUA== X-Gm-Message-State: APjAAAXqyF9Y+e+mXnQ6NUafZO/XzcoHwn1u032S+qgY+Y65SC6dGmld 2e8DyrvWBXJLQz/gUVJm4e0+5g== X-Received: by 2002:a1c:a404:: with SMTP id n4mr18921446wme.41.1568040638602; Mon, 09 Sep 2019 07:50:38 -0700 (PDT) Received: from localhost.localdomain ([2a01:e34:ed2f:f020:a060:80d2:1467:e511]) by smtp.gmail.com with ESMTPSA id v2sm31921147wmf.18.2019.09.09.07.50.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Sep 2019 07:50:38 -0700 (PDT) From: Daniel Lezcano To: rafael@kernel.org Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, "Rafael J. Wysocki" , Zhang Rui , Eduardo Valentin , Ingo Molnar , Peter Zijlstra , Greg Kroah-Hartman , Luc Van Oostenryck , Amit Kucheria , Thomas Gleixner , Josh Poimboeuf , Jiri Kosina , Nicholas Piggin Subject: [PATCH 2/3] cpuidle: play_idle: Specify play_idle with an idle state Date: Mon, 9 Sep 2019 16:50:14 +0200 Message-Id: <20190909145015.26317-2-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190909145015.26317-1-daniel.lezcano@linaro.org> References: <20190909145015.26317-1-daniel.lezcano@linaro.org> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org Currently, the play_idle function does not allow to tell which idle state we want to go. Improve this by passing the idle state as parameter to the function. There is no functional changes, the cpuidle state is the deepest one. Signed-off-by: Daniel Lezcano --- drivers/powercap/idle_inject.c | 3 ++- drivers/thermal/intel/intel_powerclamp.c | 4 +++- include/linux/cpu.h | 2 +- kernel/sched/idle.c | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) -- 2.17.1 diff --git a/drivers/powercap/idle_inject.c b/drivers/powercap/idle_inject.c index cd1270614cc6..9b18667b9f26 100644 --- a/drivers/powercap/idle_inject.c +++ b/drivers/powercap/idle_inject.c @@ -138,7 +138,8 @@ static void idle_inject_fn(unsigned int cpu) */ iit->should_run = 0; - play_idle(READ_ONCE(ii_dev->idle_duration_us)); + play_idle(READ_ONCE(ii_dev->idle_duration_us), + cpuidle_find_deepest_state()); } /** diff --git a/drivers/thermal/intel/intel_powerclamp.c b/drivers/thermal/intel/intel_powerclamp.c index 53216dcbe173..b55786c169ae 100644 --- a/drivers/thermal/intel/intel_powerclamp.c +++ b/drivers/thermal/intel/intel_powerclamp.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -430,7 +431,8 @@ static void clamp_idle_injection_func(struct kthread_work *work) if (should_skip) goto balance; - play_idle(jiffies_to_usecs(w_data->duration_jiffies)); + play_idle(jiffies_to_usecs(w_data->duration_jiffies), + cpuidle_find_deepest_state()); balance: if (clamping && w_data->clamping && cpu_online(w_data->cpu)) diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 88dc0c653925..76e3038b63ce 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h @@ -179,7 +179,7 @@ void arch_cpu_idle_dead(void); int cpu_report_state(int cpu); int cpu_check_up_prepare(int cpu); void cpu_set_state_online(int cpu); -void play_idle(unsigned long duration_us); +void play_idle(unsigned long duration_us, int state); #ifdef CONFIG_HOTPLUG_CPU bool cpu_wait_death(unsigned int cpu, int seconds); diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c index 17da9cb309e1..ead439dab2b5 100644 --- a/kernel/sched/idle.c +++ b/kernel/sched/idle.c @@ -311,7 +311,7 @@ static enum hrtimer_restart idle_inject_timer_fn(struct hrtimer *timer) return HRTIMER_NORESTART; } -void play_idle(unsigned long duration_us) +void play_idle(unsigned long duration_us, int state) { struct idle_timer it; @@ -328,7 +328,7 @@ void play_idle(unsigned long duration_us) rcu_sleep_check(); preempt_disable(); current->flags |= PF_IDLE; - cpuidle_use_state(cpuidle_find_deepest_state()); + cpuidle_use_state(state); it.done = 0; hrtimer_init_on_stack(&it.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);