From f043b019bcc49149e17a9468b0b5c2b1eca363c6 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sun, 12 Feb 2017 14:34:56 -0800 Subject: [PATCH] remove tick-nohz-fix-possible-missing-clock-reprog-after-tick-soft-restart.patch --- queue-4.4/series | 1 - ...clock-reprog-after-tick-soft-restart.patch | 56 ------------------- queue-4.9/series | 1 - ...clock-reprog-after-tick-soft-restart.patch | 56 ------------------- 4 files changed, 114 deletions(-) delete mode 100644 queue-4.4/tick-nohz-fix-possible-missing-clock-reprog-after-tick-soft-restart.patch delete mode 100644 queue-4.9/tick-nohz-fix-possible-missing-clock-reprog-after-tick-soft-restart.patch diff --git a/queue-4.4/series b/queue-4.4/series index d27d1f76679..ec88aacca9b 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -14,7 +14,6 @@ netvsc-set-maximum-gso-size-in-the-right-place.patch scsi-zfcp-fix-use-after-free-by-not-tracing-wka-port-open-close-on-failed-send.patch scsi-aacraid-fix-intx-msi-x-issue-with-older-controllers.patch scsi-mpt3sas-disable-aspm-for-mpi2-controllers.patch -tick-nohz-fix-possible-missing-clock-reprog-after-tick-soft-restart.patch xen-netfront-delete-rx_refill_timer-in-xennet_disconnect_backend.patch alsa-seq-fix-race-at-creating-a-queue.patch alsa-seq-don-t-handle-loop-timeout-at-snd_seq_pool_done.patch diff --git a/queue-4.4/tick-nohz-fix-possible-missing-clock-reprog-after-tick-soft-restart.patch b/queue-4.4/tick-nohz-fix-possible-missing-clock-reprog-after-tick-soft-restart.patch deleted file mode 100644 index 7b2ec5c2ed9..00000000000 --- a/queue-4.4/tick-nohz-fix-possible-missing-clock-reprog-after-tick-soft-restart.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 7bdb59f1ad474bd7161adc8f923cdef10f2638d1 Mon Sep 17 00:00:00 2001 -From: Frederic Weisbecker -Date: Tue, 7 Feb 2017 17:44:54 +0100 -Subject: tick/nohz: Fix possible missing clock reprog after tick soft restart - -From: Frederic Weisbecker - -commit 7bdb59f1ad474bd7161adc8f923cdef10f2638d1 upstream. - -ts->next_tick keeps track of the next tick deadline in order to optimize -clock programmation on irq exit and avoid redundant clock device writes. - -Now if ts->next_tick missed an update, we may spuriously miss a clock -reprog later as the nohz code is fooled by an obsolete next_tick value. - -This is what happens here on a specific path: when we observe an -expired timer from the nohz update code on irq exit, we perform a soft -tick restart which simply fires the closest possible tick without -actually exiting the nohz mode and restoring a periodic state. But we -forget to update ts->next_tick accordingly. - -As a result, after the next tick resulting from such soft tick restart, -the nohz code sees a stale value on ts->next_tick which doesn't match -the clock deadline that just expired. If that obsolete ts->next_tick -value happens to collide with the actual next tick deadline to be -scheduled, we may spuriously bypass the clock reprogramming. In the -worst case, the tick may never fire again. - -Fix this with a ts->next_tick reset on soft tick restart. - -Signed-off-by: Frederic Weisbecker -Reviewed: Wanpeng Li -Acked-by: Rik van Riel -Cc: Peter Zijlstra -Link: http://lkml.kernel.org/r/1486485894-29173-1-git-send-email-fweisbec@gmail.com -Signed-off-by: Thomas Gleixner -Signed-off-by: Greg Kroah-Hartman - ---- - kernel/time/tick-sched.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/kernel/time/tick-sched.c -+++ b/kernel/time/tick-sched.c -@@ -613,6 +613,11 @@ static ktime_t tick_nohz_stop_sched_tick - if (delta == 0) { - /* Tick is stopped, but required now. Enforce it */ - tick_nohz_restart(ts, now); -+ /* -+ * Make sure next tick stop doesn't get fooled by past -+ * clock deadline -+ */ -+ ts->next_tick = 0; - goto out; - } - } diff --git a/queue-4.9/series b/queue-4.9/series index cc0c8ccd9e2..37cc9689cbd 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -42,7 +42,6 @@ scsi-aacraid-fix-intx-msi-x-issue-with-older-controllers.patch scsi-mpt3sas-disable-aspm-for-mpi2-controllers.patch scsi-qla2xxx-avoid-that-issuing-a-lip-triggers-a-kernel-crash.patch btrfs-fix-btrfs_compat_ioctl-failures-on-non-compat-ioctls.patch -tick-nohz-fix-possible-missing-clock-reprog-after-tick-soft-restart.patch powerpc-mm-radix-update-erat-flushes-when-invalidating-tlb.patch powerpc-powernv-fix-cpu-hotplug-to-handle-waking-on-hvi.patch xen-netfront-delete-rx_refill_timer-in-xennet_disconnect_backend.patch diff --git a/queue-4.9/tick-nohz-fix-possible-missing-clock-reprog-after-tick-soft-restart.patch b/queue-4.9/tick-nohz-fix-possible-missing-clock-reprog-after-tick-soft-restart.patch deleted file mode 100644 index 0e89b4ae148..00000000000 --- a/queue-4.9/tick-nohz-fix-possible-missing-clock-reprog-after-tick-soft-restart.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 7bdb59f1ad474bd7161adc8f923cdef10f2638d1 Mon Sep 17 00:00:00 2001 -From: Frederic Weisbecker -Date: Tue, 7 Feb 2017 17:44:54 +0100 -Subject: tick/nohz: Fix possible missing clock reprog after tick soft restart - -From: Frederic Weisbecker - -commit 7bdb59f1ad474bd7161adc8f923cdef10f2638d1 upstream. - -ts->next_tick keeps track of the next tick deadline in order to optimize -clock programmation on irq exit and avoid redundant clock device writes. - -Now if ts->next_tick missed an update, we may spuriously miss a clock -reprog later as the nohz code is fooled by an obsolete next_tick value. - -This is what happens here on a specific path: when we observe an -expired timer from the nohz update code on irq exit, we perform a soft -tick restart which simply fires the closest possible tick without -actually exiting the nohz mode and restoring a periodic state. But we -forget to update ts->next_tick accordingly. - -As a result, after the next tick resulting from such soft tick restart, -the nohz code sees a stale value on ts->next_tick which doesn't match -the clock deadline that just expired. If that obsolete ts->next_tick -value happens to collide with the actual next tick deadline to be -scheduled, we may spuriously bypass the clock reprogramming. In the -worst case, the tick may never fire again. - -Fix this with a ts->next_tick reset on soft tick restart. - -Signed-off-by: Frederic Weisbecker -Reviewed: Wanpeng Li -Acked-by: Rik van Riel -Cc: Peter Zijlstra -Link: http://lkml.kernel.org/r/1486485894-29173-1-git-send-email-fweisbec@gmail.com -Signed-off-by: Thomas Gleixner -Signed-off-by: Greg Kroah-Hartman - ---- - kernel/time/tick-sched.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/kernel/time/tick-sched.c -+++ b/kernel/time/tick-sched.c -@@ -730,6 +730,11 @@ static ktime_t tick_nohz_stop_sched_tick - */ - if (delta == 0) { - tick_nohz_restart(ts, now); -+ /* -+ * Make sure next tick stop doesn't get fooled by past -+ * clock deadline -+ */ -+ ts->next_tick = 0; - goto out; - } - } -- 2.47.3