3cd12006bb
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
64 lines
2.4 KiB
Diff
64 lines
2.4 KiB
Diff
From b95a4456ba09301a5b42a6da77ee1f2c85342b60 Mon Sep 17 00:00:00 2001
|
|
Message-Id: <b95a4456ba09301a5b42a6da77ee1f2c85342b60.1507237259.git.Jim.Somerville@windriver.com>
|
|
In-Reply-To: <2a9fb6a58e40e8604d97223603111e869bb774b1.1507237258.git.Jim.Somerville@windriver.com>
|
|
References: <2a9fb6a58e40e8604d97223603111e869bb774b1.1507237258.git.Jim.Somerville@windriver.com>
|
|
From: Alex Shi <alex.shi@linaro.org>
|
|
Date: Thu, 12 Jan 2017 21:27:03 +0800
|
|
Subject: [PATCH 21/24] CPU / PM: expose pm_qos_resume_latency for CPUs
|
|
|
|
[ commit 37efa4b41ffb31dcdfc3beb97d47992bb2a083e5 from linux-stable ]
|
|
|
|
The cpu-dma PM QoS constraint impacts all the cpus in the system. There is no way
|
|
to let the user to choose a PM QoS constraint per cpu.
|
|
|
|
The following patch exposes to the userspace a per cpu based sysfs file
|
|
in order to let the userspace to change the value of the PM QoS latency
|
|
constraint.
|
|
|
|
This change is inoperative in its form and the cpuidle governors have to
|
|
take into account the per cpu latency constraint in addition to the
|
|
global cpu-dma latency constraint in order to operate properly.
|
|
|
|
BTW
|
|
The pm_qos_resume_latency usage defined in
|
|
Documentation/ABI/testing/sysfs-devices-power
|
|
The /sys/devices/.../power/pm_qos_resume_latency_us attribute
|
|
contains the PM QoS resume latency limit for the given device,
|
|
which is the maximum allowed time it can take to resume the
|
|
device, after it has been suspended at run time, from a resume
|
|
request to the moment the device will be ready to process I/O,
|
|
in microseconds. If it is equal to 0, however, this means that
|
|
the PM QoS resume latency may be arbitrary.
|
|
|
|
Signed-off-by: Alex Shi <alex.shi@linaro.org>
|
|
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
|
Signed-off-by: Alex Kozyrev <alex.kozyrev@windriver.com>
|
|
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
|
|
---
|
|
drivers/base/cpu.c | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
|
|
index 0ff0eff..e5a5de3 100644
|
|
--- a/drivers/base/cpu.c
|
|
+++ b/drivers/base/cpu.c
|
|
@@ -15,6 +15,7 @@
|
|
#include <linux/percpu.h>
|
|
#include <linux/acpi.h>
|
|
#include <linux/tick.h>
|
|
+#include <linux/pm_qos.h>
|
|
|
|
#include "base.h"
|
|
|
|
@@ -318,6 +319,7 @@ int register_cpu(struct cpu *cpu, int num)
|
|
per_cpu(cpu_sys_devices, num) = &cpu->dev;
|
|
if (!error)
|
|
register_cpu_under_node(num, cpu_to_node(num));
|
|
+ dev_pm_qos_expose_latency_limit(&cpu->dev, 0);
|
|
|
|
#ifdef CONFIG_KEXEC
|
|
if (!error)
|
|
--
|
|
1.8.3.1
|
|
|