Linux v3.13-3995-g0dc3fd0
This commit is contained in:
parent
93a6365a2c
commit
d849e53944
@ -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
|
|
@ -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
|
|
||||||
|
|
@ -43,6 +43,7 @@ CONFIG_HVC_DRIVER=y
|
|||||||
CONFIG_HZ=100
|
CONFIG_HZ=100
|
||||||
|
|
||||||
CONFIG_KVM=y
|
CONFIG_KVM=y
|
||||||
|
CONFIG_KVM_ARM_MAX_VCPUS=8
|
||||||
CONFIG_LOG_BUF_SHIFT=14
|
CONFIG_LOG_BUF_SHIFT=14
|
||||||
|
|
||||||
CONFIG_NFS_ACL_SUPPORT=y
|
CONFIG_NFS_ACL_SUPPORT=y
|
||||||
|
@ -58,6 +58,7 @@ CONFIG_XEN_SYS_HYPERVISOR=y
|
|||||||
CONFIG_XEN_GNTDEV=y
|
CONFIG_XEN_GNTDEV=y
|
||||||
CONFIG_XEN_GRANT_DEV_ALLOC=m
|
CONFIG_XEN_GRANT_DEV_ALLOC=m
|
||||||
CONFIG_XEN_WDT=m
|
CONFIG_XEN_WDT=m
|
||||||
|
# CONFIG_XEN_BALLOON is not set
|
||||||
|
|
||||||
CONFIG_SERIAL_SAMSUNG=y
|
CONFIG_SERIAL_SAMSUNG=y
|
||||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||||
|
@ -117,6 +117,7 @@ CONFIG_XEN_DEV_EVTCHN=m
|
|||||||
CONFIG_XEN_SYS_HYPERVISOR=y
|
CONFIG_XEN_SYS_HYPERVISOR=y
|
||||||
# CONFIG_XEN_MCE_LOG is not set
|
# CONFIG_XEN_MCE_LOG is not set
|
||||||
# CONFIG_XEN_STUB is not set
|
# CONFIG_XEN_STUB is not set
|
||||||
|
# CONFIG_XEN_PVH is not set
|
||||||
|
|
||||||
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
|
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
|
||||||
|
|
||||||
|
19
kernel.spec
19
kernel.spec
@ -61,7 +61,7 @@ Summary: The Linux kernel
|
|||||||
# The rc snapshot level
|
# The rc snapshot level
|
||||||
%define rcrev 0
|
%define rcrev 0
|
||||||
# The git snapshot level
|
# The git snapshot level
|
||||||
%define gitrev 5
|
%define gitrev 6
|
||||||
# Set rpm version accordingly
|
# Set rpm version accordingly
|
||||||
%define rpmversion 3.%{upstream_sublevel}.0
|
%define rpmversion 3.%{upstream_sublevel}.0
|
||||||
%endif
|
%endif
|
||||||
@ -403,7 +403,7 @@ Group: System Environment/Kernel
|
|||||||
License: GPLv2 and Redistributable, no modification permitted
|
License: GPLv2 and Redistributable, no modification permitted
|
||||||
URL: http://www.kernel.org/
|
URL: http://www.kernel.org/
|
||||||
Version: %{rpmversion}
|
Version: %{rpmversion}
|
||||||
Release: %{pkg_release}
|
Release: %{pkg_release}.1
|
||||||
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
|
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
|
||||||
# SET %%nobuildarches (ABOVE) INSTEAD
|
# SET %%nobuildarches (ABOVE) INSTEAD
|
||||||
ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ppc64p7 s390 s390x %{arm} aarch64
|
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
|
#rhbz 1030802
|
||||||
Patch25171: elantech-Properly-differentiate-between-clickpads-an.patch
|
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
|
#rhbz 1003167 1046238
|
||||||
Patch25181: 0001-Input-wacom-make-sure-touch_max-is-set-for-touch-dev.patch
|
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
|
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
|
#rhbz 1030802
|
||||||
ApplyPatch elantech-Properly-differentiate-between-clickpads-an.patch
|
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
|
#rhbz 1003167 1046238
|
||||||
ApplyPatch 0001-Input-wacom-make-sure-touch_max-is-set-for-touch-dev.patch
|
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
|
ApplyPatch 0002-Input-wacom-add-support-for-three-new-Intuos-devices.patch
|
||||||
@ -2100,6 +2088,9 @@ fi
|
|||||||
# ||----w |
|
# ||----w |
|
||||||
# || ||
|
# || ||
|
||||||
%changelog
|
%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
|
* Thu Jan 23 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.14.0-0.rc0.git5.1
|
||||||
- Linux v3.13-3667-ge1ba845
|
- Linux v3.13-3667-ge1ba845
|
||||||
|
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
|
|
||||||
Delivered-To: jwboyer@gmail.com
|
Delivered-To: jwboyer@gmail.com
|
||||||
Received: by 10.76.27.197 with SMTP id v5csp306204oag;
|
Received: by 10.76.27.197 with SMTP id v5csp2271oag;
|
||||||
Wed, 22 Jan 2014 13:13:54 -0800 (PST)
|
Thu, 23 Jan 2014 01:54:21 -0800 (PST)
|
||||||
X-Received: by 10.66.4.130 with SMTP id k2mr4030960pak.95.1390425233906;
|
X-Received: by 10.66.136.131 with SMTP id qa3mr7006698pab.77.1390470860654;
|
||||||
Wed, 22 Jan 2014 13:13:53 -0800 (PST)
|
Thu, 23 Jan 2014 01:54:20 -0800 (PST)
|
||||||
Return-Path: <linux-kernel-owner@vger.kernel.org>
|
Return-Path: <linux-kernel-owner@vger.kernel.org>
|
||||||
Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67])
|
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>;
|
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;
|
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;
|
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
|
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
|
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
||||||
id S1753416AbaAVVIi (ORCPT <rfc822;ksvahn@gmail.com> + 99 others);
|
id S1751970AbaAWJsq (ORCPT <rfc822;ksvahn@gmail.com> + 99 others);
|
||||||
Wed, 22 Jan 2014 16:08:38 -0500
|
Thu, 23 Jan 2014 04:48:46 -0500
|
||||||
Received: from merlin.infradead.org ([205.233.59.134]:42768 "EHLO
|
Received: from merlin.infradead.org ([205.233.59.134]:55711 "EHLO
|
||||||
merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
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>);
|
<rfc822;linux-kernel@vger.kernel.org>);
|
||||||
Wed, 22 Jan 2014 16:08:37 -0500
|
Thu, 23 Jan 2014 04:48:44 -0500
|
||||||
Received: from dhcp-077-248-225-117.chello.nl ([77.248.225.117] helo=laptop)
|
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))
|
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
|
id 1W6GtY-00025n-Ny; Thu, 23 Jan 2014 09:48:21 +0000
|
||||||
Received: by laptop (Postfix, from userid 1000)
|
Received: by twins (Postfix, from userid 1000)
|
||||||
id 83FEF1034BE15; Wed, 22 Jan 2014 22:08:14 +0100 (CET)
|
id 0B4E580383F6; Thu, 23 Jan 2014 10:48:04 +0100 (CET)
|
||||||
Date: Wed, 22 Jan 2014 22:08:14 +0100
|
Date: Thu, 23 Jan 2014 10:48:04 +0100
|
||||||
From: Peter Zijlstra <peterz@infradead.org>
|
From: Peter Zijlstra <peterz@infradead.org>
|
||||||
To: Markus Trippelsdorf <markus@trippelsdorf.de>
|
To: Markus Trippelsdorf <markus@trippelsdorf.de>
|
||||||
Cc: Sasha Levin <sasha.levin@oracle.com>,
|
Cc: Sasha Levin <sasha.levin@oracle.com>,
|
||||||
@ -39,10 +39,8 @@ Cc: Sasha Levin <sasha.levin@oracle.com>,
|
|||||||
Andy Lutomirski <luto@amacapital.net>,
|
Andy Lutomirski <luto@amacapital.net>,
|
||||||
linux-kernel@vger.kernel.org, dyoung@redhat.com
|
linux-kernel@vger.kernel.org, dyoung@redhat.com
|
||||||
Subject: Re: [PATCH 13/15] sched: Use a static_key for sched_clock_stable
|
Subject: Re: [PATCH 13/15] sched: Use a static_key for sched_clock_stable
|
||||||
Message-ID: <20140122210814.GC9481@laptop.programming.kicks-ass.net>
|
Message-ID: <20140123094804.GP30183@twins.programming.kicks-ass.net>
|
||||||
References: <20140122120757.GL31570@twins.programming.kicks-ass.net>
|
References: <20140122123022.GN31570@twins.programming.kicks-ass.net>
|
||||||
<20140122122609.GA392@x4>
|
|
||||||
<20140122123022.GN31570@twins.programming.kicks-ass.net>
|
|
||||||
<20140122131456.GA389@x4>
|
<20140122131456.GA389@x4>
|
||||||
<52DFD50E.800@oracle.com>
|
<52DFD50E.800@oracle.com>
|
||||||
<20140122183538.GA389@x4>
|
<20140122183538.GA389@x4>
|
||||||
@ -50,74 +48,67 @@ References: <20140122120757.GL31570@twins.programming.kicks-ass.net>
|
|||||||
<20140122190905.GA391@x4>
|
<20140122190905.GA391@x4>
|
||||||
<20140122191254.GA390@x4>
|
<20140122191254.GA390@x4>
|
||||||
<20140122201605.GU11314@laptop.programming.kicks-ass.net>
|
<20140122201605.GU11314@laptop.programming.kicks-ass.net>
|
||||||
|
<20140122210814.GC9481@laptop.programming.kicks-ass.net>
|
||||||
|
<20140122211740.GA391@x4>
|
||||||
MIME-Version: 1.0
|
MIME-Version: 1.0
|
||||||
Content-Type: text/plain; charset=us-ascii
|
Content-Type: text/plain; charset=us-ascii
|
||||||
Content-Disposition: inline
|
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)
|
User-Agent: Mutt/1.5.21 (2012-12-30)
|
||||||
Sender: linux-kernel-owner@vger.kernel.org
|
Sender: linux-kernel-owner@vger.kernel.org
|
||||||
Precedence: bulk
|
Precedence: bulk
|
||||||
List-ID: <linux-kernel.vger.kernel.org>
|
List-ID: <linux-kernel.vger.kernel.org>
|
||||||
X-Mailing-List: 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 +++++++----
|
Subject: sched/x86/tsc: Initialize multiplier to 0
|
||||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
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
|
--- a/arch/x86/kernel/tsc.c
|
||||||
+++ b/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)
|
@@ -180,7 +180,7 @@ static void cyc2ns_write_end(int cpu, st
|
||||||
/* XXX surely we already have this someplace in the kernel?! */
|
|
||||||
#define DIV_ROUND(n, d) (((n) + ((d) / 2)) / (d))
|
|
||||||
|
|
||||||
-static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu)
|
static void cyc2ns_data_init(struct cyc2ns_data *data)
|
||||||
+static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu, bool origin)
|
|
||||||
{
|
{
|
||||||
unsigned long long tsc_now, ns_now;
|
- data->cyc2ns_mul = 1U << CYC2NS_SCALE_FACTOR;
|
||||||
struct cyc2ns_data *data;
|
+ data->cyc2ns_mul = 0;
|
||||||
@@ -252,7 +252,10 @@ static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu)
|
data->cyc2ns_shift = CYC2NS_SCALE_FACTOR;
|
||||||
data = cyc2ns_write_begin(cpu);
|
data->cyc2ns_offset = 0;
|
||||||
|
data->__count = 0;
|
||||||
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)
|
|
||||||
--
|
--
|
||||||
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
|
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
|
||||||
the body of a message to majordomo@vger.kernel.org
|
the body of a message to majordomo@vger.kernel.org
|
||||||
|
2
sources
2
sources
@ -1,3 +1,3 @@
|
|||||||
0ecbaf65c00374eb4a826c2f9f37606f linux-3.13.tar.xz
|
0ecbaf65c00374eb4a826c2f9f37606f linux-3.13.tar.xz
|
||||||
732d1952898b28d5ccc264cad77b0619 perf-man-3.13.tar.gz
|
732d1952898b28d5ccc264cad77b0619 perf-man-3.13.tar.gz
|
||||||
3e2309338c8cd17303d119dcf04d8aa4 patch-3.13-git5.xz
|
f0c4e7442652945638f67e285b55af67 patch-3.13-git6.xz
|
||||||
|
Loading…
Reference in New Issue
Block a user