From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751690AbcGNPAZ (ORCPT ); Thu, 14 Jul 2016 11:00:25 -0400 Received: from smtprelay0082.hostedemail.com ([216.40.44.82]:59070 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751175AbcGNPAX (ORCPT ); Thu, 14 Jul 2016 11:00:23 -0400 X-Session-Marker: 726F737465647440676F6F646D69732E6F7267 X-Spam-Summary: 50,0,0,,d41d8cd98f00b204,rostedt@goodmis.org,:::::::::::,RULES_HIT:2:41:69:355:379:541:960:967:969:973:988:989:1260:1263:1277:1311:1313:1314:1345:1437:1515:1516:1518:1535:1593:1594:1606:1730:1747:1777:1792:2194:2199:2393:2525:2566:2682:2685:2687:2859:2890:2933:2937:2939:2942:2945:2947:2951:2954:3022:3138:3139:3140:3141:3142:3355:3770:3834:3865:3867:3871:3873:3934:3936:3938:3941:3944:3947:3950:3953:3956:3959:4042:4117:4250:4321:4560:4605:5007:6119:6261:6684:7266:7875:7903:7974:8509:8599:8660:8985:9025:9072:9388:9592:10004:10049:10848:11026:11232:11233:11473:11657:11658:11914:12043:12296:12438:12517:12519:12555:12663:12679:12683:13019:13148:13230:13439:13868:14394:14659:21080:21365:30001:30054,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:none,Custom_rules:0:0:0,LFtime:5,LUA_SUMMARY:none X-HE-Tag: pets46_3d29d31057842 X-Filterd-Recvd-Size: 6020 Date: Thu, 14 Jul 2016 11:00:19 -0400 From: Steven Rostedt To: LKML , linux-rt-users Cc: Thomas Gleixner , Carsten Emde , John Kacur , Sebastian Andrzej Siewior Subject: [ANNOUNCE] 3.2.81-rt117 Message-ID: <20160714110019.0dd2ca3d@gandalf.local.home> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dear RT Folks, I'm pleased to announce the 3.2.81-rt117 stable release. You can get this release via the git tree at: git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git branch: v3.2-rt Head SHA1: fe7588485c196d9dcfb35019c846c7f9cdde64fa Or to build 3.2.81-rt117 directly, the following patches should be applied: http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.xz http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.2.81.xz http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.81-rt117.patch.xz You can also build from 3.2.81-rt116 by applying the incremental patch: http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/incr/patch-3.2.81-rt116-rt117.patch.xz Enjoy, -- Steve Changes from v3.2.81-rt116: --- Corey Minyard (1): x86: Fix an RT MCE crash Sebastian Andrzej Siewior (1): trace: correct off by one while recording the trace-event Steven Rostedt (Red Hat) (2): Revert: KVM: lapic: mark LAPIC timer handler as irqsafe Linux 3.2.81-rt117 ---- arch/x86/kernel/cpu/mcheck/mce.c | 3 ++- arch/x86/kvm/lapic.c | 42 +++------------------------------------- include/trace/ftrace.h | 3 +++ localversion-rt | 2 +- 4 files changed, 9 insertions(+), 41 deletions(-) --------------------------- diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index b08a373f66fb..fc02fe279ddc 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c @@ -1206,7 +1206,8 @@ static int mce_notify_work_init(void) static void mce_notify_work(void) { - wake_up_process(mce_notify_helper); + if (mce_notify_helper) + wake_up_process(mce_notify_helper); } #else static void mce_notify_work(void) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 7198be07b406..055cc49ffb10 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -679,38 +679,8 @@ static void update_divide_count(struct kvm_lapic *apic) apic->divide_count); } - -static enum hrtimer_restart apic_timer_fn(struct hrtimer *data); - -static void apic_timer_expired(struct hrtimer *data) -{ - int ret, i = 0; - enum hrtimer_restart r; - struct kvm_timer *ktimer = container_of(data, struct kvm_timer, timer); - - r = apic_timer_fn(data); - - if (r == HRTIMER_RESTART) { - do { - ret = hrtimer_start_expires(data, HRTIMER_MODE_ABS); - if (ret == -ETIME) - hrtimer_add_expires_ns(&ktimer->timer, - ktimer->period); - i++; - } while (ret == -ETIME && i < 10); - - if (ret == -ETIME) { - printk_once(KERN_ERR "%s: failed to reprogram timer\n", - __func__); - WARN_ON_ONCE(1); - } - } -} - - static void start_apic_timer(struct kvm_lapic *apic) { - int ret; ktime_t now; atomic_set(&apic->lapic_timer.pending, 0); @@ -740,11 +710,9 @@ static void start_apic_timer(struct kvm_lapic *apic) } } - ret = hrtimer_start(&apic->lapic_timer.timer, + hrtimer_start(&apic->lapic_timer.timer, ktime_add_ns(now, apic->lapic_timer.period), HRTIMER_MODE_ABS); - if (ret == -ETIME) - apic_timer_expired(&apic->lapic_timer.timer); apic_debug("%s: bus cycle is %" PRId64 "ns, now 0x%016" PRIx64 ", " @@ -774,10 +742,8 @@ static void start_apic_timer(struct kvm_lapic *apic) ns = (tscdeadline - guest_tsc) * 1000000ULL; do_div(ns, this_tsc_khz); } - ret = hrtimer_start(&apic->lapic_timer.timer, + hrtimer_start(&apic->lapic_timer.timer, ktime_add_ns(now, ns), HRTIMER_MODE_ABS); - if (ret == -ETIME) - apic_timer_expired(&apic->lapic_timer.timer); local_irq_restore(flags); } @@ -1207,7 +1173,6 @@ int kvm_create_lapic(struct kvm_vcpu *vcpu) hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); apic->lapic_timer.timer.function = kvm_timer_fn; - apic->lapic_timer.timer.irqsafe = 1; apic->lapic_timer.t_ops = &lapic_timer_ops; apic->lapic_timer.kvm = vcpu->kvm; apic->lapic_timer.vcpu = vcpu; @@ -1305,8 +1270,7 @@ void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu) timer = &apic->lapic_timer.timer; if (hrtimer_cancel(timer)) - if (hrtimer_start_expires(timer, HRTIMER_MODE_ABS) == -ETIME) - apic_timer_expired(timer); + hrtimer_start_expires(timer, HRTIMER_MODE_ABS); } void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu) diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 763bf05ccb27..73aab555b42d 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h @@ -530,6 +530,9 @@ ftrace_raw_event_##call(void *__data, proto) \ \ local_save_flags(irq_flags); \ pc = preempt_count(); \ + /* Account for tracepoint preempt disable */ \ + if (IS_ENABLED(CONFIG_PREEMPT)) \ + pc--; \ \ __data_size = ftrace_get_offsets_##call(&__data_offsets, args); \ \ diff --git a/localversion-rt b/localversion-rt index 34eca4e89203..9788245dd428 100644 --- a/localversion-rt +++ b/localversion-rt @@ -1 +1 @@ --rt116 +-rt117