From patchwork Tue Jul 17 21:49:26 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: john stultz X-Patchwork-Id: 10081 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 4442623E3D for ; Tue, 17 Jul 2012 21:49:52 +0000 (UTC) Received: from mail-yx0-f180.google.com (mail-yx0-f180.google.com [209.85.213.180]) by fiordland.canonical.com (Postfix) with ESMTP id 14CBFA181FE for ; Tue, 17 Jul 2012 21:49:51 +0000 (UTC) Received: by mail-yx0-f180.google.com with SMTP id q6so1043846yen.11 for ; Tue, 17 Jul 2012 14:49:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-forwarded-to:x-forwarded-for:delivered-to:received-spf:from:to:cc :subject:date:message-id:x-mailer:in-reply-to:references :x-content-scanned:x-cbid:x-gm-message-state; bh=/eX5DRileI9hsP8u25ffDbBd6fylgSrObw5xkepAKUg=; b=RjKlBzADK90UW5huJ/D/EjmcdXEWul3zSLUKXzTWZ3l3aYaJoMvSJb5DLq0hbqZmLg gog73CgT6149FobQn++dPow6/F3jqtciec8Kr+FptquxfOiLbWzHV7RLsHuLQOJ2weg/ ieSt9Q8kYMz07AjC06XcrlAfXzwhiXmvg1XYe92SK+jyfUE/SanTp2umPpNhZUJExMIN Wkf9rB/fTMLl0k6BveH4YsUtVTpXYXFcdMOVByO5dbYv3Rzy24HQbAYVTkFHsWe1Wwf7 qjwvRDxDmxG7ojEchutpMyEk2EHOpxsX+HLXfQMFB8pNcM0yEsan4/mhPP8JBGCbl53S 4Q2w== Received: by 10.50.87.227 with SMTP id bb3mr161559igb.57.1342561791512; Tue, 17 Jul 2012 14:49:51 -0700 (PDT) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.231.241.2 with SMTP id lc2csp24866ibb; Tue, 17 Jul 2012 14:49:50 -0700 (PDT) Received: by 10.182.116.2 with SMTP id js2mr5759991obb.38.1342561790175; Tue, 17 Jul 2012 14:49:50 -0700 (PDT) Received: from e31.co.us.ibm.com (e31.co.us.ibm.com. [32.97.110.149]) by mx.google.com with ESMTPS id r4si19546411obz.27.2012.07.17.14.49.49 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 17 Jul 2012 14:49:50 -0700 (PDT) Received-SPF: pass (google.com: domain of johnstul@us.ibm.com designates 32.97.110.149 as permitted sender) client-ip=32.97.110.149; Authentication-Results: mx.google.com; spf=pass (google.com: domain of johnstul@us.ibm.com designates 32.97.110.149 as permitted sender) smtp.mail=johnstul@us.ibm.com Received: from /spool/local by e31.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 17 Jul 2012 15:49:49 -0600 Received: from d03dlp02.boulder.ibm.com (9.17.202.178) by e31.co.us.ibm.com (192.168.1.131) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 17 Jul 2012 15:49:44 -0600 Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by d03dlp02.boulder.ibm.com (Postfix) with ESMTP id 077053E40055 for ; Tue, 17 Jul 2012 21:49:43 +0000 (WET) Received: from d03av05.boulder.ibm.com (d03av05.boulder.ibm.com [9.17.195.85]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q6HLnhQY291132 for ; Tue, 17 Jul 2012 15:49:43 -0600 Received: from d03av05.boulder.ibm.com (loopback [127.0.0.1]) by d03av05.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q6HLngiF026758 for ; Tue, 17 Jul 2012 15:49:42 -0600 Received: from kernel.stglabs.ibm.com (kernel.stglabs.ibm.com [9.114.214.19]) by d03av05.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id q6HLnZI4026401; Tue, 17 Jul 2012 15:49:40 -0600 From: John Stultz To: stable@vger.kernel.org Cc: John Stultz , Thomas Gleixner , Prarit Bhargava , Linux Kernel Subject: [PATCH 06/11] 2.6.34.x: timekeeping: Fix leapsecond triggered load spike issue Date: Tue, 17 Jul 2012 17:49:26 -0400 Message-Id: <1342561771-55678-7-git-send-email-johnstul@us.ibm.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1342561771-55678-1-git-send-email-johnstul@us.ibm.com> References: <1342561771-55678-1-git-send-email-johnstul@us.ibm.com> X-Content-Scanned: Fidelis XPS MAILER x-cbid: 12071721-7282-0000-0000-00000B0448B0 X-Gm-Message-State: ALoCoQm2acnuQFu+mqSV/d3ha+PYHXkP1IVrleTUPcvOFHKeDDlNLHii9iw1dp2OR+/gPPxHN4BI This is a backport of 4873fa070ae84a4115f0b3c9dfabc224f1bc7c51 The timekeeping code misses an update of the hrtimer subsystem after a leap second happened. Due to that timers based on CLOCK_REALTIME are either expiring a second early or late depending on whether a leap second has been inserted or deleted until an operation is initiated which causes that update. Unless the update happens by some other means this discrepancy between the timekeeping and the hrtimer data stays forever and timers are expired either early or late. The reported immediate workaround - $ data -s "`date`" - is causing a call to clock_was_set() which updates the hrtimer data structures. See: http://www.sheeri.com/content/mysql-and-leap-second-high-cpu-and-fix Add the missing clock_was_set() call to update_wall_time() in case of a leap second event. The actual update is deferred to softirq context as the necessary smp function call cannot be invoked from hard interrupt context. Signed-off-by: John Stultz Reported-by: Jan Engelhardt Reviewed-by: Ingo Molnar Acked-by: Peter Zijlstra Acked-by: Prarit Bhargava Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1341960205-56738-3-git-send-email-johnstul@us.ibm.com Signed-off-by: Thomas Gleixner Cc: Prarit Bhargava Cc: Thomas Gleixner Cc: Linux Kernel Signed-off-by: John Stultz --- kernel/time/timekeeping.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index adfa89d..634c9ee 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -769,6 +769,8 @@ static cycle_t logarithmic_accumulation(cycle_t offset, int shift) leap = second_overflow(xtime.tv_sec); xtime.tv_sec += leap; wall_to_monotonic.tv_sec -= leap; + if (leap) + clock_was_set_delayed(); } /* Accumulate into raw time */