)]}'
{
  "log": [
    {
      "commit": "a2b4c607c93a0850c8e3d90688cf3bd08576b986",
      "tree": "fd1ef8cd906a864f6db3551b3891fd5d0c2075fd",
      "parents": [
        "15c81026204da897a05424c79263aea861a782cc",
        "8fe8ff09ce3b5750e1f3e45a1f4a81d59c7ff1f1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Jan 25 08:27:26 2014 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Jan 25 08:27:26 2014 +0100"
      },
      "message": "Merge branch \u0027timers/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into timers/urgent\n\nPull dynticks cleanups from Frederic Weisbecker.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "6c6461435611e1d4843516f2d55e8316c009112e",
      "tree": "2285f7ef3257dcb30342f931430ad755fc5d299b",
      "parents": [
        "a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8",
        "00e2bcd6d35f59fce7fa0e76e24d08f74c6a8506"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 20 11:34:26 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 20 11:34:26 2014 -0800"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer changes from Ingo Molnar:\n  - ARM clocksource/clockevent improvements and fixes\n  - generic timekeeping updates: TAI fixes/improvements, cleanups\n  - Posix cpu timer cleanups and improvements\n  - dynticks updates: full dynticks bugfixes, optimizations and cleanups\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)\n  clocksource: Timer-sun5i: Switch to sched_clock_register()\n  timekeeping: Remove comment that\u0027s mostly out of date\n  rtc-cmos: Add an alarm disable quirk\n  timekeeper: fix comment typo for tk_setup_internals()\n  timekeeping: Fix missing timekeeping_update in suspend path\n  timekeeping: Fix CLOCK_TAI timer/nanosleep delays\n  tick/timekeeping: Call update_wall_time outside the jiffies lock\n  timekeeping: Avoid possible deadlock from clock_was_set_delayed\n  timekeeping: Fix potential lost pv notification of time change\n  timekeeping: Fix lost updates to tai adjustment\n  clocksource: sh_cmt: Add clk_prepare/unprepare support\n  clocksource: bcm_kona_timer: Remove unused bcm_timer_ids\n  clocksource: vt8500: Remove deprecated IRQF_DISABLED\n  clocksource: tegra: Remove deprecated IRQF_DISABLED\n  clocksource: misc drivers: Remove deprecated IRQF_DISABLED\n  clocksource: sh_mtu2: Remove unnecessary platform_set_drvdata()\n  clocksource: sh_tmu: Remove unnecessary platform_set_drvdata()\n  clocksource: armada-370-xp: Enable timer divider only when needed\n  clocksource: clksrc-of: Warn if no clock sources are found\n  clocksource: orion: Switch to sched_clock_register()\n  ...\n"
    },
    {
      "commit": "a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8",
      "tree": "b249854573815eedf377e554f0ea516f86411841",
      "parents": [
        "9326657abe1a83ed4b4f396b923ca1217fd50cba",
        "eaad45132c564ce377e6dce05e78e08e456d5315"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 20 10:42:08 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 20 10:42:08 2014 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n\n - Add the initial implementation of SCHED_DEADLINE support: a real-time\n   scheduling policy where tasks that meet their deadlines and\n   periodically execute their instances in less than their runtime quota\n   see real-time scheduling and won\u0027t miss any of their deadlines.\n   Tasks that go over their quota get delayed (Available to privileged\n   users for now)\n\n - Clean up and fix preempt_enable_no_resched() abuse all around the\n   tree\n\n - Do sched_clock() performance optimizations on x86 and elsewhere\n\n - Fix and improve auto-NUMA balancing\n\n - Fix and clean up the idle loop\n\n - Apply various cleanups and fixes\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits)\n  sched: Fix __sched_setscheduler() nice test\n  sched: Move SCHED_RESET_ON_FORK into attr::sched_flags\n  sched: Fix up attr::sched_priority warning\n  sched: Fix up scheduler syscall LTP fails\n  sched: Preserve the nice level over sched_setscheduler() and sched_setparam() calls\n  sched/core: Fix htmldocs warnings\n  sched/deadline: No need to check p if dl_se is valid\n  sched/deadline: Remove unused variables\n  sched/deadline: Fix sparse static warnings\n  m68k: Fix build warning in mac_via.h\n  sched, thermal: Clean up preempt_enable_no_resched() abuse\n  sched, net: Fixup busy_loop_us_clock()\n  sched, net: Clean up preempt_enable_no_resched() abuse\n  sched/preempt: Fix up missed PREEMPT_NEED_RESCHED folding\n  sched/preempt, locking: Rework local_bh_{dis,en}able()\n  sched/clock, x86: Avoid a runtime condition in native_sched_clock()\n  sched/clock: Fix up clear_sched_clock_stable()\n  sched/clock, x86: Use a static_key for sched_clock_stable\n  sched/clock: Remove local_irq_disable() from the clocks\n  sched/clock, x86: Rewrite cyc2ns() to avoid the need to disable IRQs\n  ...\n"
    },
    {
      "commit": "e9a2eb403bd953788cd2abfd0d2646d43bd22671",
      "tree": "9fcbf8e4128ba8697fcda2bcb9261db664684743",
      "parents": [
        "855a0fc30b70d6ae681badd24d6625f9a9abb787"
      ],
      "author": {
        "name": "Alex Shi",
        "email": "alex.shi@linaro.org",
        "time": "Thu Nov 28 14:27:11 2013 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jan 15 23:07:11 2014 +0100"
      },
      "message": "nohz_full: fix code style issue of tick_nohz_full_stop_tick\n\nCode usually starts with \u0027tab\u0027 instead of 7 \u0027space\u0027 in kernel\n\nSigned-off-by: Alex Shi \u003calex.shi@linaro.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Alex Shi \u003calex.shi@linaro.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\nLink: http://lkml.kernel.org/r/1386074112-30754-2-git-send-email-alex.shi@linaro.org\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "855a0fc30b70d6ae681badd24d6625f9a9abb787",
      "tree": "4cd7ec203e28db952889a36e6a181414d4e26c02",
      "parents": [
        "5acac1be499d979e3aa463ea73a498888faefcbe"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Dec 17 00:16:37 2013 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jan 15 23:07:11 2014 +0100"
      },
      "message": "nohz: Get timekeeping max deferment outside jiffies_lock\n\nWe don\u0027t need to fetch the timekeeping max deferment under the\njiffies_lock seqlock.\n\nIf the clocksource is updated concurrently while we stop the tick,\nstop machine is called and the tick will be reevaluated again along with\nuptodate jiffies and its related values.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Alex Shi \u003calex.shi@linaro.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\nLink: http://lkml.kernel.org/r/1387320692-28460-9-git-send-email-fweisbec@gmail.com\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "5acac1be499d979e3aa463ea73a498888faefcbe",
      "tree": "5b3b38301cdeabe8d2efc77dbe743e6b7b23fea2",
      "parents": [
        "1b3f82876006bd4172ca7696aa367baf96ec7c15"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 04 18:28:20 2013 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jan 15 23:05:31 2014 +0100"
      },
      "message": "tick: Rename tick_check_idle() to tick_irq_enter()\n\nThis makes the code more symetric against the existing tick functions\ncalled on irq exit: tick_irq_exit() and tick_nohz_irq_exit().\n\nThese function are also symetric as they mirror each other\u0027s action:\nwe start to account idle time on irq exit and we stop this accounting\non irq entry. Also the tick is stopped on irq exit and timekeeping\ncatches up with the tickless time elapsed until we reach irq entry.\n\nThis rename was suggested by Peter Zijlstra a long while ago but it\ngot forgotten in the mass.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Alex Shi \u003calex.shi@linaro.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\nLink: http://lkml.kernel.org/r/1387320692-28460-2-git-send-email-fweisbec@gmail.com\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "35af99e646c7f7ea46dc2977601e9e71a51dadd5",
      "tree": "d999820d233844278549cd826c4bfd6c7aa1ecc8",
      "parents": [
        "ef08f0fff87630d4f67ceb09514d8b444df833f8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Nov 28 19:38:42 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jan 13 15:13:13 2014 +0100"
      },
      "message": "sched/clock, x86: Use a static_key for sched_clock_stable\n\nIn order to avoid the runtime condition and variable load turn\nsched_clock_stable into a static_key.\n\nAlso provide a shorter implementation of local_clock() and\ncpu_clock(int) when sched_clock_stable\u003d\u003d1.\n\n                        MAINLINE   PRE       POST\n\n    sched_clock_stable: 1          1         1\n    (cold) sched_clock: 329841     221876    215295\n    (cold) local_clock: 301773     234692    220773\n    (warm) sched_clock: 38375      25602     25659\n    (warm) local_clock: 100371     33265     27242\n    (warm) rdtsc:       27340      24214     24208\n    sched_clock_stable: 0          0         0\n    (cold) sched_clock: 382634     235941    237019\n    (cold) local_clock: 396890     297017    294819\n    (warm) sched_clock: 38194      25233     25609\n    (warm) local_clock: 143452     71234     71232\n    (warm) rdtsc:       27345      24245     24243\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-eummbdechzz37mwmpags1gjr@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "d05d24a984f8e14086771a158083dbe6facb769e",
      "tree": "0e897dc8cee3b884eef194b620c62d8a8fa8594c",
      "parents": [
        "dba861461f88c12249ac78fb877866c04f99deb3",
        "38aef31ce7773624c8f09ff58c4c27b3b955faaf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Jan 12 14:13:31 2014 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Jan 12 14:13:31 2014 +0100"
      },
      "message": "Merge branch \u0027fortglx/3.14/time\u0027 of git://git.linaro.org/people/john.stultz/linux into timers/core\n\nPull timekeeping updates from John Stultz.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "dba861461f88c12249ac78fb877866c04f99deb3",
      "tree": "5812b143581bcc66c7c542f01ba0cb22e489b8e5",
      "parents": [
        "0e6601eee039893a3f6420596ae4588d90d13cbe",
        "228fdc083b017eaf90e578fa86fb1ecfd5ffae87"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Jan 12 14:12:44 2014 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Jan 12 14:12:44 2014 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into timers/core\n\nPick up the latest fixes and refresh the branch.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "7a06c41cbec33c6dbe7eec575c61986122617408",
      "tree": "7b97849c95bbc76378e9136b2f8016be9e413e0d",
      "parents": [
        "0c3351d451ae2fa438d5d1ed719fc43354fbffbb"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 02 15:11:14 2014 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sun Jan 12 10:14:00 2014 +0100"
      },
      "message": "sched_clock: Disable seqlock lockdep usage in sched_clock()\n\nUnfortunately the seqlock lockdep enablement can\u0027t be used\nin sched_clock(), since the lockdep infrastructure eventually\ncalls into sched_clock(), which causes a deadlock.\n\nThus, this patch changes all generic sched_clock() usage\nto use the raw_* methods.\n\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nReviewed-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nReported-by: Krzysztof Hałasa \u003ckhalasa@piap.pl\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: Willy Tarreau \u003cw@1wt.eu\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1388704274-5278-2-git-send-email-john.stultz@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "38aef31ce7773624c8f09ff58c4c27b3b955faaf",
      "tree": "f201d1b646229ee8f99eed411ae28cdfc4fce905",
      "parents": [
        "d5a1c7e3fc38d9c7d629e1e47f32f863acbdec3d"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 23 12:53:22 2013 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 23 12:53:22 2013 -0800"
      },
      "message": "timekeeping: Remove comment that\u0027s mostly out of date\n\nPrior to 92bb1fcf57a0c2e45f7e67fbf0a8ed475a749236 (Only\ndo nanosecond rounding on GENERIC_TIME_VSYSCALL_OLD\nsystems), the comment here was accuate, but now we can\nmostly avoid the extra rounding which causes the unlikey\nto be actually likely here.\n\nSo remove the out of date comment.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "d26e4fe0dbe95778b9dbe80b6aa884d71fb6f459",
      "tree": "33b28707c74872bee862f88390b1521314c8824e",
      "parents": [
        "330a1617b0a6268d427aa5922c94d082b1d3e96d"
      ],
      "author": {
        "name": "Yijing Wang",
        "email": "wangyijing@huawei.com",
        "time": "Thu Nov 28 16:28:55 2013 +0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 23 11:54:35 2013 -0800"
      },
      "message": "timekeeper: fix comment typo for tk_setup_internals()\n\nFix trivial comment typo for tk_setup_internals().\n\nSigned-off-by: Yijing Wang \u003cwangyijing@huawei.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "330a1617b0a6268d427aa5922c94d082b1d3e96d",
      "tree": "12ee60de5410bc9c60c92bf96e4fc4ceaac7d95f",
      "parents": [
        "04005f6011e3b504cd4d791d9769f7cb9a3b2eae"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Dec 11 19:10:36 2013 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 23 11:54:35 2013 -0800"
      },
      "message": "timekeeping: Fix missing timekeeping_update in suspend path\n\nSince 48cdc135d4840 (Implement a shadow timekeeper), we have to\ncall timekeeping_update() after any adjustment to the timekeeping\nstructure in order to make sure that any adjustments to the structure\npersist.\n\nIn the timekeeping suspend path, we udpate the timekeeper\nstructure, so we should be sure to update the shadow-timekeeper\nbefore releasing the timekeeping locks. Currently this isn\u0027t done.\n\nIn most cases, the next time related code to run would be\ntimekeeping_resume, which does update the shadow-timekeeper, but\nin an abundence of caution, this patch adds the call to\ntimekeeping_update() in the suspend path.\n\nCc: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: stable \u003cstable@vger.kernel.org\u003e #3.10+\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "04005f6011e3b504cd4d791d9769f7cb9a3b2eae",
      "tree": "9d2d3283a854a9dca0cee332069679818f674963",
      "parents": [
        "47a1b796306356f358e515149d86baf0cc6bf007"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Dec 10 17:13:35 2013 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 23 11:54:34 2013 -0800"
      },
      "message": "timekeeping: Fix CLOCK_TAI timer/nanosleep delays\n\nA think-o in the calculation of the monotonic -\u003e tai time offset\nresults in CLOCK_TAI timers and nanosleeps to expire late (the\nlatency is ~2x the tai offset).\n\nFix this by adding the tai offset from the realtime offset instead\nof subtracting.\n\nCc: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: stable \u003cstable@vger.kernel.org\u003e #3.10+\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "47a1b796306356f358e515149d86baf0cc6bf007",
      "tree": "0ab5132f643db4318b395f2cb13f435ba3d9e5b6",
      "parents": [
        "6fdda9a9c5db367130cf32df5d6618d08b89f46a"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Dec 12 13:10:55 2013 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 23 11:54:32 2013 -0800"
      },
      "message": "tick/timekeeping: Call update_wall_time outside the jiffies lock\n\nSince the xtime lock was split into the timekeeping lock and\nthe jiffies lock, we no longer need to call update_wall_time()\nwhile holding the jiffies lock.\n\nThus, this patch splits update_wall_time() out from do_timer().\n\nThis allows us to get away from calling clock_was_set_delayed()\nin update_wall_time() and instead use the standard clock_was_set()\ncall that previously would deadlock, as it causes the jiffies lock\nto be acquired.\n\nCc: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "6fdda9a9c5db367130cf32df5d6618d08b89f46a",
      "tree": "a66cf0314bf14ecf5c073cd273a64e4e6a42e474",
      "parents": [
        "5258d3f25c76f6ab86e9333abf97a55a877d3870"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Dec 10 17:18:18 2013 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 23 11:53:33 2013 -0800"
      },
      "message": "timekeeping: Avoid possible deadlock from clock_was_set_delayed\n\nAs part of normal operaions, the hrtimer subsystem frequently calls\ninto the timekeeping code, creating a locking order of\n  hrtimer locks -\u003e timekeeping locks\n\nclock_was_set_delayed() was suppoed to allow us to avoid deadlocks\nbetween the timekeeping the hrtimer subsystem, so that we could\nnotify the hrtimer subsytem the time had changed while holding\nthe timekeeping locks. This was done by scheduling delayed work\nthat would run later once we were out of the timekeeing code.\n\nBut unfortunately the lock chains are complex enoguh that in\nscheduling delayed work, we end up eventually trying to grab\nan hrtimer lock.\n\nSasha Levin noticed this in testing when the new seqlock lockdep\nenablement triggered the following (somewhat abrieviated) message:\n\n[  251.100221] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[  251.100221] [ INFO: possible circular locking dependency detected ]\n[  251.100221] 3.13.0-rc2-next-20131206-sasha-00005-g8be2375-dirty #4053 Not tainted\n[  251.101967] -------------------------------------------------------\n[  251.101967] kworker/10:1/4506 is trying to acquire lock:\n[  251.101967]  (timekeeper_seq){----..}, at: [\u003cffffffff81160e96\u003e] retrigger_next_event+0x56/0x70\n[  251.101967]\n[  251.101967] but task is already holding lock:\n[  251.101967]  (hrtimer_bases.lock#11){-.-...}, at: [\u003cffffffff81160e7c\u003e] retrigger_next_event+0x3c/0x70\n[  251.101967]\n[  251.101967] which lock already depends on the new lock.\n[  251.101967]\n[  251.101967]\n[  251.101967] the existing dependency chain (in reverse order) is:\n[  251.101967]\n-\u003e #5 (hrtimer_bases.lock#11){-.-...}:\n[snipped]\n-\u003e #4 (\u0026rt_b-\u003ert_runtime_lock){-.-...}:\n[snipped]\n-\u003e #3 (\u0026rq-\u003elock){-.-.-.}:\n[snipped]\n-\u003e #2 (\u0026p-\u003epi_lock){-.-.-.}:\n[snipped]\n-\u003e #1 (\u0026(\u0026pool-\u003elock)-\u003erlock){-.-...}:\n[  251.101967]        [\u003cffffffff81194803\u003e] validate_chain+0x6c3/0x7b0\n[  251.101967]        [\u003cffffffff81194d9d\u003e] __lock_acquire+0x4ad/0x580\n[  251.101967]        [\u003cffffffff81194ff2\u003e] lock_acquire+0x182/0x1d0\n[  251.101967]        [\u003cffffffff84398500\u003e] _raw_spin_lock+0x40/0x80\n[  251.101967]        [\u003cffffffff81153e69\u003e] __queue_work+0x1a9/0x3f0\n[  251.101967]        [\u003cffffffff81154168\u003e] queue_work_on+0x98/0x120\n[  251.101967]        [\u003cffffffff81161351\u003e] clock_was_set_delayed+0x21/0x30\n[  251.101967]        [\u003cffffffff811c4bd1\u003e] do_adjtimex+0x111/0x160\n[  251.101967]        [\u003cffffffff811e2711\u003e] compat_sys_adjtimex+0x41/0x70\n[  251.101967]        [\u003cffffffff843a4b49\u003e] ia32_sysret+0x0/0x5\n[  251.101967]\n-\u003e #0 (timekeeper_seq){----..}:\n[snipped]\n[  251.101967] other info that might help us debug this:\n[  251.101967]\n[  251.101967] Chain exists of:\n  timekeeper_seq --\u003e \u0026rt_b-\u003ert_runtime_lock --\u003e hrtimer_bases.lock#11\n\n[  251.101967]  Possible unsafe locking scenario:\n[  251.101967]\n[  251.101967]        CPU0                    CPU1\n[  251.101967]        ----                    ----\n[  251.101967]   lock(hrtimer_bases.lock#11);\n[  251.101967]                                lock(\u0026rt_b-\u003ert_runtime_lock);\n[  251.101967]                                lock(hrtimer_bases.lock#11);\n[  251.101967]   lock(timekeeper_seq);\n[  251.101967]\n[  251.101967]  *** DEADLOCK ***\n[  251.101967]\n[  251.101967] 3 locks held by kworker/10:1/4506:\n[  251.101967]  #0:  (events){.+.+.+}, at: [\u003cffffffff81154960\u003e] process_one_work+0x200/0x530\n[  251.101967]  #1:  (hrtimer_work){+.+...}, at: [\u003cffffffff81154960\u003e] process_one_work+0x200/0x530\n[  251.101967]  #2:  (hrtimer_bases.lock#11){-.-...}, at: [\u003cffffffff81160e7c\u003e] retrigger_next_event+0x3c/0x70\n[  251.101967]\n[  251.101967] stack backtrace:\n[  251.101967] CPU: 10 PID: 4506 Comm: kworker/10:1 Not tainted 3.13.0-rc2-next-20131206-sasha-00005-g8be2375-dirty #4053\n[  251.101967] Workqueue: events clock_was_set_work\n\nSo the best solution is to avoid calling clock_was_set_delayed() while\nholding the timekeeping lock, and instead using a flag variable to\ndecide if we should call clock_was_set() once we\u0027ve released the locks.\n\nThis works for the case here, where the do_adjtimex() was the deadlock\ntrigger point. Unfortuantely, in update_wall_time() we still hold\nthe jiffies lock, which would deadlock with the ipi triggered by\nclock_was_set(), preventing us from calling it even after we drop the\ntimekeeping lock. So instead call clock_was_set_delayed() at that point.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: stable \u003cstable@vger.kernel.org\u003e #3.10+\nReported-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nTested-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "5258d3f25c76f6ab86e9333abf97a55a877d3870",
      "tree": "1be39352f8537f178ca2eeb2d2802c05edb2be63",
      "parents": [
        "f55c07607a38f84b5c7e6066ee1cfe433fa5643c"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Dec 11 20:07:49 2013 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 23 11:53:26 2013 -0800"
      },
      "message": "timekeeping: Fix potential lost pv notification of time change\n\nIn 780427f0e11 (Indicate that clock was set in the pvclock\ngtod notifier), logic was added to pass a CLOCK_WAS_SET\nnotification to the pvclock notifier chain.\n\nWhile that patch added a action flag returned from\naccumulate_nsecs_to_secs(), it only uses the returned value\nin one location, and not in the logarithmic accumulation.\n\nThis means if a leap second triggered during the logarithmic\naccumulation (which is most likely where it would happen),\nthe notification that the clock was set would not make it to\nthe pv notifiers.\n\nThis patch extends the logarithmic_accumulation pass down\nthat action flag so proper notification will occur.\n\nThis patch also changes the varialbe action -\u003e clock_set\nper Ingo\u0027s suggestion.\n\nCc: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: David Vrabel \u003cdavid.vrabel@citrix.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCc: \u003cxen-devel@lists.xen.org\u003e\nCc: stable \u003cstable@vger.kernel.org\u003e #3.11+\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "f55c07607a38f84b5c7e6066ee1cfe433fa5643c",
      "tree": "d7e7e92c896b8041204210704cd47814ea1e13ac",
      "parents": [
        "0e6601eee039893a3f6420596ae4588d90d13cbe"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Dec 11 18:50:25 2013 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Dec 23 11:47:35 2013 -0800"
      },
      "message": "timekeeping: Fix lost updates to tai adjustment\n\nSince 48cdc135d4840 (Implement a shadow timekeeper), we have to\ncall timekeeping_update() after any adjustment to the timekeeping\nstructure in order to make sure that any adjustments to the structure\npersist.\n\nUnfortunately, the updates to the tai offset via adjtimex do not\ntrigger this update, causing adjustments to the tai offset to be\nmade and then over-written by the previous value at the next\nupdate_wall_time() call.\n\nThis patch resovles the issue by calling timekeeping_update()\nright after setting the tai offset.\n\nCc: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: stable \u003cstable@vger.kernel.org\u003e #3.10+\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "e8fcaa5c54e3b0371230e5d43a6f650c667da9c5",
      "tree": "966d06c71bc79809ca34675b023602aefc8e578d",
      "parents": [
        "dc1ccc48159d63eca5089e507c82c7d22ef60839"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Aug 07 22:28:01 2013 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Dec 02 20:39:30 2013 +0100"
      },
      "message": "nohz: Convert a few places to use local per cpu accesses\n\nA few functions use remote per CPU access APIs when they\ndeal with local values.\n\nJust do the right conversion to improve performance, code\nreadability and debug checks.\n\nWhile at it, lets extend some of these function names with *_this_cpu()\nsuffix in order to display their purpose more clearly.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "0e576acbc1d9600cf2d9b4a141a2554639959d50",
      "tree": "1d1322330afaa7cffdc39d2f898a7a0f02fa65c3",
      "parents": [
        "70fe8217e17ddd058f9f043ae1cc0d86b1658a5c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 29 12:18:13 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 29 12:23:03 2013 +0100"
      },
      "message": "nohz: Fix another inconsistency between CONFIG_NO_HZ\u003dn and nohz\u003doff\n\nIf CONFIG_NO_HZ\u003dn tick_nohz_get_sleep_length() returns NSEC_PER_SEC/HZ.\n\nIf CONFIG_NO_HZ\u003dy and the nohz functionality is disabled via the\ncommand line option \"nohz\u003doff\" or not enabled due to missing hardware\nsupport, then tick_nohz_get_sleep_length() returns 0. That happens\nbecause ts-\u003esleep_length is never set in that case.\n\nSet it to NSEC_PER_SEC/HZ when the NOHZ mode is inactive.\n\nReported-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReported-by: Borislav Petkov \u003cbp@alien8.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "4be77398ac9d948773116b6be4a3c91b3d6ea18c",
      "tree": "6560d38d789fa7a665367804dc311aa00cb4368e",
      "parents": [
        "050ded1bbaea3331745cf2782315f5bc2582d083"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Nov 22 11:44:51 2013 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 22 21:08:11 2013 +0100"
      },
      "message": "time: Fix 1ns/tick drift w/ GENERIC_TIME_VSYSCALL_OLD\n\nSince commit 1e75fa8be9f (time: Condense timekeeper.xtime\ninto xtime_sec - merged in v3.6), there has been an problem\nwith the error accounting in the timekeeping code, such that\nwhen truncating to nanoseconds, we round up to the next nsec,\nbut the balancing adjustment to the ntp_error value was dropped.\n\nThis causes 1ns per tick drift forward of the clock.\n\nIn 3.7, this logic was isolated to only GENERIC_TIME_VSYSCALL_OLD\narchitectures (s390, ia64, powerpc).\n\nThe fix is simply to balance the accounting and to subtract the\nadded nanosecond from ntp_error. This allows the internal long-term\nclock steering to keep the clock accurate.\n\nWhile this fix removes the regression added in 1e75fa8be9f, the\nideal solution is to move away from GENERIC_TIME_VSYSCALL_OLD\nand use the new VSYSCALL method, which avoids entirely the\nnanosecond granular rounding, and the resulting short-term clock\nadjustment oscillation needed to keep long term accurate time.\n\n[ jstultz: Many thanks to Martin for his efforts identifying this\n  \t   subtle bug, and providing the fix. ]\n\nOriginally-from: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable \u003cstable@vger.kernel.org\u003e  #v3.6+\nLink: http://lkml.kernel.org/r/1385149491-20307-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "050ded1bbaea3331745cf2782315f5bc2582d083",
      "tree": "0d7005962a2611c254cec27736cb5750bea2b58c",
      "parents": [
        "da554eba2e68c8ec051977db5ee1f42d384a01ed"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Nov 15 14:15:33 2013 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 19 14:59:50 2013 +0100"
      },
      "message": "tick: Document tick_do_timer_cpu\n\nTaken straight from a tglx email ;)\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d689fe222a858c767cb8594faf280048e532b53f",
      "tree": "2ddb3ee24ce9fd2566a6fb9204ea9861a74a7404",
      "parents": [
        "801a76050bcf8d4e500eb8d048ff6265f37a61c8"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Nov 13 21:01:57 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 19 14:59:50 2013 +0100"
      },
      "message": "NOHZ: Check for nohz active instead of nohz enabled\n\nRCU and the fine grained idle time accounting functions check\ntick_nohz_enabled. But that variable is merily telling that NOHZ has\nbeen enabled in the config and not been disabled on the command line.\n\nBut it does not tell anything about nohz being active. That\u0027s what all\nthis should check for.\n\nMatthew reported, that the idle accounting on his old P1 machine\nshowed bogus values, when he enabled NOHZ in the config and did not\ndisable it on the kernel command line. The reason is that his machine\nuses (refined) jiffies as a clocksource which explains why the \"fine\"\ngrained accounting went into lala land, because it depends on when the\nsystem goes and leaves idle relative to the jiffies increment.\n\nProvide a tick_nohz_active indicator and let RCU and the accounting\ncode use this instead of tick_nohz_enable.\n\nReported-and-tested-by: Matthew Whitehead \u003ctedheadster@gmail.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: john.stultz@linaro.org\nCc: mwhitehe@redhat.com\nLink: http://lkml.kernel.org/r/alpine.DEB.2.02.1311132052240.30673@ionos.tec.linutronix.de\n"
    },
    {
      "commit": "87093826aa0172d9135ca1f301c4298a258ceee6",
      "tree": "c73f1db366d6f616a81c9c6a8a9611208a6c05ac",
      "parents": [
        "39cf275a1a18ba3c7eb9b986c5c9b35b57332798",
        "ee5872befc9324fa4c2583c24d7ee7120314a2b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 12 10:36:00 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 12 10:36:00 2013 +0900"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer changes from Ingo Molnar:\n \"Main changes in this cycle were:\n\n   - Updated full dynticks support.\n\n   - Event stream support for architected (ARM) timers.\n\n   - ARM clocksource driver updates.\n\n   - Move arm64 to using the generic sched_clock framework \u0026 resulting\n     cleanup in the generic sched_clock code.\n\n   - Misc fixes and cleanups\"\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (50 commits)\n  x86/time: Honor ACPI FADT flag indicating absence of a CMOS RTC\n  clocksource: sun4i: remove IRQF_DISABLED\n  clocksource: sun4i: Report the minimum tick that we can program\n  clocksource: sun4i: Select CLKSRC_MMIO\n  clocksource: Provide timekeeping for efm32 SoCs\n  clocksource: em_sti: convert to clk_prepare/unprepare\n  time: Fix signedness bug in sysfs_get_uname() and its callers\n  timekeeping: Fix some trivial typos in comments\n  alarmtimer: return EINVAL instead of ENOTSUPP if rtcdev doesn\u0027t exist\n  clocksource: arch_timer: Do not register arch_sys_counter twice\n  timer stats: Add a \u0027Collection: active/inactive\u0027 line to timer usage statistics\n  sched_clock: Remove sched_clock_func() hook\n  arch_timer: Move to generic sched_clock framework\n  clocksource: tcb_clksrc: Remove IRQF_DISABLED\n  clocksource: tcb_clksrc: Improve driver robustness\n  clocksource: tcb_clksrc: Replace clk_enable/disable with clk_prepare_enable/disable_unprepare\n  clocksource: arm_arch_timer: Use clocksource for suspend timekeeping\n  clocksource: dw_apb_timer_of: Mark a few more functions as __init\n  clocksource: Put nodes passed to CLOCKSOURCE_OF_DECLARE callbacks centrally\n  arm: zynq: Enable arm_global_timer\n  ...\n"
    },
    {
      "commit": "97b9410643475d6557d2517c2aff9fd2221141a9",
      "tree": "47b22d65e97075fa1d17852ee0c62485df23e7ed",
      "parents": [
        "320437af954cbe66478f1f5e8b34cb5a8d072191"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 24 21:50:23 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Oct 23 12:51:21 2013 +0200"
      },
      "message": "clockevents: Sanitize ticks to nsec conversion\n\nMarc Kleine-Budde pointed out, that commit 77cc982 \"clocksource: use\nclockevents_config_and_register() where possible\" caused a regression\nfor some of the converted subarchs.\n\nThe reason is, that the clockevents core code converts the minimal\nhardware tick delta to a nanosecond value for core internal\nusage. This conversion is affected by integer math rounding loss, so\nthe backwards conversion to hardware ticks will likely result in a\nvalue which is less than the configured hardware limitation. The\naffected subarchs used their own workaround (SIGH!) which got lost in\nthe conversion.\n\nThe solution for the issue at hand is simple: adding evt-\u003emult - 1 to\nthe shifted value before the integer divison in the core conversion\nfunction takes care of it. But this only works for the case where for\nthe scaled math mult/shift pair \"mult \u003c\u003d 1 \u003c\u003c shift\" is true. For the\ncase where \"mult \u003e 1 \u003c\u003c shift\" we can apply the rounding add only for\nthe minimum delta value to make sure that the backward conversion is\nnot less than the given hardware limit. For the upper bound we need to\nomit the rounding add, because the backwards conversion is always\nlarger than the original latch value. That would violate the upper\nbound of the hardware device.\n\nThough looking closer at the details of that function reveals another\nbogosity: The upper bounds check is broken as well. Checking for a\nresulting \"clc\" value greater than KTIME_MAX after the conversion is\npointless. The conversion does:\n\n      u64 clc \u003d (latch \u003c\u003c evt-\u003eshift) / evt-\u003emult;\n\nSo there is no sanity check for (latch \u003c\u003c evt-\u003eshift) exceeding the\n64bit boundary. The latch argument is \"unsigned long\", so on a 64bit\narch the handed in argument could easily lead to an unnoticed shift\noverflow. With the above rounding fix applied the calculation before\nthe divison is:\n\n       u64 clc \u003d (latch \u003c\u003c evt-\u003eshift) + evt-\u003emult - 1;\n\nSo we need to make sure, that neither the shift nor the rounding add\nis overflowing the u64 boundary.\n\n[ukl: move assignment to rnd after eventually changing mult, fix build\n issue and correct comment with the right math]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Russell King - ARM Linux \u003clinux@arm.linux.org.uk\u003e\nCc: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\nCc: nicolas.ferre@atmel.com\nCc: Marc Pignat \u003cmarc.pignat@hevs.ch\u003e\nCc: john.stultz@linaro.org\nCc: kernel@pengutronix.de\nCc: Ronald Wahl \u003cronald.wahl@raritan.com\u003e\nCc: LAK \u003clinux-arm-kernel@lists.infradead.org\u003e\nCc: Ludovic Desroches \u003cludovic.desroches@atmel.com\u003e\nCc: stable@vger.kernel.org\nLink: http://lkml.kernel.org/r/1380052223-24139-1-git-send-email-u.kleine-koenig@pengutronix.de\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\n"
    },
    {
      "commit": "891292a767c2453af0e5be9465e95b06b4b29ebe",
      "tree": "86f9d3856dd7cb253f2b635274b78e81da7e8fe5",
      "parents": [
        "b7bc50e45111e59419474154736f419a555158d9"
      ],
      "author": {
        "name": "Patrick Palka",
        "email": "patrick@parcs.ath.cx",
        "time": "Fri Oct 11 13:11:55 2013 -0400"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Oct 18 16:45:58 2013 -0700"
      },
      "message": "time: Fix signedness bug in sysfs_get_uname() and its callers\n\nsysfs_get_uname() is erroneously declared as returning size_t even\nthough it may return a negative value, specifically -EINVAL.  Its\ncallers then check whether its return value is less than zero and indeed\nthat is never the case for size_t.\n\nThis patch changes sysfs_get_uname() to return ssize_t and makes sure\nits callers use ssize_t accordingly.\n\nSigned-off-by: Patrick Palka \u003cpatrick@parcs.ath.cx\u003e\n[jstultz: Didn\u0027t apply cleanly, as a similar partial fix was also applied\nso had to resolve the collisions]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "b7bc50e45111e59419474154736f419a555158d9",
      "tree": "d000a125d64f6ba951d0a857c3ca03cfa3f18522",
      "parents": [
        "98d6f4dd84a134d942827584a3c5f67ffd8ec35f"
      ],
      "author": {
        "name": "Xie XiuQi",
        "email": "xiexiuqi@huawei.com",
        "time": "Fri Oct 18 09:13:30 2013 +0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Oct 18 16:30:17 2013 -0700"
      },
      "message": "timekeeping: Fix some trivial typos in comments\n\nFix some typos in timekeeping comments.\n\nSigned-off-by: Xie XiuQi \u003cxiexiuqi@huawei.com\u003e\n[jstultz: Commit message tweaks]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "98d6f4dd84a134d942827584a3c5f67ffd8ec35f",
      "tree": "2a8d2c772e71b49b4d99e356bbd86d3b55ea8262",
      "parents": [
        "4a7d3e8a9939cf8073c247286d81cbe0ae48eba2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Oct 14 17:33:16 2013 -0400"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Oct 18 16:23:58 2013 -0700"
      },
      "message": "alarmtimer: return EINVAL instead of ENOTSUPP if rtcdev doesn\u0027t exist\n\nFedora Ruby maintainer reported latest Ruby doesn\u0027t work on Fedora Rawhide\non ARM. (http://bugs.ruby-lang.org/issues/9008)\n\nBecause of, commit 1c6b39ad3f (alarmtimers: Return -ENOTSUPP if no\nRTC device is present) intruduced to return ENOTSUPP when\nclock_get{time,res} can\u0027t find a RTC device. However this is incorrect.\n\nFirst, ENOTSUPP isn\u0027t exported to userland (ENOTSUP or EOPNOTSUP are the\nclosest userland equivlents).\n\nSecond, Posix and Linux man pages agree that clock_gettime and\nclock_getres should return EINVAL if clk_id argument is invalid.\nWhile the arugment that the clockid is valid, but just not supported\non this hardware could be made, this is just a technicality that\ndoesn\u0027t help userspace applicaitons, and only complicates error\nhandling.\n\nThus, this patch changes the code to use EINVAL.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: stable \u003cstable@vger.kernel.org\u003e  #3.0 and up\nReported-by: Vit Ondruch \u003cv.ondruch@tiscali.cz\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\n[jstultz: Tweaks to commit message to include full rational]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "2cb763614c1c5baef58045af9304265075f22d0a",
      "tree": "e294e2b1ed1e872a46d651e133996182219f7d16",
      "parents": [
        "8a749de5e32d2b72def93f7bd7a2745580d75872"
      ],
      "author": {
        "name": "Dong Zhu",
        "email": "bluezhudong@gmail.com",
        "time": "Thu Oct 10 15:56:18 2013 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Oct 10 09:59:25 2013 +0200"
      },
      "message": "timer stats: Add a \u0027Collection: active/inactive\u0027 line to timer usage statistics\n\nWe can enable/disable timer statistics collection via:\n\n  echo [1|0] \u003e /proc/timers_stats\n\nand it would be nice if apps had the ability to check\nwhat the current collection status is.\n\nThis patch adds a \u0027Collection: active/inactive\u0027 line to display the\ncurrent timer collection status.\n\nAlso bump up the timer stats version to v0.3.\n\nSigned-off-by: Dong Zhu \u003cbluezhudong@gmail.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nLink: http://lkml.kernel.org/r/20131010075618.GH2139@zhudong.nay.redhat.com\n[ Improved the changelog and the code. ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "8a749de5e32d2b72def93f7bd7a2745580d75872",
      "tree": "e46d9059d0328bcb2faea1c084d17f749338cfe4",
      "parents": [
        "a44eb870f815356dac56adf3a380ee9b94787424",
        "b4042ceaabbd913bc5b397ddd1e396eeb312d72f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Oct 10 06:25:23 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Oct 10 06:25:23 2013 +0200"
      },
      "message": "Merge branch \u0027fortglx/3.13/time\u0027 of git://git.linaro.org/people/jstultz/linux into timers/core\n\nPull more timekeeping items for v3.13 from John Stultz:\n\n  * Small cleanup in the clocksource code.\n\n  * Fix for rtc-pl031 to let it work with alarmtimers.\n\n  * Move arm64 to using the generic sched_clock framework \u0026 resulting\n    cleanup in the generic sched_clock code.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "b4042ceaabbd913bc5b397ddd1e396eeb312d72f",
      "tree": "b3392b81fb965700b1332c93f76d63770a21da46",
      "parents": [
        "65cd4f6c99c1170bd0114dbd71b978012ea44d28"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Thu Jul 18 16:21:19 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Oct 09 16:54:39 2013 -0700"
      },
      "message": "sched_clock: Remove sched_clock_func() hook\n\nNobody is using sched_clock_func() anymore now that sched_clock\nsupports up to 64 bits. Remove the hook so that new code only\nuses sched_clock_register().\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "68e90740284c69292881cd38c7ece6f09a18a58f",
      "tree": "0b0793ae79a06e6e3bb9ae409f077eb6aabe5786",
      "parents": [
        "19f29887a73e32c52171f2725ac2d7561adab62b",
        "4fbcdc813fb9c0324fcff4c75414e717569d965e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Oct 03 07:55:07 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Oct 03 07:57:02 2013 +0200"
      },
      "message": "Merge branch \u0027clockevents/3.13\u0027 of git://git.linaro.org/people/dlezcano/linux into timers/core\n\nPull (mostly) ARM clocksource driver updates from Daniel Lezcano:\n\n\" - Soren Brinkmann added FEAT_PERCPU to a clock device when it is local\n    per cpu. This feature prevents the clock framework to choose a per cpu\n    timer as a broadcast timer. This problem arised when the ARM global\n    timer is used when switching to the broadcast timer which is the case\n    now on Xillinx with its cpuidle driver.\n\n  - Stephen Boyd extended the generic sched_clock code to support 64bit\n    counters and removes the setup_sched_clock deprecation, as that causes\n    lots of warnings since there\u0027s still users in the arch/arm tree. He\n    added also the CLOCK_SOURCE_SUSPEND_NONSTOP flag on the architected\n    timer as they continue counting during suspend.\n\n  - Uwe Kleine-König added some missing __init sections and consolidated the\n    code by moving the of_node_put call from the drivers to the function\n    clocksource_of_init. \"\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "19f29887a73e32c52171f2725ac2d7561adab62b",
      "tree": "2c71002d25c8cca2e9ea92dee3b79682b7ddf8f7",
      "parents": [
        "6c09f6d830d03b78717403e7b42838a2ee2987ae",
        "31c1fc8187158cb80ccd57c19e024c55af901797"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Oct 03 07:53:25 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Oct 03 07:53:25 2013 +0200"
      },
      "message": "Merge branch \u0027timers/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into timers/core\n\nMerge updated full dynticks support from Frederic Weisbecker:\n\n   - support 32-bit systems (full dynticks was 64-bit only before)\n   - support ARM\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "6c09f6d830d03b78717403e7b42838a2ee2987ae",
      "tree": "6436ab6a237578406e004c891e134afd266fb95d",
      "parents": [
        "389e067032fbb96e439abafae848dd447e4cafb4",
        "15c03dd4859ab16f9212238f29dd315654aa94f6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Oct 03 07:52:21 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Oct 03 07:52:21 2013 +0200"
      },
      "message": "Merge tag \u0027v3.12-rc3\u0027 into timers/core\n\nMerge Linux 3.12-rc3 - refresh the tree with the latest fixes before merging new bits.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "245a34962661cd2ce7b4dd6c4aa65d870a589c50",
      "tree": "4357ebc8e9d90ca4bffd30c32438bc679ba1edcd",
      "parents": [
        "6661039dc906bce5d532477f26c7c965f25e5d02"
      ],
      "author": {
        "name": "Soren Brinkmann",
        "email": "soren.brinkmann@xilinx.com",
        "time": "Wed Sep 18 11:48:37 2013 -0700"
      },
      "committer": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Wed Oct 02 11:34:06 2013 +0200"
      },
      "message": "tick: broadcast: Deny per-cpu clockevents from being broadcast sources\n\nOn most ARM systems the per-cpu clockevents are truly per-cpu in\nthe sense that they can\u0027t be controlled on any other CPU besides\nthe CPU that they interrupt. If one of these clockevents were to\nbecome a broadcast source we will run into a lot of trouble\nbecause the broadcast source is enabled on the first CPU to go\ninto deep idle (if that CPU suffers from FEAT_C3_STOP) and that\ncould be a different CPU than what the clockevent is interrupting\n(or even worse the CPU that the clockevent interrupts could be\noffline).\n\nTheoretically it\u0027s possible to support per-cpu clockevents as the\nbroadcast source but so far we haven\u0027t needed this and supporting\nit is rather complicated. Let\u0027s just deny the possibility for now\nuntil this becomes a reality (let\u0027s hope it never does!).\n\nSigned-off-by: Soren Brinkmann \u003csoren.brinkmann@xilinx.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nAcked-by: Michal Simek \u003cmichal.simek@xilinx.com\u003e\n"
    },
    {
      "commit": "ff3fb2541246a83ce56c61d14df30b7a22e4302b",
      "tree": "16fe78c9b833ceae52807860d9a8eb931b58fac5",
      "parents": [
        "554b0004d0ec4fbd11e08668dfc400f211e8d5c5"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@linaro.org",
        "time": "Mon Sep 16 15:28:19 2013 -0700"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 30 15:37:01 2013 +0200"
      },
      "message": "nohz: Drop generic vtime obsolete dependency on CONFIG_64BIT\n\nThe CONFIG_64BIT requirement on vtime can finally be removed\nsince we now depend on HAVE_VIRT_CPU_ACCOUNTING_GEN which\nalready takes care of the arch ability to handle nsecs based\ncputime_t safely.\n\nSigned-off-by: Kevin Hilman \u003ckhilman@linaro.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Arm Linux \u003clinux-arm-kernel@lists.infradead.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "554b0004d0ec4fbd11e08668dfc400f211e8d5c5",
      "tree": "962305270252e407cd887ba9ed949bde346b8f81",
      "parents": [
        "15c03dd4859ab16f9212238f29dd315654aa94f6"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@linaro.org",
        "time": "Mon Sep 16 15:28:21 2013 -0700"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 30 15:35:53 2013 +0200"
      },
      "message": "vtime: Add HAVE_VIRT_CPU_ACCOUNTING_GEN Kconfig\n\nWith VIRT_CPU_ACCOUNTING_GEN, cputime_t becomes 64-bit. In order\nto use that feature, arch code should be audited to ensure there are no\nraces in concurrent read/write of cputime_t. For example,\nreading/writing 64-bit cputime_t on some 32-bit arches may require\nmultiple accesses for low and high value parts, so proper locking\nis needed to protect against concurrent accesses.\n\nTherefore, add CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN which arches can\nenable after they\u0027ve been audited for potential races.\n\nThis option is automatically enabled on 64-bit platforms.\n\nFeature requested by Frederic Weisbecker.\n\nSigned-off-by: Kevin Hilman \u003ckhilman@linaro.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Arm Linux \u003clinux-arm-kernel@lists.infradead.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "9d2cd7048b1ec21309e2d1a32bf50732eb5d5de8",
      "tree": "0fd13d51002dc3d0991cb5bdd6e026970171d457",
      "parents": [
        "7e28b2712e5ebd8d73d25561585bc2ae77da5c30",
        "7bd36014460f793c19e7d6c94dab67b0afcfcb7f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 18 11:24:49 2013 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 18 11:24:49 2013 -0500"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer fix from Ingo Molnar:\n \"An NTP related lockup fix\"\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  timekeeping: Fix HRTICK related deadlock from ntp lock changes\n"
    },
    {
      "commit": "233bcb411cd32d15c4d04271fa06ca8f2dc24eb8",
      "tree": "95c3488b678b00241c97c52dc6015c05e285bf10",
      "parents": [
        "389e067032fbb96e439abafae848dd447e4cafb4"
      ],
      "author": {
        "name": "Elad Wexler",
        "email": "elad.wexler@gmail.com",
        "time": "Thu Sep 12 13:28:54 2013 +0300"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Sep 17 11:19:27 2013 -0700"
      },
      "message": "clocksource: Fix \u0027ret\u0027 data type of sysfs_override_clocksource() and sysfs_unbind_clocksource()\n\nsysfs_override_clocksource(): The expression \u0027if (ret \u003e\u003d 0)\u0027 is always true.\nThis will cause clocksource_select() to always run.\nThus modified ret to be of type ssize_t.\n\nsysfs_unbind_clocksource(): The expression \u0027if (ret \u003c 0)\u0027 is always false.\nSo in case sysfs_get_uname() failed, the expression won\u0027t take an effect.\nThus modified ret to be of type ssize_t.\n\nSigned-off-by: Elad Wexler \u003celad.wexler@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "389e067032fbb96e439abafae848dd447e4cafb4",
      "tree": "9b5fdebaf55ad4e9d195412dbfbf10a7a8042aea",
      "parents": [
        "19c3205ceaffc8f860acf61537fa211087e4b8fc",
        "a97ad0c4b447a132a322cedc3a5f7fa4cab4b304"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Sep 16 18:54:07 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Sep 16 18:54:07 2013 -0700"
      },
      "message": "Merge branch \u0027fortglx/3.12/time\u0027 into fortglx/3.13/time\n\nMerge in the timekeeping changes that missed 3.12\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "19c3205ceaffc8f860acf61537fa211087e4b8fc",
      "tree": "36a232e278c4d7f8d893ba211aec7c8d07743e09",
      "parents": [
        "272b98c6455f00884f0350f775c5342358ebb73f",
        "e7e3ff1bfe9c42ee31172e9afdc0383a9e595e29"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Sep 16 18:52:52 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Sep 16 18:52:52 2013 -0700"
      },
      "message": "Merge branch \u0027fortglx/3.12/sched-clock64-base\u0027 into fortglx/3.13/time\n\nMerge in 64bit sched_clock support that missed 3.12.\n\nConflicts:\n\tkernel/time/sched_clock.c\n\nSigned-off-by: John.Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "7bd36014460f793c19e7d6c94dab67b0afcfcb7f",
      "tree": "aff35c1d376508c4436591df0895111c73cc75b8",
      "parents": [
        "5a8e01f8fa51f5cbce8f37acc050eb2319d12956"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Sep 11 16:50:56 2013 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 12 07:49:51 2013 +0200"
      },
      "message": "timekeeping: Fix HRTICK related deadlock from ntp lock changes\n\nGerlando Falauto reported that when HRTICK is enabled, it is\npossible to trigger system deadlocks. These were hard to\nreproduce, as HRTICK has been broken in the past, but seemed\nto be connected to the timekeeping_seq lock.\n\nSince seqlock/seqcount\u0027s aren\u0027t supported w/ lockdep, I added\nsome extra spinlock based locking and triggered the following\nlockdep output:\n\n[   15.849182] ntpd/4062 is trying to acquire lock:\n[   15.849765]  (\u0026(\u0026pool-\u003elock)-\u003erlock){..-...}, at: [\u003cffffffff810aa9b5\u003e] __queue_work+0x145/0x480\n[   15.850051]\n[   15.850051] but task is already holding lock:\n[   15.850051]  (timekeeper_lock){-.-.-.}, at: [\u003cffffffff810df6df\u003e] do_adjtimex+0x7f/0x100\n\n\u003csnip\u003e\n\n[   15.850051] Chain exists of: \u0026(\u0026pool-\u003elock)-\u003erlock --\u003e \u0026p-\u003epi_lock --\u003e timekeeper_lock\n[   15.850051]  Possible unsafe locking scenario:\n[   15.850051]\n[   15.850051]        CPU0                    CPU1\n[   15.850051]        ----                    ----\n[   15.850051]   lock(timekeeper_lock);\n[   15.850051]                                lock(\u0026p-\u003epi_lock);\n[   15.850051] lock(timekeeper_lock);\n[   15.850051] lock(\u0026(\u0026pool-\u003elock)-\u003erlock);\n[   15.850051]\n[   15.850051]  *** DEADLOCK ***\n\nThe deadlock was introduced by 06c017fdd4dc48451a (\"timekeeping:\nHold timekeepering locks in do_adjtimex and hardpps\") in 3.10\n\nThis patch avoids this deadlock, by moving the call to\nschedule_delayed_work() outside of the timekeeper lock\ncritical section.\n\nReported-by: Gerlando Falauto \u003cgerlando.falauto@keymile.com\u003e\nTested-by: Lin Ming \u003cminggr@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nCc: stable \u003cstable@vger.kernel.org\u003e #3.11, 3.10\nLink: http://lkml.kernel.org/r/1378943457-27314-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "6832d9652f395f7d13003e3884942c40f52ac1fa",
      "tree": "40555ad5eda9700cb973dac4db136ad97f5e8b19",
      "parents": [
        "228abe73ad67665d71eacd6a8a347dd76b0115ae",
        "c2e7fcf53c3cb02b4ada1c66a9bc8a4d97d58aba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 04 09:36:54 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 04 09:36:54 2013 -0700"
      },
      "message": "Merge branch \u0027timers-nohz-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timers/nohz changes from Ingo Molnar:\n \"It mostly contains fixes and full dynticks off-case optimizations, by\n  Frederic Weisbecker\"\n\n* \u0027timers-nohz-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)\n  nohz: Include local CPU in full dynticks global kick\n  nohz: Optimize full dynticks\u0027s sched hooks with static keys\n  nohz: Optimize full dynticks state checks with static keys\n  nohz: Rename a few state variables\n  vtime: Always debug check snapshot source _before_ updating it\n  vtime: Always scale generic vtime accounting results\n  vtime: Optimize full dynticks accounting off case with static keys\n  vtime: Describe overriden functions in dedicated arch headers\n  m68k: hardirq_count() only need preempt_mask.h\n  hardirq: Split preempt count mask definitions\n  context_tracking: Split low level state headers\n  vtime: Fix racy cputime delta update\n  vtime: Remove a few unneeded generic vtime state checks\n  context_tracking: User/kernel broundary cross trace events\n  context_tracking: Optimize context switch off case with static keys\n  context_tracking: Optimize guest APIs off case with static key\n  context_tracking: Optimize main APIs off case with static key\n  context_tracking: Ground setup for static key use\n  context_tracking: Remove full dynticks\u0027 hacky dependency on wide context tracking\n  nohz: Only enable context tracking on full dynticks CPUs\n  ...\n"
    },
    {
      "commit": "7d992feb7694a21ee81f22894b455dadd5d1c110",
      "tree": "d0f0961186b1c31c536a26a7f986ad7ca677453b",
      "parents": [
        "6e4664525b1db28f8c4e1130957f70a94c19213e",
        "25f27ce4a6a4995c8bdd69b4b2180465ed5ad2b8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Sep 03 07:41:11 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Sep 03 07:41:11 2013 +0200"
      },
      "message": "Merge branch \u0027rcu/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu\n\nPull RCU updates from Paul E. McKenney:\n\n\"\n * Update RCU documentation.  These were posted to LKML at\n   https://lkml.org/lkml/2013/8/19/611.\n\n * Miscellaneous fixes.  These were posted to LKML at\n   https://lkml.org/lkml/2013/8/19/619.\n\n * Full-system idle detection.  This is for use by Frederic\n   Weisbecker\u0027s adaptive-ticks mechanism.  Its purpose is\n   to allow the timekeeping CPU to shut off its tick when\n   all other CPUs are idle.  These were posted to LKML at\n   https://lkml.org/lkml/2013/8/19/648.\n\n * Improve rcutorture test coverage.  These were posted to LKML at\n   https://lkml.org/lkml/2013/8/19/675.\n\"\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "0edd1b1784cbdad55aca2c1293be018f53c0ab1d",
      "tree": "61e17002ce447f0042a65429cfa33c6462f872a1",
      "parents": [
        "217af2a2ffbfc1498d1cf3a89fa478b5632df8f7"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jun 21 16:37:22 2013 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 31 14:43:50 2013 -0700"
      },
      "message": "nohz_full: Add full-system-idle state machine\n\nThis commit adds the state machine that takes the per-CPU idle data\nas input and produces a full-system-idle indication as output.  This\nstate machine is driven out of RCU\u0027s quiescent-state-forcing\nmechanism, which invokes rcu_sysidle_check_cpu() to collect per-CPU\nidle state and then rcu_sysidle_report() to drive the state machine.\n\nThe full-system-idle state is sampled using rcu_sys_is_idle(), which\nalso drives the state machine if RCU is idle (and does so by forcing\nRCU to become non-idle).  This function returns true if all but the\ntimekeeping CPU (tick_do_timer_cpu) are idle and have been idle long\nenough to avoid memory contention on the full_sysidle_state state\nvariable.  The rcu_sysidle_force_exit() may be called externally\nto reset the state machine back into non-idle state.\n\nFor large systems the state machine is driven out of RCU\u0027s\nforce-quiescent-state logic, which provides good scalability at the price\nof millisecond-scale latencies on the transition to full-system-idle\nstate.  This is not so good for battery-powered systems, which are usually\nsmall enough that they don\u0027t need to care about scalability, but which\ndo care deeply about energy efficiency.  Small systems therefore drive\nthe state machine directly out of the idle-entry code.  The number of\nCPUs in a \"small\" system is defined by a new NO_HZ_FULL_SYSIDLE_SMALL\nKconfig parameter, which defaults to 8.  Note that this is a build-time\ndefinition.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n[ paulmck: Use true and false for boolean constants per Lai Jiangshan. ]\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n[ paulmck: Simplify logic and provide better comments for memory barriers,\n  based on review comments and questions by Lai Jiangshan. ]\n"
    },
    {
      "commit": "84a78a6504f5c5394a8e558702e5b54131f01d14",
      "tree": "bd56909861d573e35ef940182891fe1eb210fec8",
      "parents": [
        "fa8218def1b1a16f0a410e2c1c767b4738cc81fa"
      ],
      "author": {
        "name": "Nathan Zimmer",
        "email": "nzimmer@sgi.com",
        "time": "Wed Aug 28 16:35:14 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 28 19:26:38 2013 -0700"
      },
      "message": "timer_list: correct the iterator for timer_list\n\nCorrect an issue with /proc/timer_list reported by Holger.\n\nWhen reading from the proc file with a sufficiently small buffer, 2k so\nnot really that small, there was one could get hung trying to read the\nfile a chunk at a time.\n\nThe timer_list_start function failed to account for the possibility that\nthe offset was adjusted outside the timer_list_next.\n\nSigned-off-by: Nathan Zimmer \u003cnzimmer@sgi.com\u003e\nReported-by: Holger Hans Peter Freyther \u003cholger@freyther.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Berke Durak \u003cberke.durak@xiphos.com\u003e\nCc: Jeff Layton \u003cjlayton@redhat.com\u003e\nTested-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@vger.kernel.org\u003e # 3.10.x\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a97ad0c4b447a132a322cedc3a5f7fa4cab4b304",
      "tree": "75d527386d058d33bef205dec11ed277ed8d9188",
      "parents": [
        "397bbf6dee50bb1f07cbdb464c41b0f5b7a85493"
      ],
      "author": {
        "name": "Miroslav Lichvar",
        "email": "mlichvar@redhat.com",
        "time": "Thu Aug 01 19:31:35 2013 +0200"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Aug 22 12:33:38 2013 -0700"
      },
      "message": "ntp: Make periodic RTC update more reliable\n\nThe current code requires that the scheduled update of the RTC happens\nin the closest tick to the half of the second. This seems to be\ndifficult to achieve reliably. The scheduled work may be missing the\ntarget time by a tick or two and be constantly rescheduled every second.\n\nRelax the limit to 10 ticks. As a typical RTC drifts in the 11-minute\nupdate interval by several milliseconds, this shouldn\u0027t affect the\noverall accuracy of the RTC much.\n\nSigned-off-by: Miroslav Lichvar \u003cmlichvar@redhat.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "e91dade52b590d821e83bb494df20c93e5384790",
      "tree": "256ed456cb1d21776624020485ce1a79814db29d",
      "parents": [
        "fbf21849edaf0cd2a9b33307ab965757a93b8d75",
        "ae920eb24277e4a174a3ca575ce42b98b18a6748"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 19 09:17:35 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 19 09:17:35 2013 -0700"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer fixes from Ingo Molnar:\n \"Three small fixlets\"\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  nohz: fix compile warning in tick_nohz_init()\n  nohz: Do not warn about unstable tsc unless user uses nohz_full\n  sched_clock: Fix integer overflow\n"
    },
    {
      "commit": "b44379af1cf40050794832c38ea6a64e07eb5087",
      "tree": "2f7fb3764976a4a0e2d2cf7a7f814564361203a4",
      "parents": [
        "8bdf7a252b6398dbd4beaa7a2ba0904cea0abd04"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jun 21 11:08:45 2013 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Aug 18 18:07:02 2013 -0700"
      },
      "message": "nohz_full: Add Kconfig parameter for scalable detection of all-idle state\n\nAt least one CPU must keep the scheduling-clock tick running for\ntimekeeping purposes whenever there is a non-idle CPU.  However, with\nthe new nohz_full adaptive-idle machinery, it is difficult to distinguish\nbetween all CPUs really being idle as opposed to all non-idle CPUs being\nin adaptive-ticks mode.  This commit therefore adds a Kconfig parameter\nas a first step towards enabling a scalable detection of full-system\nidle state.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n[ paulmck: Update help text per Frederic Weisbecker. ]\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "c2e7fcf53c3cb02b4ada1c66a9bc8a4d97d58aba",
      "tree": "84cfdcc6d8f29883e7a7d93e2d6028bffa15ff85",
      "parents": [
        "6f1d657668ac3041b65265d3653d7e9172a0d603"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Aug 02 18:29:56 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri Aug 16 17:55:33 2013 +0200"
      },
      "message": "nohz: Include local CPU in full dynticks global kick\n\ntick_nohz_full_kick_all() is useful to notify all full dynticks\nCPUs that there is a system state change to checkout before\nre-evaluating the need for the tick.\n\nUnfortunately this is implemented using smp_call_function_many()\nthat ignores the local CPU. This CPU also needs to re-evaluate\nthe tick.\n\non_each_cpu_mask() is not useful either because we don\u0027t want to\nre-evaluate the tick state in place but asynchronously from an IPI\nto avoid messing up with any random locking scenario.\n\nSo lets call tick_nohz_full_kick() from tick_nohz_full_kick_all()\nso that the usual irq work takes care of it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1375460996-16329-4-git-send-email-fweisbec@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "6f1d657668ac3041b65265d3653d7e9172a0d603",
      "tree": "6e837c683783708637cc4caf9de759166c7469b7",
      "parents": [
        "d4e4ab86bcba5a72779c43dc1459f71fea3d89c8",
        "d13508f9440e46dccac6a2dd48d51a73b2207482"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Aug 14 17:58:56 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Aug 14 17:58:56 2013 +0200"
      },
      "message": "Merge branch \u0027timers/nohz-v3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into timers/nohz\n\nPull nohz improvements from Frederic Weisbecker:\n\n \" It mostly contains fixes and full dynticks off-case optimizations. I believe that\n   distros want to enable this feature so it seems important to optimize the case\n   where the \"nohz_full\u003d\" parameter is empty. ie: I\u0027m trying to remove any performance\n   regression that comes with NO_HZ_FULL\u003dy when the feature is not used.\n\n   This patchset improves the current situation a lot (off-case appears to be around 11% faster\n   with hackbench, although I guess it may vary depending on the configuration but it should be\n   significantly faster in any case) now there is still some work to do: I can still observe a\n   remaining loss of 1.6% throughput seen with hackbench compared to CONFIG_NO_HZ_FULL\u003dn. \"\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "d13508f9440e46dccac6a2dd48d51a73b2207482",
      "tree": "880feb6b503b5c450ba27b589aae7461626ffc74",
      "parents": [
        "460775df4680b4593d8449bc171008578625a850"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 24 23:52:27 2013 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Aug 14 17:14:58 2013 +0200"
      },
      "message": "nohz: Optimize full dynticks\u0027s sched hooks with static keys\n\nScheduler IPIs and task context switches are serious fast path.\nLet\u0027s try to hide as much as we can the impact of full\ndynticks APIs\u0027 off case that are called on these sites\nthrough the use of static keys.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\n"
    },
    {
      "commit": "460775df4680b4593d8449bc171008578625a850",
      "tree": "9b6adb04b9751c70c05bfa97761bd5f2a5c9d1aa",
      "parents": [
        "73867dcd0792ad14fb31bfe73d09d9a4576f7fc2"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 24 23:52:27 2013 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Aug 14 17:14:57 2013 +0200"
      },
      "message": "nohz: Optimize full dynticks state checks with static keys\n\nThese APIs are frequenctly accessed and priority is given\nto optimize the full dynticks off-case in order to let\ndistros enable this feature without suffering from\nsignificant performance regressions.\n\nLet\u0027s inline these APIs and optimize them with static keys.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\n"
    },
    {
      "commit": "73867dcd0792ad14fb31bfe73d09d9a4576f7fc2",
      "tree": "e15ed0b725226805eaa3f1852c97c8257761fe8e",
      "parents": [
        "af2350bd12096dfd04e1090b90bfecea1f75f84e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 24 23:31:00 2013 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Aug 14 17:14:57 2013 +0200"
      },
      "message": "nohz: Rename a few state variables\n\nRename the full dynticks\u0027s cpumask and cpumask state variables\nto some more exportable names.\n\nThese will be used later from global headers to optimize\nthe main full dynticks APIs in conjunction with static keys.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\n"
    },
    {
      "commit": "d84d27a491880b9902b45c09be8d9e9464fb9b74",
      "tree": "42d5c777dba71b3cfb119d918ff5ae90f4d8a20c",
      "parents": [
        "2e70933866ace52091a3c11a5c104c063ab0c445"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 24 21:59:29 2013 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Aug 13 00:54:34 2013 +0200"
      },
      "message": "context_tracking: Remove full dynticks\u0027 hacky dependency on wide context tracking\n\nNow that the full dynticks subsystem only enables the context tracking\non full dynticks CPUs, lets remove the dependency on CONTEXT_TRACKING_FORCE\n\nThis dependency was a hack to enable the context tracking widely for the\nfull dynticks susbsystem until the latter becomes able to enable it in a\nmore CPU-finegrained fashion.\n\nNow CONTEXT_TRACKING_FORCE only stands for testing on archs that\nwork on support for the context tracking while full dynticks can\u0027t be\nused yet due to unmet dependencies. It simulates a system where all CPUs\nare full dynticks so that RCU user extended quiescent states and dynticks\ncputime accounting can be tested on the given arch.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\n"
    },
    {
      "commit": "2e70933866ace52091a3c11a5c104c063ab0c445",
      "tree": "f931632cac249a8ca504eb4b0fa9373441d9cc89",
      "parents": [
        "d65ec12127a5b6c6d7f5331c78157dab98a20ff0"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 10 00:55:25 2013 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Aug 13 00:54:07 2013 +0200"
      },
      "message": "nohz: Only enable context tracking on full dynticks CPUs\n\nThe context tracking subsystem has the ability to selectively\nenable the tracking on any defined subset of CPU. This means that\nwe can define a CPU range that doesn\u0027t run the context tracking\nand another range that does.\n\nNow what we want in practice is to enable the tracking on full\ndynticks CPUs only. In order to perform this, we just need to pass\nour full dynticks CPU range selection from the full dynticks\nsubsystem to the context tracking.\n\nThis way we can spare the overhead of RCU user extended quiescent\nstate and vtime maintainance on the CPUs that are outside the\nfull dynticks range. Just keep in mind the raw context tracking\nitself is still necessary everywhere.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\n"
    },
    {
      "commit": "ae920eb24277e4a174a3ca575ce42b98b18a6748",
      "tree": "c93ff42bf92a005854b06a932704ae1367aa553c",
      "parents": [
        "365d8c001f8eaf18fe9b8c53d2ced4489bcf6b0a",
        "53c035204253efe373d9ff166fae6147e8c693b6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Aug 12 18:08:23 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Aug 12 18:08:23 2013 +0200"
      },
      "message": "Merge branch \u0027fortglx/3.11/time\u0027 of git://git.linaro.org/people/jstultz/linux into timers/urgent\n\nPull small fix for v3.11 from John Stultz.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "e7e3ff1bfe9c42ee31172e9afdc0383a9e595e29",
      "tree": "3d3adc5cb561e0923947b7b200c29ddc79e050f5",
      "parents": [
        "a08ca5d1089da03724f96fa0870c64968e66765b"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Thu Jul 18 16:21:17 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jul 30 11:24:21 2013 -0700"
      },
      "message": "sched_clock: Add support for \u003e32 bit sched_clock\n\nThe ARM architected system counter has at least 56 usable bits.\nAdd support for counters with more than 32 bits to the generic\nsched_clock implementation so we can increase the time between\nwakeups due to dealing with wrap-around on these devices while\nbenefiting from the irqtime accounting and suspend/resume\nhandling that the generic sched_clock code already has. On my\nsystem using 56 bits over 32 bits changes the wraparound time\nfrom a few minutes to an hour. For faster running counters (GHz\nrange) this is even more important because we may not be able to\nexecute the timer in time to deal with the wraparound if only 32\nbits are used.\n\nWe choose a maxsec value of 3600 seconds because we assume no\nsystem will go idle for more than an hour. In the future we may\nneed to increase this value.\n\nNote: All users should switch over to the 64-bit read function so\nwe can remove setup_sched_clock() in favor of sched_clock_register().\n\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "a08ca5d1089da03724f96fa0870c64968e66765b",
      "tree": "763e988f9f4d412681f2859bc12370edbfe565de",
      "parents": [
        "85c3d2dd15be4d577a37ffb8bbbd019fc8e3280a"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Thu Jul 18 16:21:16 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jul 30 11:24:20 2013 -0700"
      },
      "message": "sched_clock: Use an hrtimer instead of timer\n\nIn the next patch we\u0027re going to increase the number of bits that\nthe generic sched_clock can handle to be greater than 32. With\nmore than 32 bits the wraparound time can be larger than what can\nfit into the units that msecs_to_jiffies takes (unsigned int).\nLuckily, the wraparound is initially calculated in nanoseconds\nwhich we can easily use with hrtimers, so switch to using an\nhrtimer.\n\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n[jstultz: Fixup hrtimer intitialization order issue]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "85c3d2dd15be4d577a37ffb8bbbd019fc8e3280a",
      "tree": "db6f0d5ed69e55b7509793c111dc0dc5a57d43fd",
      "parents": [
        "87d8b9eb7eb6669aad6435a51e9862362141ba76"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Thu Jul 18 16:21:15 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jul 30 11:24:20 2013 -0700"
      },
      "message": "sched_clock: Use seqcount instead of rolling our own\n\nWe\u0027re going to increase the cyc value to 64 bits in the near\nfuture. Doing that is going to break the custom seqcount\nimplementation in the sched_clock code because 64 bit numbers\naren\u0027t guaranteed to be atomic. Replace the cyc_copy with a\nseqcount to avoid this problem.\n\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nAcked-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "87d8b9eb7eb6669aad6435a51e9862362141ba76",
      "tree": "904750465607175129393328e299fb9474adb604",
      "parents": [
        "ad81f0545ef01ea651886dddac4bef6cec930092"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Thu Jul 18 16:21:14 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jul 30 11:24:20 2013 -0700"
      },
      "message": "clocksource: Extract max nsec calculation into separate function\n\nWe need to calculate the same number in the clocksource code and\nthe sched_clock code, so extract this code into its own function.\nWe also drop the min_t and just use min() because the two types\nare the same.\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "148519120c6d1f19ad53349683aeae9f228b0b8d",
      "tree": "6d585444bbc27d2752ac1eb69180b7312150c5a5",
      "parents": [
        "228b30234f258a193317874854eee1ca7807186e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Jul 27 01:41:34 2013 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Mon Jul 29 13:32:29 2013 +0200"
      },
      "message": "Revert \"cpuidle: Quickly notice prediction failure for repeat mode\"\n\nRevert commit 69a37bea (cpuidle: Quickly notice prediction failure for\nrepeat mode), because it has been identified as the source of a\nsignificant performance regression in v3.8 and later as explained by\nJeremy Eder:\n\n  We believe we\u0027ve identified a particular commit to the cpuidle code\n  that seems to be impacting performance of variety of workloads.\n  The simplest way to reproduce is using netperf TCP_RR test, so\n  we\u0027re using that, on a pair of Sandy Bridge based servers.  We also\n  have data from a large database setup where performance is also\n  measurably/positively impacted, though that test data isn\u0027t easily\n  share-able.\n\n  Included below are test results from 3 test kernels:\n\n  kernel       reverts\n  -----------------------------------------------------------\n  1) vanilla   upstream (no reverts)\n\n  2) perfteam2 reverts e11538d1f03914eb92af5a1a378375c05ae8520c\n\n  3) test      reverts 69a37beabf1f0a6705c08e879bdd5d82ff6486c4\n                       e11538d1f03914eb92af5a1a378375c05ae8520c\n\n  In summary, netperf TCP_RR numbers improve by approximately 4%\n  after reverting 69a37beabf1f0a6705c08e879bdd5d82ff6486c4.  When\n  69a37beabf1f0a6705c08e879bdd5d82ff6486c4 is included, C0 residency\n  never seems to get above 40%.  Taking that patch out gets C0 near\n  100% quite often, and performance increases.\n\n  The below data are histograms representing the %c0 residency @\n  1-second sample rates (using turbostat), while under netperf test.\n\n  - If you look at the first 4 histograms, you can see %c0 residency\n    almost entirely in the 30,40% bin.\n  - The last pair, which reverts 69a37beabf1f0a6705c08e879bdd5d82ff6486c4,\n    shows %c0 in the 80,90,100% bins.\n\n  Below each kernel name are netperf TCP_RR trans/s numbers for the\n  particular kernel that can be disclosed publicly, comparing the 3\n  test kernels.  We ran a 4th test with the vanilla kernel where\n  we\u0027ve also set /dev/cpu_dma_latency\u003d0 to show overall impact\n  boosting single-threaded TCP_RR performance over 11% above\n  baseline.\n\n  3.10-rc2 vanilla RX + c0 lock (/dev/cpu_dma_latency\u003d0):\n  TCP_RR trans/s 54323.78\n\n  -----------------------------------------------------------\n  3.10-rc2 vanilla RX (no reverts)\n  TCP_RR trans/s 48192.47\n\n  Receiver %c0\n      0.0000 -    10.0000 [     1]: *\n     10.0000 -    20.0000 [     0]:\n     20.0000 -    30.0000 [     0]:\n     30.0000 -    40.0000 [    59]:\n  ***********************************************************\n     40.0000 -    50.0000 [     1]: *\n     50.0000 -    60.0000 [     0]:\n     60.0000 -    70.0000 [     0]:\n     70.0000 -    80.0000 [     0]:\n     80.0000 -    90.0000 [     0]:\n     90.0000 -   100.0000 [     0]:\n\n  Sender %c0\n      0.0000 -    10.0000 [     1]: *\n     10.0000 -    20.0000 [     0]:\n     20.0000 -    30.0000 [     0]:\n     30.0000 -    40.0000 [    11]: ***********\n     40.0000 -    50.0000 [    49]:\n  *************************************************\n     50.0000 -    60.0000 [     0]:\n     60.0000 -    70.0000 [     0]:\n     70.0000 -    80.0000 [     0]:\n     80.0000 -    90.0000 [     0]:\n     90.0000 -   100.0000 [     0]:\n\n  -----------------------------------------------------------\n  3.10-rc2 perfteam2 RX (reverts commit\n  e11538d1f03914eb92af5a1a378375c05ae8520c)\n  TCP_RR trans/s 49698.69\n\n  Receiver %c0\n      0.0000 -    10.0000 [     1]: *\n     10.0000 -    20.0000 [     1]: *\n     20.0000 -    30.0000 [     0]:\n     30.0000 -    40.0000 [    59]:\n  ***********************************************************\n     40.0000 -    50.0000 [     0]:\n     50.0000 -    60.0000 [     0]:\n     60.0000 -    70.0000 [     0]:\n     70.0000 -    80.0000 [     0]:\n     80.0000 -    90.0000 [     0]:\n     90.0000 -   100.0000 [     0]:\n\n  Sender %c0\n      0.0000 -    10.0000 [     1]: *\n     10.0000 -    20.0000 [     0]:\n     20.0000 -    30.0000 [     0]:\n     30.0000 -    40.0000 [     2]: **\n     40.0000 -    50.0000 [    58]:\n  **********************************************************\n     50.0000 -    60.0000 [     0]:\n     60.0000 -    70.0000 [     0]:\n     70.0000 -    80.0000 [     0]:\n     80.0000 -    90.0000 [     0]:\n     90.0000 -   100.0000 [     0]:\n\n  -----------------------------------------------------------\n  3.10-rc2 test RX (reverts 69a37beabf1f0a6705c08e879bdd5d82ff6486c4\n  and e11538d1f03914eb92af5a1a378375c05ae8520c)\n  TCP_RR trans/s 47766.95\n\n  Receiver %c0\n      0.0000 -    10.0000 [     1]: *\n     10.0000 -    20.0000 [     1]: *\n     20.0000 -    30.0000 [     0]:\n     30.0000 -    40.0000 [    27]: ***************************\n     40.0000 -    50.0000 [     2]: **\n     50.0000 -    60.0000 [     0]:\n     60.0000 -    70.0000 [     2]: **\n     70.0000 -    80.0000 [     0]:\n     80.0000 -    90.0000 [     0]:\n     90.0000 -   100.0000 [    28]: ****************************\n\n  Sender:\n      0.0000 -    10.0000 [     1]: *\n     10.0000 -    20.0000 [     0]:\n     20.0000 -    30.0000 [     0]:\n     30.0000 -    40.0000 [    11]: ***********\n     40.0000 -    50.0000 [     0]:\n     50.0000 -    60.0000 [     1]: *\n     60.0000 -    70.0000 [     0]:\n     70.0000 -    80.0000 [     3]: ***\n     80.0000 -    90.0000 [     7]: *******\n     90.0000 -   100.0000 [    38]: **************************************\n\n  These results demonstrate gaining back the tendency of the CPU to\n  stay in more responsive, performant C-states (and thus yield\n  measurably better performance), by reverting commit\n  69a37beabf1f0a6705c08e879bdd5d82ff6486c4.\n\nRequested-by: Jeremy Eder \u003cjeder@redhat.com\u003e\nTested-by: Len Brown \u003clen.brown@intel.com\u003e\nCc: 3.8+ \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "ca06416b2b4fa562cd3c3f9eb4198c3b2a983342",
      "tree": "806ed622bd715e99e091d7742c78cc52d5acfb61",
      "parents": [
        "543487c7a2670bb0d96c00673a44b74360e3b6c1"
      ],
      "author": {
        "name": "Li Zhong",
        "email": "zhong@linux.vnet.ibm.com",
        "time": "Tue Jul 16 12:18:47 2013 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 24 20:30:33 2013 +0200"
      },
      "message": "nohz: fix compile warning in tick_nohz_init()\n\ncpu is not used after commit 5b8621a68fdcd2baf1d3b413726f913a5254d46a\n\nSigned-off-by: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "543487c7a2670bb0d96c00673a44b74360e3b6c1",
      "tree": "91aee197ada7a72a73ee34eaa339914be5468039",
      "parents": [
        "3b2f64d00c46e1e4e9bd0bb9bb12619adac27a4b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 16 10:22:12 2013 -0400"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jul 24 20:30:33 2013 +0200"
      },
      "message": "nohz: Do not warn about unstable tsc unless user uses nohz_full\n\nIf the user enables CONFIG_NO_HZ_FULL and runs the kernel on a machine\nwith an unstable TSC, it will produce a WARN_ON dump as well as taint\nthe kernel. This is a bit extreme for a kernel that just enables a\nfeature but doesn\u0027t use it.\n\nThe warning should only happen if the user tries to use the feature by\neither adding nohz_full to the kernel command line, or by enabling\nCONFIG_NO_HZ_FULL_ALL that makes nohz used on all CPUs at boot up. Note,\nthis second feature should not (yet) be used by distros or anyone that\ndoesn\u0027t care if NO_HZ is used or not.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "53c035204253efe373d9ff166fae6147e8c693b6",
      "tree": "3a12ce29c5321a4b390550cbf344c46c5cee9746",
      "parents": [
        "b0ec636c93ddd77235bf0f023a8a95d78cb6cafe"
      ],
      "author": {
        "name": "Baruch Siach",
        "email": "baruch@tkos.co.il",
        "time": "Wed Jul 17 12:46:53 2013 +0300"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Jul 22 16:24:22 2013 -0700"
      },
      "message": "sched_clock: Fix integer overflow\n\nThe expression \u0027(1 \u003c\u003c 32)\u0027 happens to evaluate as 0 on ARM, but\nit evaluates as 1 on xtensa and x86_64. This zeros sched_clock_mask,\nand breaks sched_clock().\n\nSet the type of 1 to \u0027unsigned long long\u0027 to get the value we need.\n\nReported-by: Max Filippov \u003cjcmvbkbc@gmail.com\u003e\nTested-by: Max Filippov \u003cjcmvbkbc@gmail.com\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Baruch Siach \u003cbaruch@tkos.co.il\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "397bbf6dee50bb1f07cbdb464c41b0f5b7a85493",
      "tree": "993a7955640d8d71dd8d07502a08655575344231",
      "parents": [
        "14d0e347ea2db51144a8800d7c7576db96f69983"
      ],
      "author": {
        "name": "Prarit Bhargava",
        "email": "prarit@redhat.com",
        "time": "Fri Feb 22 15:08:56 2013 -0500"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Jul 22 16:00:17 2013 -0700"
      },
      "message": "clocksource: Fix !CONFIG_CLOCKSOURCE_WATCHDOG compile\n\nIf I explicitly disable the clocksource watchdog in the x86 Kconfig,\nthe x86 kernel will not compile unless this is properly defined.\n\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: x86@kernel.org\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "0db0628d90125193280eabb501c94feaf48fa9ab",
      "tree": "0e0ef0c4eac101d25a3bd125c4a9200ac4d294c0",
      "parents": [
        "49fb4c6290c70c418a5c25eee996d6b55ea132d6"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Jun 19 14:53:51 2013 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Jul 14 19:36:59 2013 -0400"
      },
      "message": "kernel: delete __cpuinit usage from all core kernel files\n\nThe __cpuinit type of throwaway sections might have made sense\nsome time ago when RAM was more constrained, but now the savings\ndo not offset the cost and complications.  For example, the fix in\ncommit 5e427ec2d0 (\"x86: Fix bit corruption at CPU resume time\")\nis a good example of the nasty type of bugs that can be created\nwith improper use of the various __init prefixes.\n\nAfter a discussion on LKML[1] it was decided that cpuinit should go\nthe way of devinit and be phased out.  Once all the users are gone,\nwe can then finally remove the macros themselves from linux/init.h.\n\nThis removes all the uses of the __cpuinit macros from C files in\nthe core kernel directories (kernel, init, lib, mm, and include)\nthat don\u0027t really have a specific maintainer.\n\n[1] https://lkml.org/lkml/2013/5/20/589\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "a272dcca1802a7e265a56e60b0d0a6715b0a8ac2",
      "tree": "3bc6e5294be0ff0fed757752dab4b2e4d52dde03",
      "parents": [
        "f2006e27396f55276f24434f56e208d86e7f9908"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Thu Jul 11 07:00:59 2013 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jul 12 12:35:40 2013 +0200"
      },
      "message": "tick: broadcast: Check broadcast mode on CPU hotplug\n\nOn ARM systems the dummy clockevent is registered with the cpu\nhotplug notifier chain before any other per-cpu clockevent. This\nhas the side-effect of causing the dummy clockevent to be\nregistered first in every hotplug sequence. Because the dummy is\nfirst, we\u0027ll try to turn the broadcast source on but the code in\ntick_device_uses_broadcast() assumes the broadcast source is in\nperiodic mode and calls tick_broadcast_start_periodic()\nunconditionally.\n\nOn boot this isn\u0027t a problem because we typically haven\u0027t\nswitched into oneshot mode yet (if at all). During hotplug, if\nthe broadcast source isn\u0027t in periodic mode we\u0027ll replace the\nbroadcast oneshot handler with the broadcast periodic handler and\nstart emulating oneshot mode when we shouldn\u0027t. Due to the way\nthe broadcast oneshot handler programs the next_event it\u0027s\npossible for it to contain KTIME_MAX and cause us to hang the\nsystem when the periodic handler tries to program the next tick.\nFix this by using the appropriate function to start the broadcast\nsource.\n\nReported-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nTested-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: Mark Rutland \u003cMark.Rutland@arm.com\u003e\nCc: Marc Zyngier \u003cmarc.zyngier@arm.com\u003e\nCc: ARM kernel mailing list \u003clinux-arm-kernel@lists.infradead.org\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Joseph Lo \u003cjosephl@nvidia.com\u003e\nLink: http://lkml.kernel.org/r/20130711140059.GA27430@codeaurora.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f2006e27396f55276f24434f56e208d86e7f9908",
      "tree": "71896db916d33888b4286f80117d3cac0da40e6d",
      "parents": [
        "e399eb56a6110e13f97e644658648602e2b08de7",
        "9903883f1dd6e86f286b7bfa6e4b423f98c1cd9e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jul 12 12:34:42 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jul 12 12:34:42 2013 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into timers/urgent\n\nGet upstream changes so we can apply fixes against them\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e399eb56a6110e13f97e644658648602e2b08de7",
      "tree": "edcd90e3134a5409339794f43d5dd4453cd72586",
      "parents": [
        "7c6809ff2bd63d4c97ce9e0b94d39d5180842c48",
        "5b8621a68fdcd2baf1d3b413726f913a5254d46a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Jul 10 10:43:25 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Jul 10 10:43:25 2013 +0200"
      },
      "message": "Merge branch \u0027timers/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into timers/urgent\n\nPull nohz updates/fixes from Frederic Weisbecker:\n\n\u0027 Note that \"watchdog: Boot-disable by default on full dynticks\" is a temporary\n  solution to solve the issue with the watchdog that prevents the tick from\n  stopping. This is to make sure that 3.11 doesn\u0027t have that problem as several\n  people complained about it.\n\n  A proper and longer term solution has been proposed by Peterz:\n\n          http://lkml.kernel.org/r/20130618103632.GO3204@twins.programming.kicks-ass.net\n\u0027\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "332962f2c88868ed3cdab466870baaa34dd58612",
      "tree": "d670139ba37bca7b8f5a5179f401c8694636285c",
      "parents": [
        "2b0f89317e99735bbf32eaede81f707f98ab1b5e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jul 04 22:46:45 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jul 05 11:09:28 2013 +0200"
      },
      "message": "clocksource: Reselect clocksource when watchdog validated high-res capability\n\nUp to commit 5d33b883a (clocksource: Always verify highres capability)\nwe had no sanity check when selecting a clocksource, which prevented\nthat a non highres capable clocksource is used when the system already\nswitched to highres/nohz mode.\n\nThe new sanity check works as Alex and Tim found out. It prevents the\nTSC from being used. This happens because on x86 the boot process\nlooks like this:\n\n tsc_start_freqency_validation(TSC);\n clocksource_register(HPET);\n clocksource_done_booting();\n\tclocksource_select()\n\t\tSelects HPET which is valid for high-res\n\n switch_to_highres();\n\n clocksource_register(TSC);\n \tTSC is not selected, because it is not yet\n\tflagged as VALID_HIGH_RES\n\n clocksource_watchdog()\n\tValidates TSC for highres, but that does not make TSC\n\tthe current clocksource.\n\nBefore the sanity check was added, we installed TSC unvalidated which\nworked most of the time. If the TSC was really detected as unstable,\nthen the unstable logic removed it and installed HPET again.\n\nThe sanity check is correct and needed. So the watchdog needs to kick\na reselection of the clocksource, when it qualifies TSC as a valid\nhigh res clocksource.\n\nTo solve this, we mark the clocksource which got the flag\nCLOCK_SOURCE_VALID_FOR_HRES set by the watchdog with an new flag\nCLOCK_SOURCE_RESELECT and trigger the watchdog thread. The watchdog\nthread evaluates the flag and invokes clocksource_select() when set.\n\nTo avoid that the clocksource_done_booting() code, which is about to\ninstall the first real clocksource anyway, needs to go through\nclocksource_select and tick_oneshot_notify() pointlessly, split out\nthe clocksource_watchdog_kthread() list walk code and invoke the\nselect/notify only when called from clocksource_watchdog_kthread().\n\nSo clocksource_done_booting() can utilize the same splitout code\nwithout the select/notify invocation and the clocksource_mutex\nunlock/relock dance.\n\nReported-and-tested-by: Alex Shi \u003calex.shi@intel.com\u003e\nCc: Hans Peter Anvin \u003chpa@linux.intel.com\u003e\nCc: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: Andi Kleen \u003candi.kleen@intel.com\u003e\nTested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nLink: http://lkml.kernel.org/r/alpine.DEB.2.02.1307042239150.11637@ionos.tec.linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "2b0f89317e99735bbf32eaede81f707f98ab1b5e",
      "tree": "16daa236e21876b11f1c0b9256cd4046aadba020",
      "parents": [
        "07bd1172902e782f288e4d44b1fde7dec0f08b6f",
        "fa18f7bde3ad4568d1d343b60d963bfbd8dc3991"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jul 04 23:11:22 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jul 04 23:11:22 2013 +0200"
      },
      "message": "Merge branch \u0027timers/posix-cpu-timers-for-tglx\u0027 of\ngit://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into timers/core\n\nFrederic sayed: \"Most of these patches have been hanging around for\nseveral month now, in -mmotm for a significant chunk. They already\nmissed a few releases.\"\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "07bd1172902e782f288e4d44b1fde7dec0f08b6f",
      "tree": "f5d0913e170ce7efff96512a90f310b3f43530f9",
      "parents": [
        "1f73a9806bdd07a5106409bbcab3884078bd34fe"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jul 01 22:14:10 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 02 14:26:45 2013 +0200"
      },
      "message": "tick: Sanitize broadcast control logic\n\nThe recent implementation of a generic dummy timer resulted in a\ndifferent registration order of per cpu local timers which made the\nbroadcast control logic go belly up.\n\nIf the dummy timer is the first clock event device which is registered\nfor a CPU, then it is installed, the broadcast timer is initialized\nand the CPU is marked as broadcast target.\n\nIf a real clock event device is installed after that, we can fail to\ntake the CPU out of the broadcast mask. In the worst case we end up\nwith two periodic timer events firing for the same CPU. One from the\nper cpu hardware device and one from the broadcast.\n\nNow the problem is that we have no way to distinguish whether the\nsystem is in a state which makes broadcasting necessary or the\nbroadcast bit was set due to the nonfunctional dummy timer\ninstallment.\n\nTo solve this we need to keep track of the system state seperately and\nprovide a more detailed decision logic whether we keep the CPU in\nbroadcast mode or not.\n\nThe old decision logic only clears the broadcast mode, if the newly\ninstalled clock event device is not affected by power states.\n\nThe new logic clears the broadcast mode if one of the following is\ntrue:\n\n  - The new device is not affected by power states.\n\n  - The system is not in a power state affected mode\n\n  - The system has switched to oneshot mode. The oneshot broadcast is\n    controlled from the deep idle state. The CPU is not in idle at\n    this point, so it\u0027s safe to remove it from the mask.\n\nIf we clear the broadcast bit for the CPU when a new device is\ninstalled, we also shutdown the broadcast device when this was the\nlast CPU in the broadcast mask.\n\nIf the broadcast bit is kept, then we leave the new device in shutdown\nstate and rely on the broadcast to deliver the timer interrupts via\nthe broadcast ipis.\n\nReported-and-tested-by: Stehle Vincent-B46079 \u003cB46079@freescale.com\u003e\nReviewed-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e,\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nLink: http://lkml.kernel.org/r/alpine.DEB.2.02.1307012153060.4013@ionos.tec.linutronix.de\nCc: stable@vger.kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "1f73a9806bdd07a5106409bbcab3884078bd34fe",
      "tree": "5fc813b691780b0f096136548bd567b61e672447",
      "parents": [
        "c9b5a266b103af873abb9ac03bc3d067702c8f4b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jul 01 22:14:10 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 02 14:26:45 2013 +0200"
      },
      "message": "tick: Prevent uncontrolled switch to oneshot mode\n\nWhen the system switches from periodic to oneshot mode, the broadcast\nlogic causes a possibility that a CPU which has not yet switched to\noneshot mode puts its own clock event device into oneshot mode without\nupdating the state and the timer handler.\n\nCPU0\t\t\t\tCPU1\n\t\t\t\tper cpu tickdev is in periodic mode\n\t\t\t\tand switched to broadcast\n\nSwitch to oneshot mode\n tick_broadcast_switch_to_oneshot()\n  cpumask_copy(tick_oneshot_broacast_mask,\n\t       tick_broadcast_mask);\n\n  broadcast device mode \u003d oneshot\n\n\t\t\t\tTimer interrupt\n\t\t\t\t\t\t\n\t\t\t\tirq_enter()\n\t\t\t\t tick_check_oneshot_broadcast()\n\t\t\t\t  dev-\u003eset_mode(ONESHOT);\n\n\t\t\t\ttick_handle_periodic()\n\t\t\t\t if (dev-\u003emode \u003d\u003d ONESHOT)\n\t\t\t\t   dev-\u003enext_event +\u003d period;\n\t\t\t\t   FAIL.\n\nWe fail, because dev-\u003enext_event contains KTIME_MAX, if the device was\nin periodic mode before the uncontrolled switch to oneshot happened.\n\nWe must copy the broadcast bits over to the oneshot mask, because\notherwise a CPU which relies on the broadcast would not been woken up\nanymore after the broadcast device switched to oneshot mode.\n\nSo we need to verify in tick_check_oneshot_broadcast() whether the CPU\nhas already switched to oneshot mode. If not, leave the device\nuntouched and let the CPU switch controlled into oneshot mode.\n\nThis is a long standing bug, which was never noticed, because the main\nuser of the broadcast x86 cannot run into that scenario, AFAICT. The\nnonarchitected timer mess of ARM creates a gazillion of differently\nbroken abominations which trigger the shortcomings of that broadcast\ncode, which better had never been necessary in the first place.\n\nReported-and-tested-by: Stehle Vincent-B46079 \u003cB46079@freescale.com\u003e\nReviewed-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e,\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nLink: http://lkml.kernel.org/r/alpine.DEB.2.02.1307012153060.4013@ionos.tec.linutronix.de\nCc: stable@vger.kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c9b5a266b103af873abb9ac03bc3d067702c8f4b",
      "tree": "91e5ec118a7e96b998e18a8601d8f14c76d94823",
      "parents": [
        "47433b8c9d7480a3eebd99df38e857ce85a37cee"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 26 12:17:32 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 02 14:26:44 2013 +0200"
      },
      "message": "tick: Make oneshot broadcast robust vs. CPU offlining\n\nIn periodic mode we remove offline cpus from the broadcast propagation\nmask. In oneshot mode we fail to do so. This was not a problem so far,\nbut the recent changes to the broadcast propagation introduced a\nconstellation which can result in a NULL pointer dereference.\n\nWhat happens is:\n\nCPU0\t\t\tCPU1\n\t\t\tidle()\n\t\t\t  arch_idle()\n\t\t\t    tick_broadcast_oneshot_control(OFF);\n\t\t\t      set cpu1 in tick_broadcast_force_mask\n\t\t\t  if (cpu_offline())\n\t\t\t     arch_cpu_dead()\n\ncpu_dead_cleanup(cpu1)\n cpu1 tickdevice pointer \u003d NULL\n\nbroadcast interrupt\n  dereference cpu1 tickdevice pointer -\u003e OOPS\n\nWe dereference the pointer because cpu1 is still set in\ntick_broadcast_force_mask and tick_do_broadcast() expects a valid\ncpumask and therefor lacks any further checks.\n\nRemove the cpu from the tick_broadcast_force_mask before we set the\ntick device pointer to NULL. Also add a sanity check to the oneshot\nbroadcast function, so we can detect such issues w/o crashing the\nmachine.\n\nReported-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: athorlton@sgi.com\nCc: CAI Qian \u003ccaiqian@redhat.com\u003e\nLink: http://lkml.kernel.org/r/alpine.DEB.2.02.1306261303260.4013@ionos.tec.linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "780427f0e113b4c77dfff4d258c05a902cdb0eb9",
      "tree": "778bc50cbd83b67bdd6ae580a192c4c65e9711bd",
      "parents": [
        "04397fe94ad65289884b9862b6a0c722ececaadf"
      ],
      "author": {
        "name": "David Vrabel",
        "email": "david.vrabel@citrix.com",
        "time": "Thu Jun 27 11:35:46 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 28 23:15:06 2013 +0200"
      },
      "message": "timekeeping: Indicate that clock was set in the pvclock gtod notifier\n\nIf the clock was set (stepped), set the action parameter to functions\nin the pvclock gtod notifier chain to non-zero.  This allows the\ncallee to only do work if the clock was stepped.\n\nThis will be used on Xen as the synchronization of the Xen wallclock\nto the control domain\u0027s (dom0) system time will be done with this\nnotifier and updating on every timer tick is unnecessary and too\nexpensive.\n\nSigned-off-by: David Vrabel \u003cdavid.vrabel@citrix.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: \u003cxen-devel@lists.xen.org\u003e\nLink: http://lkml.kernel.org/r/1372329348-20841-4-git-send-email-david.vrabel@citrix.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "04397fe94ad65289884b9862b6a0c722ececaadf",
      "tree": "b8cb0d1e8eca2540534a16ee0650aa7ede33d52b",
      "parents": [
        "0eb071651474952c8b6daecd36b378e2d01be22c"
      ],
      "author": {
        "name": "David Vrabel",
        "email": "david.vrabel@citrix.com",
        "time": "Thu Jun 27 11:35:45 2013 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 28 23:15:06 2013 +0200"
      },
      "message": "timekeeping: Pass flags instead of multiple bools to timekeeping_update()\n\nInstead of passing multiple bools to timekeeping_updated(), define\nflags and use a single \u0027action\u0027 parameter.  It is then more obvious\nwhat each timekeeping_update() call does.\n\nSigned-off-by: David Vrabel \u003cdavid.vrabel@citrix.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: \u003cxen-devel@lists.xen.org\u003e\nLink: http://lkml.kernel.org/r/1372329348-20841-3-git-send-email-david.vrabel@citrix.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "70e5975d3a04be5479a28eec4a2fb10f98ad2785",
      "tree": "c7de522a65bfb86fd1b7d2c009330bb82dd0938a",
      "parents": [
        "d3d8fee4138a06b4b9ca172d25b8412fc33ad3f3"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Thu Jun 13 11:39:50 2013 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jun 24 22:27:36 2013 +0200"
      },
      "message": "clockevents: Prefer CPU local devices over global devices\n\nOn an SMP system with only one global clockevent and a dummy\nclockevent per CPU we run into problems. We want the dummy\nclockevents to be registered as the per CPU tick devices, but\nwe can only achieve that if we register the dummy clockevents\nbefore the global clockevent or if we artificially inflate the\nrating of the dummy clockevents to be higher than the rating\nof the global clockevent. Failure to do so leads to boot\nhangs when the dummy timers are registered on all other CPUs\nbesides the CPU that accepted the global clockevent as its tick\ndevice and there is no broadcast timer to poke the dummy\ndevices.\n\nIf we\u0027re registering multiple clockevents and one clockevent is\nglobal and the other is local to a particular CPU we should\nchoose to use the local clockevent regardless of the rating of\nthe device. This way, if the clockevent is a dummy it will take\nthe tick device duty as long as there isn\u0027t a higher rated tick\ndevice and any global clockevent will be bumped out into\nbroadcast mode, fixing the problem described above.\n\nReported-and-tested-by: Mark Rutland \u003cmark.rutland@arm.com\u003e\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nTested-by: soren.brinkmann@xilinx.com\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nCc: linux-arm-kernel@lists.infradead.org\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nLink: http://lkml.kernel.org/r/20130613183950.GA32061@codeaurora.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ea8deb8dfa6b0e8d1b3d1051585706739b46656c",
      "tree": "00c29a9eb50b999e0f6bd1612510ba0e29d36f38",
      "parents": [
        "a3d5c3460a86f52ea435b3fb98be112bd18faabc"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Mon Jun 17 18:15:35 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 21 13:10:34 2013 +0200"
      },
      "message": "tick: Fix tick_broadcast_pending_mask not cleared\n\nThe recent modification in the cpuidle framework consolidated the\ntimer broadcast code across the different drivers by setting a new\nflag in the idle state. It tells the cpuidle core code to enter/exit\nthe broadcast mode for the cpu when entering a deep idle state. The\nbroadcast timer enter/exit is no longer handled by the back-end\ndriver.\n\nThis change made the local interrupt to be enabled *before* calling\nCLOCK_EVENT_NOTIFY_EXIT.\n\nOn a tegra114, a four cores system, when the flag has been introduced\nin the driver, the following warning appeared:\n\nWARNING: at kernel/time/tick-broadcast.c:578 tick_broadcast_oneshot_control\nCPU: 2 PID: 0 Comm: swapper/2 Not tainted 3.10.0-rc3-next-20130529+ #15\n[\u003cc00667f8\u003e] (tick_broadcast_oneshot_control+0x1a4/0x1d0) from [\u003cc0065cd0\u003e] (tick_notify+0x240/0x40c)\n[\u003cc0065cd0\u003e] (tick_notify+0x240/0x40c) from [\u003cc0044724\u003e] (notifier_call_chain+0x44/0x84)\n[\u003cc0044724\u003e] (notifier_call_chain+0x44/0x84) from [\u003cc0044828\u003e] (raw_notifier_call_chain+0x18/0x20)\n[\u003cc0044828\u003e] (raw_notifier_call_chain+0x18/0x20) from [\u003cc00650cc\u003e] (clockevents_notify+0x28/0x170)\n[\u003cc00650cc\u003e] (clockevents_notify+0x28/0x170) from [\u003cc033f1f0\u003e] (cpuidle_idle_call+0x11c/0x168)\n[\u003cc033f1f0\u003e] (cpuidle_idle_call+0x11c/0x168) from [\u003cc000ea94\u003e] (arch_cpu_idle+0x8/0x38)\n[\u003cc000ea94\u003e] (arch_cpu_idle+0x8/0x38) from [\u003cc005ea80\u003e] (cpu_startup_entry+0x60/0x134)\n[\u003cc005ea80\u003e] (cpu_startup_entry+0x60/0x134) from [\u003c804fe9a4\u003e] (0x804fe9a4)\n\nI don\u0027t have the hardware, so I wasn\u0027t able to reproduce the warning\nbut after looking a while at the code, I deduced the following:\n\n 1. the CPU2 enters a deep idle state and sets the broadcast timer\n\n 2. the timer expires, the tick_handle_oneshot_broadcast function is\n    called, setting the tick_broadcast_pending_mask and waking up the\n    idle cpu CPU2\n\n 3. the CPU2 exits idle handles the interrupt and then invokes\n    tick_broadcast_oneshot_control with CLOCK_EVENT_NOTIFY_EXIT which\n    runs the following code:\n\n    [...]\n    if (dev-\u003enext_event.tv64 \u003d\u003d KTIME_MAX)\n            goto out;\n\n    if (cpumask_test_and_clear_cpu(cpu,\n                                 tick_broadcast_pending_mask))\n            goto out;\n    [...]\n\n    So if there is no next event scheduled for CPU2, we fulfil the\n    first condition and jump out without clearing the\n    tick_broadcast_pending_mask.\n\n 4. CPU2 goes to deep idle again and calls\n    tick_broadcast_oneshot_control with CLOCK_NOTIFY_EVENT_ENTER but\n    with the tick_broadcast_pending_mask set for CPU2, triggering the\n    warning.\n\nThe issue only surfaced due to the modifications of the cpuidle\nframework, which resulted in interrupts being enabled before the call\nto the clockevents code. If the call happens before interrupts have\nbeen enabled, the warning cannot trigger, because there is still the\nevent pending which caused the broadcast timer expiry.\n\nMove the check for the next event below the check for the pending bit,\nso the pending bit gets cleared whether an event is scheduled on the\ncpu or not.\n\n[ tglx: Massaged changelog ]\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nReported-and-tested-by: Joseph Lo \u003cjosephl@nvidia.com\u003e\nCc: Stephen Warren \u003cswarren@nvidia.com\u003e\nCc: linux-arm-kernel@lists.infradead.org\nCc: linaro-kernel@lists.linaro.org\nLink: http://lkml.kernel.org/r/1371485735-31249-1-git-send-email-daniel.lezcano@linaro.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "5b8621a68fdcd2baf1d3b413726f913a5254d46a",
      "tree": "936ee10cd6fc62f6e7a31fc5d2d2e8ed657bd371",
      "parents": [
        "940be35ac0139530d7554aa2352a8388e3d4adca"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Jun 08 13:47:31 2013 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jun 20 15:46:43 2013 +0200"
      },
      "message": "nohz: Remove obsolete check for full dynticks CPUs to be RCU nocbs\n\nBuilding full dynticks now implies that all CPUs are forced\ninto RCU nocb mode through CONFIG_RCU_NOCB_CPU_ALL.\n\nThe dynamic check has become useless.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\n"
    },
    {
      "commit": "e12d0271774fea9fddf1e2a7952a0bffb2ee8e8b",
      "tree": "6bd6a506cd535836ec419055cc4c20f0a6648224",
      "parents": [
        "7d132055814ef17a6c7b69f342244c410a5e000f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri May 10 17:12:28 2013 -0400"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jun 20 01:15:51 2013 +0200"
      },
      "message": "nohz: Warn if the machine can not perform nohz_full\n\nIf the user configures NO_HZ_FULL and defines nohz_full\u003dXXX on the\nkernel command line, or enables NO_HZ_FULL_ALL, but nohz fails\ndue to the machine having a unstable clock, warn about it.\n\nWe do not want users thinking that they are getting the benefit\nof nohz when their machine can not support it.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "336ae1180df5f69b9e0fb6561bec01c5f64361cf",
      "tree": "416cd47092f970dd03e8b655d6204bd9fdc83e6f",
      "parents": [
        "38ff87f77af0b5a93fc8581cff1d6e5692ab8970"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Mon Jun 17 15:40:58 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Jun 17 15:56:11 2013 -0700"
      },
      "message": "ARM: sched_clock: Load cycle count after epoch stabilizes\n\nThere is a small race between when the cycle count is read from\nthe hardware and when the epoch stabilizes. Consider this\nscenario:\n\n CPU0                           CPU1\n ----                           ----\n cyc \u003d read_sched_clock()\n cyc_to_sched_clock()\n                                 update_sched_clock()\n                                  ...\n                                  cd.epoch_cyc \u003d cyc;\n  epoch_cyc \u003d cd.epoch_cyc;\n  ...\n  epoch_ns + cyc_to_ns((cyc - epoch_cyc)\n\nThe cyc on cpu0 was read before the epoch changed. But we\ncalculate the nanoseconds based on the new epoch by subtracting\nthe new epoch from the old cycle count. Since epoch is most likely\nlarger than the old cycle count we calculate a large number that\nwill be converted to nanoseconds and added to epoch_ns, causing\ntime to jump forward too much.\n\nFix this problem by reading the hardware after the epoch has\nstabilized.\n\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "38ff87f77af0b5a93fc8581cff1d6e5692ab8970",
      "tree": "7a157528657400d0486cd4e74da98bad40992c3c",
      "parents": [
        "ffbfb5e316f0db486798ccf1db36a577ffe79637"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Sat Jun 01 23:39:40 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Jun 12 14:02:13 2013 -0700"
      },
      "message": "sched_clock: Make ARM\u0027s sched_clock generic for all architectures\n\nNothing about the sched_clock implementation in the ARM port is\nspecific to the architecture. Generalize the code so that other\narchitectures can use it by selecting GENERIC_SCHED_CLOCK.\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n[jstultz: Merge minor collisions with other patches in my tree]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "11682a41618f8094cb7a9330b4b6a12ffaef5774",
      "tree": "21cba6b313587b43b7d91cb40b3ab02d920e3a29",
      "parents": [
        "762cf9695d714d312ef7369bed1b9f9467c9e64e"
      ],
      "author": {
        "name": "Marcus Gelderie",
        "email": "redmnic@gmail.com",
        "time": "Tue Jun 04 09:32:09 2013 +0200"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Jun 12 14:02:12 2013 -0700"
      },
      "message": "alarmtimer: Export symbols of functions declared in linux/alarmtimer.h\n\nExport symbols so they can be used by\ndrivers/staging/android/alarm-dev.c if it is built as a module.\nSo far alarm-dev is built-in but module support is planned (see\ndrivers/staging/android/TODO).\n\nSigned-off-by: Marcus Gelderie \u003credmnic@gmail.com\u003e\n[jstultz: tweaked commit message, also export newly added functions]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "f5d00c1f9adb350c24c5301600f7bf2da99b66de",
      "tree": "03d1d6971d951220805c3f4c6812d9898da534de",
      "parents": [
        "1a7f829f094dd7951e7d46c571a18080e455a436"
      ],
      "author": {
        "name": "Jiri Bohac",
        "email": "jbohac@suse.cz",
        "time": "Tue May 28 15:29:03 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri May 31 15:58:32 2013 +0200"
      },
      "message": "tick: Remove useless timekeeping duty attribution to broadcast source\n\nSince 7300711e (\"clockevents: broadcast fixup possible waiters\"),\nthe timekeeping duty is assigned to the CPU that handles the tick\nbroadcast clock device by the time it is set in one shot mode.\n\nThis is an issue in full dynticks mode where the timekeeping duty\nmust stay handled by the boot CPU for now. Otherwise it prevents\nsecondary CPUs from offlining and this breaks\nsuspend/shutdown/reboot/...\n\nAs it appears there is no reason for this timekeeping duty to be\nmoved to the broadcast CPU, besides nothing prevent it from being\nlater re-assigned to another target, let\u0027s simply remove it.\n\nSigned-off-by: Jiri Bohac \u003cjbohac@suse.cz\u003e\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "1a7f829f094dd7951e7d46c571a18080e455a436",
      "tree": "38c574a8c15a566c73b83a9f1263e4e5a5115271",
      "parents": [
        "521921bad1192fb1b8f9b6a5aa673635848b8b5f"
      ],
      "author": {
        "name": "Li Zhong",
        "email": "zhong@linux.vnet.ibm.com",
        "time": "Fri May 17 16:44:04 2013 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Fri May 31 11:33:10 2013 +0200"
      },
      "message": "nohz: Fix notifier return val that enforce timekeeping\n\nIn tick_nohz_cpu_down_callback() if the cpu is the one handling\ntimekeeping, we must return something that stops the CPU_DOWN_PREPARE\nnotifiers and then start notify CPU_DOWN_FAILED on the already called\nnotifier call backs.\n\nHowever traditional errno values are not handled by the notifier unless\nthese are encapsulated using errno_to_notifier().\n\nHence the current -EINVAL is misinterpreted and converted to junk after\nnotifier_to_errno(), leaving the notifier subsystem to random behaviour\nsuch as eventually allowing the cpu to go down.\n\nFix this by using the standard NOTIFY_BAD instead.\n\nSigned-off-by: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "5c83545f24ab3dd67e0ae0e2b795fea750f08c34",
      "tree": "72ad0d3d33302a9100c17855bc08bf936cbdd081",
      "parents": [
        "11ffa9d6065f344a9bd769a2452f26f2f671e5f8"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue May 21 22:32:14 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed May 29 12:57:34 2013 -0700"
      },
      "message": "power: Add option to log time spent in suspend\n\nBelow is a patch from android kernel that maintains a histogram of\nsuspend times. Please review and provide feedback.\n\nStatistices on the time spent in suspend are kept in\n/sys/kernel/debug/sleep_time.\n\nCc: Android Kernel Team \u003ckernel-team@android.com\u003e\nCc: Colin Cross \u003cccross@android.com\u003e\nCc: Todd Poynor \u003ctoddpoynor@google.com\u003e\nCc: San Mehat \u003csan@google.com\u003e\nCc: Benoit Goby \u003cbenoit@android.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n[zoran.markovic@linaro.org: Re-formatted suspend time table to better\nfit expected values. Moved accounting of suspend time into timekeeping\ncore. Removed CONFIG_SUSPEND_TIME flag and made the feature conditional\non CONFIG_DEBUG_FS. Changed the file name to sleep_time to better fit\nterminology in timekeeping core. Changed seq_printf to seq_puts. Tweaked\ncommit message]\nSigned-off-by: Zoran Markovic \u003czoran.markovic@linaro.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "6cffe00f7d4e24679eae6b7aae4caaf915288256",
      "tree": "3613480b8eefec8b865ba9d3acbb8ecb7ffe4def",
      "parents": [
        "3565184ed0c1ea46bea5b792da5f72a83c43e49b"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed May 15 14:38:11 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed May 29 12:57:34 2013 -0700"
      },
      "message": "alarmtimer: Add functions for timerfd support\n\nAdd functions needed for hooking up alarmtimer to timerfd:\n\n* alarm_restart: Similar to hrtimer_restart, restart an alarmtimer after\n  the expires time has already been updated (as with alarm_forward).\n\n* alarm_forward_now: Similar to hrtimer_forward_now, move the expires\n  time forward to an interval from the current time of the associated clock.\n\n* alarm_start_relative: Start an alarmtimer with an expires time relative to\n  the current time of the associated clock.\n\n* alarm_expires_remaining: Similar to hrtimer_expires_remaining, return the\n  amount of time remaining until alarm expiry.\n\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "67dd331c5d811b2e50c935a24c82f31b61c6dcd3",
      "tree": "0980dd54ec6ea9566be374738baacafd8b9c7492",
      "parents": [
        "15ef0298deb3929eb6ad6d2334fd2059fd53807c",
        "0d6bd9953f739dad96d9a0de65383e479ab4e10d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 29 09:55:01 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 29 09:55:01 2013 +0200"
      },
      "message": "Merge branch \u0027fortglx/3.10/time\u0027 of git://git.linaro.org/people/jstultz/linux into timers/urgent\n"
    },
    {
      "commit": "0d6bd9953f739dad96d9a0de65383e479ab4e10d",
      "tree": "0f053972369289c5368f67af03a420b8c725828d",
      "parents": [
        "aa848233f740abbabfa7669daca0ab94aaa37bcd"
      ],
      "author": {
        "name": "Zoran Markovic",
        "email": "zoran.markovic@linaro.org",
        "time": "Fri May 17 11:24:05 2013 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue May 28 13:45:19 2013 -0700"
      },
      "message": "timekeeping: Correct run-time detection of persistent_clock.\n\nSince commit 31ade30692dc9680bfc95700d794818fa3f754ac, timekeeping_init()\nchecks for presence of persistent clock by attempting to read a non-zero\ntime value. This is an issue on platforms where persistent_clock (instead\nis implemented as a free-running counter (instead of an RTC) starting\nfrom zero on each boot and running during suspend. Examples are some ARM\nplatforms (e.g. PandaBoard).\n\nAn attempt to read such a clock during timekeeping_init() may return zero\nvalue and falsely declare persistent clock as missing. Additionally, in\nthe above case suspend times may be accounted twice (once from\ntimekeeping_resume() and once from rtc_resume()), resulting in a gradual\ndrift of system time.\n\nThis patch does a run-time correction of the issue by doing the same check\nduring timekeeping_suspend().\n\nA better long-term solution would have to return error when trying to read\nnon-existing clock and zero when trying to read an uninitialized clock, but\nthat would require changing all persistent_clock implementations.\n\nThis patch addresses the immediate breakage, for now.\n\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Feng Tang \u003cfeng.tang@intel.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Zoran Markovic \u003czoran.markovic@linaro.org\u003e\n[jstultz: Tweaked commit message and subject]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "aa848233f740abbabfa7669daca0ab94aaa37bcd",
      "tree": "28f36ed9f8037bde52a030c115ae137d546d8d20",
      "parents": [
        "c7788792a5e7b0d5d7f96d0766b4cb6112d47d75"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Fri May 03 23:27:07 2013 +0200"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue May 28 13:45:19 2013 -0700"
      },
      "message": "ntp: Remove unused variable flags in __hardpps\n\nkernel/time/ntp.c: In function ‘__hardpps’:\nkernel/time/ntp.c:877: warning: unused variable ‘flags’\n\ncommit a076b2146fabb0894cae5e0189a8ba3f1502d737 (\"ntp: Remove ntp_lock,\nusing the timekeeping locks to protect ntp state\") removed its users,\nbut not the actual variable.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "1eaff67266b6b6c97bbd33cf2c20577822836413",
      "tree": "3ef270ec2f0ac9197496ea23be042b4fa000c915",
      "parents": [
        "c7e99fc75de8882bc4104455ace366d9d3599a96"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 28 09:48:46 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 28 09:48:46 2013 +0200"
      },
      "message": "clocksource: Implement clocksource_select_fallback() for CONFIG_ARCH_USES_GETTIMEOFFSET\u003dy\n\ncommit 7eaeb34305 (clocksource: Provide unbind interface in sysfs)\nimplemented clocksource_select_fallback() which is not defined for\nCONFIG_ARCH_USES_GETTIMEOFFSET\u003dy. Add an empty inline function for\nthat.\n\nReported-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nReported-by: fengguang.wu@intel.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "2938d2757fc99c26aa678ce4eba910c4a77c3a55",
      "tree": "67a083021705f6cac75f6bea2fa83e975807c624",
      "parents": [
        "e4aa937ec75df0eea0bee03bffa3303ad36c986b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 28 09:33:01 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 28 09:33:01 2013 +0200"
      },
      "message": "tick: Cure broadcast false positive pending bit warning\n\ncommit 26517f3e (tick: Avoid programming the local cpu timer if\nbroadcast pending) added a warning if the cpu enters broadcast mode\nagain while the pending bit is still set. Meelis reported that the\nwarning triggers. There are two corner cases which have been not\nconsidered:\n\n1) cpuidle calls clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER)\n   twice. That can result in the following scenario\n\n   CPU0                    CPU1\n                           cpuidle_idle_call()\n                             clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER)\n                               set cpu in tick_broadcast_oneshot_mask\n\n   broadcast interrupt\n     event expired for cpu1\n     set pending bit\n\n                             acpi_idle_enter_simple()\n                               clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER)\n                                 WARN_ON(pending bit)\n\n  Move the WARN_ON into the section where we enter broadcast mode so\n  it wont provide false positives on the second call.\n\n2) safe_halt() enables interrupts, so a broadcast interrupt can be\n   delivered befor the broadcast mode is disabled. That sets the\n   pending bit for the CPU which receives the broadcast\n   interrupt. Though the interrupt is delivered right away from the\n   broadcast handler and leaves the pending bit stale.\n\n   Clear the pending bit for the current cpu in the broadcast handler.\n\nReported-and-tested-by: Meelis Roos \u003cmroos@linux.ee\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1305271841130.4220@ionos\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c7e99fc75de8882bc4104455ace366d9d3599a96",
      "tree": "33a078e1dcb4737603fcfd8927685e5f3d04d476",
      "parents": [
        "03e13cf5ee60584fe0c831682c67212effb7fca4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 28 09:28:02 2013 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 28 09:28:02 2013 +0200"
      },
      "message": "clockevents: Define CS_NAME_LEN unconditionally\n\nUnbreak architectures which do not use clockevents, but require to\nbuild some of the core timekeeping infrastructure\n\nReported-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "03e13cf5ee60584fe0c831682c67212effb7fca4",
      "tree": "b40a9a0a88a675e4511ad6b6c0bf072b6a1ef9f4",
      "parents": [
        "45cb8e01b2ecef1c2afb18333e95793fa1a90281"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Apr 25 20:31:50 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 16 11:09:18 2013 +0200"
      },
      "message": "clockevents: Implement unbind functionality\n\nProvide a sysfs interface to allow unbinding of clockevent\ndevices. The device is unbound if it is unused or if there is a\nreplacement device available. Unbinding of broadcast devices is not\nsupported as we don\u0027t want to foster that nonsense. If no replacement\ndevice is available the unbind returns -EBUSY. Unbind is available\nfrom the kernel and through sysfs, which is necessary to drop the\nmodule refcount.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20130425143436.499216659@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "45cb8e01b2ecef1c2afb18333e95793fa1a90281",
      "tree": "9528babbf50046bffca4270952af0b5a38f56895",
      "parents": [
        "501f867064e95f9a6f540e60705be0937280e7ec"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Apr 25 20:31:50 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 16 11:09:17 2013 +0200"
      },
      "message": "clockevents: Split out selection logic\n\nSplit out the clockevent device selection logic. Preparatory patch to\nallow unbinding active clockevent devices.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20130425143436.431796247@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "501f867064e95f9a6f540e60705be0937280e7ec",
      "tree": "92cabb49d9e67f9824bd2d09a9872b02d69b3a97",
      "parents": [
        "ccf33d6880f39a35158fff66db13000ae4943fac"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Apr 25 20:31:49 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 16 11:09:17 2013 +0200"
      },
      "message": "clockevents: Provide sysfs interface\n\nProvide a simple sysfs interface for the clockevent devices. Show the\ncurrent active clockevent device.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20130425143436.371634778@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ccf33d6880f39a35158fff66db13000ae4943fac",
      "tree": "a39cb95e64c412b107c8640ae521bda78a7d1033",
      "parents": [
        "8c53daf63f56791ed47fc585206ef3049489612f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Apr 25 20:31:49 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 16 11:09:17 2013 +0200"
      },
      "message": "clockevents: Add module refcount\n\nWe want to be able to remove clockevent modules as well. Add a\nrefcount so we don\u0027t remove a module with an active clock event\ndevice.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20130425143436.307435149@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "8c53daf63f56791ed47fc585206ef3049489612f",
      "tree": "a9df5ebd6fbc2a26f6475cb804f6f13a748aeaa9",
      "parents": [
        "7126cac426137633e470167524e7bcb590fd49b3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Apr 25 20:31:48 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 16 11:09:16 2013 +0200"
      },
      "message": "clockevents: Move the tick_notify() switch case to clockevents_notify()\n\nNo need to call another function and have duplicated cases.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20130425143436.235746557@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7126cac426137633e470167524e7bcb590fd49b3",
      "tree": "5f3ca6adba3803f264dc0f70a28db8722729dd49",
      "parents": [
        "7172a286ced0c1f4f239a0fa09db54ed37d3ead2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Apr 25 20:31:48 2013 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 16 11:09:16 2013 +0200"
      },
      "message": "clockevents: Simplify locking\n\nNow that the notifier chain is gone there are no other users and it\u0027s\npointless to nest tick_device_lock inside of clockevents_lock because\nthere is no other use case.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20130425143436.162888472@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    }
  ],
  "next": "7172a286ced0c1f4f239a0fa09db54ed37d3ead2"
}
