Linux v3.13-3995-g0dc3fd0

This commit is contained in:
Josh Boyer 2014-01-23 07:35:29 -05:00
parent 93a6365a2c
commit d849e53944
8 changed files with 70 additions and 213 deletions

View File

@ -1,40 +0,0 @@
Bugzilla: 924916
Upstream-status: Queued for 3.14 in kvm tree
From 989c6b34f6a9480e397b170cc62237e89bf4fdb9 Mon Sep 17 00:00:00 2001
From: Marcelo Tosatti <mtosatti@redhat.com>
Date: Thu, 19 Dec 2013 17:28:51 +0000
Subject: KVM: MMU: handle invalid root_hpa at __direct_map
It is possible for __direct_map to be called on invalid root_hpa
(-1), two examples:
1) try_async_pf -> can_do_async_pf
-> vmx_interrupt_allowed -> nested_vmx_vmexit
2) vmx_handle_exit -> vmx_interrupt_allowed -> nested_vmx_vmexit
Then to load_vmcs12_host_state and kvm_mmu_reset_context.
Check for this possibility, let fault exception be regenerated.
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=924916
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 40772ef..31a5702 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -2659,6 +2659,9 @@ static int __direct_map(struct kvm_vcpu *vcpu, gpa_t v, int write,
int emulate = 0;
gfn_t pseudo_gfn;
+ if (!VALID_PAGE(vcpu->arch.mmu.root_hpa))
+ return 0;
+
for_each_shadow_entry(vcpu, (u64)gfn << PAGE_SHIFT, iterator) {
if (iterator.level == level) {
mmu_set_spte(vcpu, iterator.sptep, ACC_ALL,
--
cgit v0.9.2

View File

@ -1,88 +0,0 @@
Bugzilla: 1047892
Upstream-status: Submitted for 3.14
Path: news.gmane.org!not-for-mail
From: Marcelo Tosatti <mtosatti@redhat.com>
Newsgroups: gmane.comp.emulators.kvm.devel
Subject: KVM: VMX: fix use after free of vmx->loaded_vmcs
Date: Fri, 3 Jan 2014 17:00:51 -0200
Lines: 31
Approved: news@gmane.org
Message-ID: <20140103190051.GA16151@amt.cnet>
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Trace: ger.gmane.org 1388775805 10008 80.91.229.3 (3 Jan 2014 19:03:25 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Fri, 3 Jan 2014 19:03:25 +0000 (UTC)
Cc: Jan Kiszka <jan.kiszka@web.de>, Paolo Bonzini <pbonzini@redhat.com>
To: kvm-devel <kvm@vger.kernel.org>
Original-X-From: kvm-owner@vger.kernel.org Fri Jan 03 20:03:30 2014
Return-path: <kvm-owner@vger.kernel.org>
Envelope-to: gcekd-kvm-devel@plane.gmane.org
Original-Received: from vger.kernel.org ([209.132.180.67])
by plane.gmane.org with esmtp (Exim 4.69)
(envelope-from <kvm-owner@vger.kernel.org>)
id 1VzA1p-0000BI-F0
for gcekd-kvm-devel@plane.gmane.org; Fri, 03 Jan 2014 20:03:29 +0100
Original-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1752819AbaACTDZ (ORCPT <rfc822;gcekd-kvm-devel@m.gmane.org>);
Fri, 3 Jan 2014 14:03:25 -0500
Original-Received: from mx1.redhat.com ([209.132.183.28]:26936 "EHLO mx1.redhat.com"
rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
id S1751681AbaACTDY (ORCPT <rfc822;kvm@vger.kernel.org>);
Fri, 3 Jan 2014 14:03:24 -0500
Original-Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])
by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s03J3NIr007205
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
Fri, 3 Jan 2014 14:03:24 -0500
Original-Received: from amt.cnet (vpn1-4-118.gru2.redhat.com [10.97.4.118])
by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s03J3Mxl004396;
Fri, 3 Jan 2014 14:03:23 -0500
Original-Received: from amt.cnet (localhost [127.0.0.1])
by amt.cnet (Postfix) with ESMTP id 98901104ADF;
Fri, 3 Jan 2014 17:00:53 -0200 (BRST)
Original-Received: (from marcelo@localhost)
by amt.cnet (8.14.6/8.14.6/Submit) id s03J0pCL016186;
Fri, 3 Jan 2014 17:00:51 -0200
Content-Disposition: inline
User-Agent: Mutt/1.5.21 (2010-09-15)
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11
Original-Sender: kvm-owner@vger.kernel.org
Precedence: bulk
List-ID: <kvm.vger.kernel.org>
X-Mailing-List: kvm@vger.kernel.org
Xref: news.gmane.org gmane.comp.emulators.kvm.devel:117837
Archived-At: <http://permalink.gmane.org/gmane.comp.emulators.kvm.devel/117837>
After free_loaded_vmcs executes, the "loaded_vmcs" structure
is kfreed, and now vmx->loaded_vmcs points to a kfreed area.
Subsequent free_loaded_vmcs then attempts to manipulate
vmx->loaded_vmcs.
Switch the order to avoid the problem.
https://bugzilla.redhat.com/show_bug.cgi?id=1047892
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index da7837e..2efa33f0 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -7332,8 +7332,8 @@ static void vmx_free_vcpu(struct kvm_vcpu *vcpu)
struct vcpu_vmx *vmx = to_vmx(vcpu);
free_vpid(vmx);
- free_nested(vmx);
free_loaded_vmcs(vmx->loaded_vmcs);
+ free_nested(vmx);
kfree(vmx->guest_msrs);
kvm_vcpu_uninit(vcpu);
kmem_cache_free(kvm_vcpu_cache, vmx);
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View File

@ -43,6 +43,7 @@ CONFIG_HVC_DRIVER=y
CONFIG_HZ=100
CONFIG_KVM=y
CONFIG_KVM_ARM_MAX_VCPUS=8
CONFIG_LOG_BUF_SHIFT=14
CONFIG_NFS_ACL_SUPPORT=y

View File

@ -58,6 +58,7 @@ CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_GNTDEV=y
CONFIG_XEN_GRANT_DEV_ALLOC=m
CONFIG_XEN_WDT=m
# CONFIG_XEN_BALLOON is not set
CONFIG_SERIAL_SAMSUNG=y
CONFIG_SERIAL_SAMSUNG_CONSOLE=y

View File

@ -117,6 +117,7 @@ CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_SYS_HYPERVISOR=y
# CONFIG_XEN_MCE_LOG is not set
# CONFIG_XEN_STUB is not set
# CONFIG_XEN_PVH is not set
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y

View File

@ -61,7 +61,7 @@ Summary: The Linux kernel
# The rc snapshot level
%define rcrev 0
# The git snapshot level
%define gitrev 5
%define gitrev 6
# Set rpm version accordingly
%define rpmversion 3.%{upstream_sublevel}.0
%endif
@ -403,7 +403,7 @@ Group: System Environment/Kernel
License: GPLv2 and Redistributable, no modification permitted
URL: http://www.kernel.org/
Version: %{rpmversion}
Release: %{pkg_release}
Release: %{pkg_release}.1
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
# SET %%nobuildarches (ABOVE) INSTEAD
ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ppc64p7 s390 s390x %{arm} aarch64
@ -632,12 +632,6 @@ Patch25168: rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-notification-fails
#rhbz 1030802
Patch25171: elantech-Properly-differentiate-between-clickpads-an.patch
#rhbz 924916
Patch25179: KVM-MMU-handle-invalid-root_hpa-at-__direct_map.patch
#rhbz 1047892
Patch25180: KVM-VMX-fix-use-after-free-of-vmx-loaded_vmcs.patch
#rhbz 1003167 1046238
Patch25181: 0001-Input-wacom-make-sure-touch_max-is-set-for-touch-dev.patch
Patch25182: 0002-Input-wacom-add-support-for-three-new-Intuos-devices.patch
@ -1304,12 +1298,6 @@ ApplyPatch rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-notification-fails.
#rhbz 1030802
ApplyPatch elantech-Properly-differentiate-between-clickpads-an.patch
#rhbz 924916
ApplyPatch KVM-MMU-handle-invalid-root_hpa-at-__direct_map.patch
#rhbz 1047892
ApplyPatch KVM-VMX-fix-use-after-free-of-vmx-loaded_vmcs.patch
#rhbz 1003167 1046238
ApplyPatch 0001-Input-wacom-make-sure-touch_max-is-set-for-touch-dev.patch
ApplyPatch 0002-Input-wacom-add-support-for-three-new-Intuos-devices.patch
@ -2100,6 +2088,9 @@ fi
# ||----w |
# || ||
%changelog
* Thu Jan 23 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.14.0-0.rc0.git6.1.1
- Linux v3.13-3995-g0dc3fd0
* Thu Jan 23 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.14.0-0.rc0.git5.1
- Linux v3.13-3667-ge1ba845

View File

@ -1,31 +1,31 @@
Delivered-To: jwboyer@gmail.com
Received: by 10.76.27.197 with SMTP id v5csp306204oag;
Wed, 22 Jan 2014 13:13:54 -0800 (PST)
X-Received: by 10.66.4.130 with SMTP id k2mr4030960pak.95.1390425233906;
Wed, 22 Jan 2014 13:13:53 -0800 (PST)
Received: by 10.76.27.197 with SMTP id v5csp2271oag;
Thu, 23 Jan 2014 01:54:21 -0800 (PST)
X-Received: by 10.66.136.131 with SMTP id qa3mr7006698pab.77.1390470860654;
Thu, 23 Jan 2014 01:54:20 -0800 (PST)
Return-Path: <linux-kernel-owner@vger.kernel.org>
Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67])
by mx.google.com with ESMTP id i3si11289288pbe.19.2014.01.22.13.12.44
by mx.google.com with ESMTP id qv10si13378362pbb.142.2014.01.23.01.53.38
for <multiple recipients>;
Wed, 22 Jan 2014 13:13:53 -0800 (PST)
Thu, 23 Jan 2014 01:54:20 -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;
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.mail=linux-kernel-owner@vger.kernel.org
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S1753416AbaAVVIi (ORCPT <rfc822;ksvahn@gmail.com> + 99 others);
Wed, 22 Jan 2014 16:08:38 -0500
Received: from merlin.infradead.org ([205.233.59.134]:42768 "EHLO
id S1751970AbaAWJsq (ORCPT <rfc822;ksvahn@gmail.com> + 99 others);
Thu, 23 Jan 2014 04:48:46 -0500
Received: from merlin.infradead.org ([205.233.59.134]:55711 "EHLO
merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1753275AbaAVVIh (ORCPT
with ESMTP id S1751445AbaAWJso (ORCPT
<rfc822;linux-kernel@vger.kernel.org>);
Wed, 22 Jan 2014 16:08:37 -0500
Received: from dhcp-077-248-225-117.chello.nl ([77.248.225.117] helo=laptop)
Thu, 23 Jan 2014 04:48:44 -0500
Received: from dhcp-077-248-225-117.chello.nl ([77.248.225.117] helo=twins)
by merlin.infradead.org with esmtpsa (Exim 4.80.1 #2 (Red Hat Linux))
id 1W6527-0004v6-BO; Wed, 22 Jan 2014 21:08:24 +0000
Received: by laptop (Postfix, from userid 1000)
id 83FEF1034BE15; Wed, 22 Jan 2014 22:08:14 +0100 (CET)
Date: Wed, 22 Jan 2014 22:08:14 +0100
id 1W6GtY-00025n-Ny; Thu, 23 Jan 2014 09:48:21 +0000
Received: by twins (Postfix, from userid 1000)
id 0B4E580383F6; Thu, 23 Jan 2014 10:48:04 +0100 (CET)
Date: Thu, 23 Jan 2014 10:48:04 +0100
From: Peter Zijlstra <peterz@infradead.org>
To: Markus Trippelsdorf <markus@trippelsdorf.de>
Cc: Sasha Levin <sasha.levin@oracle.com>,
@ -39,10 +39,8 @@ Cc: Sasha Levin <sasha.levin@oracle.com>,
Andy Lutomirski <luto@amacapital.net>,
linux-kernel@vger.kernel.org, dyoung@redhat.com
Subject: Re: [PATCH 13/15] sched: Use a static_key for sched_clock_stable
Message-ID: <20140122210814.GC9481@laptop.programming.kicks-ass.net>
References: <20140122120757.GL31570@twins.programming.kicks-ass.net>
<20140122122609.GA392@x4>
<20140122123022.GN31570@twins.programming.kicks-ass.net>
Message-ID: <20140123094804.GP30183@twins.programming.kicks-ass.net>
References: <20140122123022.GN31570@twins.programming.kicks-ass.net>
<20140122131456.GA389@x4>
<52DFD50E.800@oracle.com>
<20140122183538.GA389@x4>
@ -50,74 +48,67 @@ References: <20140122120757.GL31570@twins.programming.kicks-ass.net>
<20140122190905.GA391@x4>
<20140122191254.GA390@x4>
<20140122201605.GU11314@laptop.programming.kicks-ass.net>
<20140122210814.GC9481@laptop.programming.kicks-ass.net>
<20140122211740.GA391@x4>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20140122201605.GU11314@laptop.programming.kicks-ass.net>
In-Reply-To: <20140122211740.GA391@x4>
User-Agent: Mutt/1.5.21 (2012-12-30)
Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
On Wed, Jan 22, 2014 at 10:17:40PM +0100, Markus Trippelsdorf wrote:
> Yes. Thanks Peter.
>
> I think its the right region to look through. My current suspect is the
> linear continuity fit with the initial 'random' multiplier.
>
> That initial 'random' multiplier can get us quite high, and we'll fit
> the function to match that but continue at a sane rate.
>
> I'll try and prod a little more later this evening as time permits.
Does this cure things?
Ah much simpler patch that should have the same effect:
---
arch/x86/kernel/tsc.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
Subject: sched/x86/tsc: Initialize multiplier to 0
From: Peter Zijlstra <peterz@infradead.org>
Date: Wed, 22 Jan 2014 22:08:14 +0100
Since we keep the clock value linearly continuous on frequency change,
make sure the initial multiplier is 0, such that out initial value is
0. Without this we compute the initial value at whatever the TSC has
managed to reach since power-on.
Fixes: 20d1c86a57762 ("sched/clock, x86: Rewrite cyc2ns() to avoid the need to disable IRQs")
Cc: lenb@kernel.org
Cc: rjw@rjwysocki.net
Cc: Eliezer Tamir <eliezer.tamir@linux.intel.com>
Cc: rui.zhang@intel.com
Cc: jacob.jun.pan@linux.intel.com
Cc: Mike Galbraith <bitbucket@online.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: hpa@zytor.com
Cc: paulmck@linux.vnet.ibm.com
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Sasha Levin <sasha.levin@oracle.com>
Cc: dyoung@redhat.com
Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
---
arch/x86/kernel/tsc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index a3acbac2ee72..bb04148c5fe0 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -237,7 +237,7 @@ static inline unsigned long long cycles_2_ns(unsigned long long cyc)
/* XXX surely we already have this someplace in the kernel?! */
#define DIV_ROUND(n, d) (((n) + ((d) / 2)) / (d))
@@ -180,7 +180,7 @@ static void cyc2ns_write_end(int cpu, st
-static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu)
+static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu, bool origin)
static void cyc2ns_data_init(struct cyc2ns_data *data)
{
unsigned long long tsc_now, ns_now;
struct cyc2ns_data *data;
@@ -252,7 +252,10 @@ static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu)
data = cyc2ns_write_begin(cpu);
rdtscll(tsc_now);
- ns_now = cycles_2_ns(tsc_now);
+ if (origin)
+ ns_now = 0;
+ else
+ ns_now = cycles_2_ns(tsc_now);
/*
* Compute a new multiplier as per the above comment and ensure our
@@ -926,7 +929,7 @@ static int time_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
mark_tsc_unstable("cpufreq changes");
}
- set_cyc2ns_scale(tsc_khz, freq->cpu);
+ set_cyc2ns_scale(tsc_khz, freq->cpu, false);
return 0;
}
@@ -1199,7 +1202,7 @@ void __init tsc_init(void)
*/
for_each_possible_cpu(cpu) {
cyc2ns_init(cpu);
- set_cyc2ns_scale(cpu_khz, cpu);
+ set_cyc2ns_scale(cpu_khz, cpu, true);
}
if (tsc_disabled > 0)
- data->cyc2ns_mul = 1U << CYC2NS_SCALE_FACTOR;
+ data->cyc2ns_mul = 0;
data->cyc2ns_shift = CYC2NS_SCALE_FACTOR;
data->cyc2ns_offset = 0;
data->__count = 0;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org

View File

@ -1,3 +1,3 @@
0ecbaf65c00374eb4a826c2f9f37606f linux-3.13.tar.xz
732d1952898b28d5ccc264cad77b0619 perf-man-3.13.tar.gz
3e2309338c8cd17303d119dcf04d8aa4 patch-3.13-git5.xz
f0c4e7442652945638f67e285b55af67 patch-3.13-git6.xz