From patchwork Wed Feb 21 15:29:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Lezcano X-Patchwork-Id: 129082 Delivered-To: patch@linaro.org Received: by 10.46.124.24 with SMTP id x24csp750304ljc; Wed, 21 Feb 2018 07:29:45 -0800 (PST) X-Google-Smtp-Source: AH8x226jl1BfZX7n3/ouM5EWpLcD5gG/FDzdMdCqd60vj2Xrfe4s8TkTmKon8w5lBWGGCRZqUus6 X-Received: by 2002:a17:902:9009:: with SMTP id a9-v6mr2985250plp.272.1519226985135; Wed, 21 Feb 2018 07:29:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519226985; cv=none; d=google.com; s=arc-20160816; b=KWeRhuwwduNAfqefWX4grX7fu1rLZPVyPAhAUriE9pjzQS9Tqe5DhA0o9FnPMBsG+p GYGjCw/4MR+c5HyxbCHB1lglmPoJNxqGyxbcQnR1kKgdo1mWl9BZ3lHgVEM9v1+IAVXo afsrf10TTmlhck8IFT6fs7tokulPeIaZarzya73W0gNAOQ+VzspKmyS6MDEnyY8QuloF 8mm2HVcJO3MozLXFs6D6XL5ROfNoWPbHB/YzkbQqMd5zcdET32etUSU347eC6jaMxGPl FGl+fIr1jS4IPce/9s082IRiq9Z+K2wEEn1rtYkik/LqlJLkr5Wij2nGOr4yXpkhm1uI uk8Q== 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:mime-version :message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=rY1B5rfTjTT2gR4MuTHXU7W+mii3w4Lf9cNlbA9+5E4=; b=kKNYjWcAjw5GJQW0VSev5sqLy8voJmZ1MRyiZnbzgY7A/666LnJrO6/1z/VGuLACaS De8gx0R+Orh0IerSgv/EXhfbGyHAx13qltYL9KFwde1oTxVqdYnAgssWxjuwBPumnovm vyDyzIGqLO6oFaaIwvPKWf5pzBzviAJXBccHC4Di+L58GFFePK5dkgzTWciDZwHtswuG 9D4SZzgM2M7Q9HlzgOxKt3CNo8CQbUMszRF2/4sYlaBUAnG3WUIr+k4f/qAaPg80JwoP eHzsgmZJoA99yPkQoXnoO9E+b57BXWiigZ2FRIQJ6S/CjIQwZDOHkA1V3raLSJkBSu6Z s9Dg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QWGgBu23; 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=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 m7-v6si4139694pln.711.2018.02.21.07.29.44; Wed, 21 Feb 2018 07:29:45 -0800 (PST) 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; dkim=pass header.i=@linaro.org header.s=google header.b=QWGgBu23; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S938274AbeBUP3l (ORCPT + 28 others); Wed, 21 Feb 2018 10:29:41 -0500 Received: from mail-wr0-f193.google.com ([209.85.128.193]:46654 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935044AbeBUP3j (ORCPT ); Wed, 21 Feb 2018 10:29:39 -0500 Received: by mail-wr0-f193.google.com with SMTP id 34so5591658wre.13 for ; Wed, 21 Feb 2018 07:29:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=rY1B5rfTjTT2gR4MuTHXU7W+mii3w4Lf9cNlbA9+5E4=; b=QWGgBu23510nWZu4xy0HpVbqJmpJIzEhzxyF1Rm6f0Uh1IBQidsvyZQnGh2fP1EZJ1 v5wsSEdLI2eoSbEoclkRNOMq6TOlcCu6VzZVOKwG/2GuKzYyz555fEqbwRFL4A4crFnR MiZeCq8P77yo6ge7Pmip1QEMR2tdTPpIMDOLE= 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:mime-version :content-transfer-encoding; bh=rY1B5rfTjTT2gR4MuTHXU7W+mii3w4Lf9cNlbA9+5E4=; b=oGASMNesWWa9aoxgtUmMemL4HyaOHpfz4PQZlJNO9CO9mg+yIyrostqsTi0Ku6qM2s +xtkVq/mXyrYNl1s6B7vMz8CShzMuTIDvnPGKVzK3ASQi0pQD0EOLDI5BXdZqX+QPFDC j7W+WRW0YpVfzJBv80i9lsS95S3PEJmgKzwFnpfAXihqfMuUwKEHi1L/BfTZuT51ThZd qVMJgvRUnNsUNBFFJGiqBkS/OkR2eADRe6eYJY1dwWNAAovLMWs65N90/VDCzAhiz60u 1Ava88pJW/LnaNlszs0xEZrVzYqTC8rlhEJM1SNFVYqmUsd5IgFzt1zcaljpFm7BApp3 t+Ig== X-Gm-Message-State: APf1xPCNhGaUpcDvZAjHcyIXroV22XKX3nE1ohuqO1QTOeqsGfwx46EL VUg9X2SG+z8VvMZqvkG9TO3kLA== X-Received: by 10.28.6.147 with SMTP id 141mr2341313wmg.8.1519226978186; Wed, 21 Feb 2018 07:29:38 -0800 (PST) Received: from localhost.localdomain ([2a01:e35:879a:6cd0:c4f2:763f:443f:f48]) by smtp.gmail.com with ESMTPSA id 32sm26552736wrm.14.2018.02.21.07.29.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 21 Feb 2018 07:29:37 -0800 (PST) From: Daniel Lezcano To: edubezval@gmail.com Cc: kevin.wangtao@linaro.org, leo.yan@linaro.org, vincent.guittot@linaro.org, amit.kachhap@gmail.com, linux-kernel@vger.kernel.org, javi.merino@kernel.org, rui.zhang@intel.com, daniel.thompson@linaro.org, linux-pm@vger.kernel.org Subject: [PATCH V2 0/7] CPU cooling device new strategies Date: Wed, 21 Feb 2018 16:29:21 +0100 Message-Id: <1519226968-19821-1-git-send-email-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Changelog: V2: - Dropped the cpu combo cooling device - Added the acked-by tags - Replaced task array by a percpu structure - Fixed the copyright dates - Fixed the extra lines - Fixed the compilation macros to be reused - Fixed the list node removal - Massaged a couple of function names The following series provides a new way to cool down a SoC by reducing the dissipated power on the CPUs. Based on the initial work from Kevin Wangtao, the series implements a CPU cooling device based on idle injection, relying on the cpuidle framework. The patchset is designed to have the current DT binding for the cpufreq cooling device to be compatible with the new cooling devices. Different cpu cooling devices can not co-exist on the system, the cpu cooling device is enabled or not, and one cooling strategy is selected (cpufreq or cpuidle). It is not possible to have all of them available at the same time. However, the goal is to enable them all and be able to switch from one to another at runtime but that needs a rework of the thermal framework which is orthogonal to the feature we are providing. This series is divided into two parts. The first part just provides trivial changes for the copyright and removes an unused field in the cpu freq cooling device structure. The second part provides the idle injection cooling device, allowing a SoC without a cpufreq driver to use this cooling device as an alternative. The preliminary benchmarks show the following changes: On the hikey6220, dhrystone shows a throughtput increase of 40% for an increase of the latency of 16% while sysbench shows a latency increase of 5%. Initially, the first version provided also the cpuidle + cpufreq combo cooling device but regarding the latest comments, there is a misfit with how the cpufreq cooling device and suspend/resume/cpu hotplug/module loading|unloading behave together while the combo cooling device was designed assuming the cpufreq cooling device was always there. This dynamic is investigated and the combo cooling device will be posted separetely after this series gets merged. Daniel Lezcano (7): thermal/drivers/cpu_cooling: Fixup the header and copyright thermal/drivers/cpu_cooling: Add Software Package Data Exchange (SPDX) thermal/drivers/cpu_cooling: Remove pointless field thermal/drivers/Kconfig: Convert the CPU cooling device to a choice thermal/drivers/cpu_cooling: Add idle cooling device documentation thermal/drivers/cpu_cooling: Introduce the cpu idle cooling driver cpuidle/drivers/cpuidle-arm: Register the cooling device Documentation/thermal/cpu-idle-cooling.txt | 165 ++++++++++ drivers/cpuidle/cpuidle-arm.c | 5 + drivers/thermal/Kconfig | 30 +- drivers/thermal/cpu_cooling.c | 480 +++++++++++++++++++++++++++-- include/linux/cpu_cooling.h | 15 +- 5 files changed, 668 insertions(+), 27 deletions(-) create mode 100644 Documentation/thermal/cpu-idle-cooling.txt -- 2.7.4