1. 10 Jun, 2013 4 commits
    • Mark Rutland's avatar
      clockevents: Don't allow dummy broadcast timers · 30145daa
      Mark Rutland authored
      commit a7dc19b8 upstream.
      
      Currently tick_check_broadcast_device doesn't reject clock_event_devices
      with CLOCK_EVT_FEAT_DUMMY, and may select them in preference to real
      hardware if they have a higher rating value. In this situation, the
      dummy timer is responsible for broadcasting to itself, and the core
      clockevents code may attempt to call non-existent callbacks for
      programming the dummy, eventually leading to a panic.
      
      This patch makes tick_check_broadcast_device always reject dummy timers,
      preventing this problem.
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: Jon Medhurst (Tixy) <tixy@linaro.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
      30145daa
    • John Stultz's avatar
      2.6.32.y: timekeeping: Fix nohz issue with commit 61b76840 · d556d326
      John Stultz authored
      Commit 61b76840 ("time: Avoid
      making adjustments if we haven't accumulated anything")
      introduced a regression with nohz.
      
      Basically with kernels between 2.6.20-something to 2.6.32,
      we accumulate time in half second chunks, rather then every
      timer-tick. This was added because when NOHZ landed, if you
      were idle for a few seconds, you had to spin for every tick
      we skipped in the accumulation loop, which created some bad
      latencies.
      
      However, this required that we create the xtime_cache() which
      was still updated each tick, so that filesystem timestamps,
      etc continued to see time increment normally.
      
      Of course, the xtime_cache is updated at the bottom of
      update_wall_time(). So the early return on
      (offset < timekeeper.cycle_interval), added by the problematic
      commit causes the xtime_cache to not be updated.
      
      This can cause code using current_kernel_time() (like the mqueue
      code) or hrtimer_get_softirq_time(), which uses the non-updated
      xtime_cache, to see timers to fire with very coarse half-second
      granularity.
      
      Many thanks to Romain for describing the issue clearly,
      providing test case to reproduce it and helping with testing
      the solution.
      
      This change is for 2.6.32-stable ONLY!
      
      Cc: stable@vger.kernel.org
      Cc: Willy Tarreau <w@1wt.eu>
      Cc: Romain Francoise <romain@orebokech.com>
      Reported-by: default avatarRomain Francoise <romain@orebokech.com>
      Tested-by: default avatarRomain Francoise <romain@orebokech.com>
      Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
      Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
      d556d326
    • Jens Axboe's avatar
      Revert "block: improve queue_should_plug() by looking at IO depths" · ec2826bc
      Jens Axboe authored
      This reverts commit fb1e7538.
      
      "Benjamin S." <sbenni@gmx.de> reports that the patch in question
      causes a big drop in sequential throughput for him, dropping from
      200MB/sec down to only 70MB/sec.
      
      Needs to be investigated more fully, for now lets just revert the
      offending commit.
      
      Conflicts:
      
      	include/linux/blkdev.h
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      (cherry picked from commit 79da0644)
      Cc: Thomas Bork <tom@eisfair.net>
      Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
      ec2826bc
    • Ben Hutchings's avatar
      Revert "pcdp: use early_ioremap/early_iounmap to access pcdp table" · 01ab25d5
      Ben Hutchings authored
      This reverts commit 2af3af56, which was
      commit 6c4088ac upstream.
      
      This broke compilation of the driver in 2.6.32.y as the
      early_io{remap,unmap}() functions are not defined for ia64.  The driver
      can *only* be built for ia64 (even in current mainline), so a fix for
      x86_64 is pointless.
      Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
      01ab25d5
  2. 07 Oct, 2012 36 commits