]> www.infradead.org Git - users/jedix/linux-maple.git/commit
3.0.x: time: Fix leapsecond triggered hrtimer/futex load spike issue
authorJohn Stultz <johnstul@us.ibm.com>
Sun, 1 Jul 2012 18:07:56 +0000 (14:07 -0400)
committerJoe Jin <joe.jin@oracle.com>
Fri, 6 Jul 2012 11:01:26 +0000 (19:01 +0800)
commitaac67aba83c32bd03f4b59bdd932a076afbee089
treeabcd25f3f868a79cb6fe35ade84bef1258e16838
parentc51e012012e48ca262d4b489e33bc113bb5ac74d
3.0.x: time: Fix leapsecond triggered hrtimer/futex load spike issue

As widely reported on the internet, some Linux systems after
the leapsecond was inserted are experiencing futex related load
spikes (usually connected to MySQL, Firefox, Thunderbird, Java, etc).

An apparent for this issue workaround is running:
$ date -s "`date`"

Credit: http://www.sheeri.com/content/mysql-and-leap-second-high-cpu-and-fix

I this issue is due to the leapsecond being added without
calling clock_was_set() to notify the hrtimer subsystem of the
change.

The workaround functions as it forces a clock_was_set()
call from settimeofday().

This fix adds the required clock_was_set() calls to where
we adjust for leapseconds.

NOTE: This fix *depends* on the previous fix, which allows
clock_was_set to be called from atomic context. Do not try
to apply just this patch.

CC: Prarit Bhargava <prarit@redhat.com>
CC: stable@vger.kernel.org
CC: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Prarit Bhargava <prarit@redhat.com>
Reported-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Backported-by: Joe Jin <joe.jin@oracle.com>
kernel/time/timekeeping.c