50a9ff6df4
The kernel is moved ahead to version 3.10.0-693.21.1.el7 To summarize: CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1' This is fixed by load fences and is "baked in" and cannot be turned off. CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2' This is fixed by a combination of retpolines and IBPB, or IBRS+IBPB if on skylake. This requires a microcode change in the processors. This feature, if on, has a significant performance impact. It is assumed on unless turned off via the "nospectre_v2" bootarg. CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3' This is fixed by page table isolation using the Kaiser patches. This feature is assumed on unless turned off via the "nopti" bootarg. As of the commit date, we have changed the installer kickstarts to issue both "nopti nospectre_v2" bootargs to minimize realtime impacts by default. The customer will be able to optionally sacrifice performance for extra security at datafill time. Change-Id: Id7c99923f2ee2ee91f77c7bd9940e684eff8b476 Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
72 lines
2.6 KiB
Diff
72 lines
2.6 KiB
Diff
From c13e423b577f91fc86ab7e2b7ae51082ec52061a Mon Sep 17 00:00:00 2001
|
|
Message-Id: <c13e423b577f91fc86ab7e2b7ae51082ec52061a.1522097754.git.Jim.Somerville@windriver.com>
|
|
In-Reply-To: <f4706beaf86081b0890ea616082913f8f51823ff.1522097754.git.Jim.Somerville@windriver.com>
|
|
References: <f4706beaf86081b0890ea616082913f8f51823ff.1522097754.git.Jim.Somerville@windriver.com>
|
|
From: Alex Shi <alex.shi@linaro.org>
|
|
Date: Thu, 12 Jan 2017 21:27:04 +0800
|
|
Subject: [PATCH 20/27] cpuidle/menu: add per CPU PM QoS resume latency
|
|
consideration
|
|
|
|
[ commit 9908859acaa95640d4a07991a93f7cd5bfc18e02 from linux-stable ]
|
|
|
|
There may be special requirements on CPU response time, like if
|
|
a interrupt is pinned to a CPU, that CPU should not go into excessively deep
|
|
idle states. For this reason, add a mechanism for adding PM QoS resume
|
|
latency constraints for individual CPUs and modify the menu governor to take
|
|
them into account.
|
|
|
|
To that end, extend the device PM QoS pm_qos_resume_latency attribute
|
|
to CPUs, which is possible, because the exit latency for CPUs is
|
|
effectively equivalent to the resume latency for devices.
|
|
|
|
Signed-off-by: Alex Shi <alex.shi@linaro.org>
|
|
Acked-by: Rik van Riel <riel@redhat.com>
|
|
[ rjw : Subject & changelog ]
|
|
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/cpuidle/governors/menu.c | 7 +++++++
|
|
1 file changed, 7 insertions(+)
|
|
|
|
diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c
|
|
index eb9fb0e..fe2dcb8 100644
|
|
--- a/drivers/cpuidle/governors/menu.c
|
|
+++ b/drivers/cpuidle/governors/menu.c
|
|
@@ -19,6 +19,7 @@
|
|
#include <linux/tick.h>
|
|
#include <linux/sched.h>
|
|
#include <linux/math64.h>
|
|
+#include <linux/cpu.h>
|
|
#include <linux/module.h>
|
|
|
|
#define BUCKETS 12
|
|
@@ -259,10 +260,12 @@ again:
|
|
static int menu_select(struct cpuidle_driver *drv, struct cpuidle_device *dev)
|
|
{
|
|
struct menu_device *data = &__get_cpu_var(menu_devices);
|
|
+ struct device *device = get_cpu_device(dev->cpu);
|
|
int latency_req = pm_qos_request(PM_QOS_CPU_DMA_LATENCY);
|
|
int i;
|
|
int multiplier;
|
|
struct timespec t;
|
|
+ int resume_latency = dev_pm_qos_read_value(device);
|
|
|
|
if (data->needs_update) {
|
|
menu_update(drv, dev);
|
|
@@ -271,6 +274,10 @@ static int menu_select(struct cpuidle_driver *drv, struct cpuidle_device *dev)
|
|
|
|
data->exit_us = 0;
|
|
|
|
+ /* resume_latency is 0 means no restriction */
|
|
+ if (resume_latency && resume_latency < latency_req)
|
|
+ latency_req = resume_latency;
|
|
+
|
|
/* Special case when user has set very strict latency requirement */
|
|
if (unlikely(latency_req == 0))
|
|
return 0;
|
|
--
|
|
1.8.3.1
|
|
|