)]}'
{
  "log": [
    {
      "commit": "8af3c153baf95374eff20a37f00c59a295b52756",
      "tree": "db80f770b668f7067c3e95af92cc92933edce4e0",
      "parents": [
        "d56557af19867edb8c0e96f8e26399698a08857f"
      ],
      "author": {
        "name": "Miroslav Lichvar",
        "email": "mlichvar@redhat.com",
        "time": "Tue Sep 07 16:43:46 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 09 20:48:37 2010 +0200"
      },
      "message": "ntp: Clamp PLL update interval\n\nClamp update interval to reduce PLL gain with low sampling rate (e.g.\nintermittent network connection) to avoid instability.\n\nThe clamp roughly corresponds to the loop time constant, it\u0027s 8 * poll\ninterval for SHIFT_PLL 2 and 32 * poll interval for SHIFT_PLL 4. This\ngives good results without affecting the gain in normal conditions where\nntpd skips only up to seven consecutive samples.\n\nSigned-off-by: Miroslav Lichvar \u003cmlichvar@redhat.com\u003e\nAcked-by: john stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1283870626-9472-1-git-send-email-mlichvar@redhat.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c7dcf87a6881bf796faee83003163eb3de41a309",
      "tree": "1e4333e588ad6e8e69e310d8ae71798af1c0bdb5",
      "parents": [
        "2be1f3a73dd02e38e181cf5abacb3d45a6a2d6b8"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Fri Aug 13 11:30:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 13 12:03:24 2010 -0700"
      },
      "message": "time: Workaround gcc loop optimization that causes 64bit div errors\n\nEarly 4.3 versions of gcc apparently aggressively optimize the raw\ntime accumulation loop, replacing it with a divide.\n\nOn 32bit systems, this causes the following link errors:\n\tundefined reference to `__umoddi3\u0027\n\tundefined reference to `__udivdi3\u0027\n\nThe gcc issue has been fixed in 4.4 and greater.\n\nThis patch replaces the accumulation loop with a do_div, as suggested\nby Linus.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCC: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCC: Larry Finger \u003cLarry.Finger@lwfinger.net\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "deda2e81961e96be4f2c09328baca4710a2fd1a0",
      "tree": "da1968f7e6791cb96735e8f2c602aa55e76fec21",
      "parents": [
        "95f4572737da469b66ebfd1badd69d9adc340409"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Mon Aug 09 14:20:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 09:53:39 2010 -0700"
      },
      "message": "timekeeping: Fix overflow in rawtime tv_nsec on 32 bit archs\n\nThe tv_nsec is a long and when added to the shifted interval it can wrap\nand become negative which later causes looping problems in the\ngetrawmonotonic().  The edge case occurs when the system has slept for\na short period of time of ~2 seconds.\n\nA trace printk of the values in this patch illustrate the problem:\n\nftrace time stamp: log\n43.716079: logarithmic_accumulation: raw: 3d0913 tv_nsec d687faa\n43.718513: logarithmic_accumulation: raw: 3d0913 tv_nsec da588bd\n43.722161: logarithmic_accumulation: raw: 3d0913 tv_nsec de291d0\n46.349925: logarithmic_accumulation: raw: 7a122600 tv_nsec e1f9ae3\n46.349930: logarithmic_accumulation: raw: 1e848980 tv_nsec 8831c0e3\n\nThe kernel starts looping at 46.349925 in the getrawmonotonic() due to\nthe negative value from adding the raw value to tv_nsec.\n\nA simple solution is to accumulate into a u64, and then normalize it\nto a timespec_t.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n [ Reworked variable names and simplified some of the code. - John ]\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b62ad9ab181a67207a4c8c373461b587c4861a68",
      "tree": "ace1572964d81f5f9bbc10b7960c1f742832d744",
      "parents": [
        "af390084359a5de20046c901529b2b6a50b941cb",
        "b29230769e3482bbd62a07d6d9485371ee66a18f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:18:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:18:29 2010 -0700"
      },
      "message": "Merge branch \u0027timers-timekeeping-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-timekeeping-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  um: Fix read_persistent_clock fallout\n  kgdb: Do not access xtime directly\n  powerpc: Clean up obsolete code relating to decrementer and timebase\n  powerpc: Rework VDSO gettimeofday to prevent time going backwards\n  clocksource: Add __clocksource_updatefreq_hz/khz methods\n  x86: Convert common clocksources to use clocksource_register_hz/khz\n  timekeeping: Make xtime and wall_to_monotonic static\n  hrtimer: Cleanup direct access to wall_to_monotonic\n  um: Convert to use read_persistent_clock\n  timkeeping: Fix update_vsyscall to provide wall_to_monotonic offset\n  powerpc: Cleanup xtime usage\n  powerpc: Simplify update_vsyscall\n  time: Kill off CONFIG_GENERIC_TIME\n  time: Implement timespec_add\n  x86: Fix vtime/file timestamp inconsistencies\n\nTrivial conflicts in Documentation/feature-removal-schedule.txt\n\nMuch less trivial conflicts in arch/powerpc/kernel/time.c resolved as\nper Thomas\u0027 earlier merge commit 47916be4e28c (\"Merge branch\n\u0027powerpc.cherry-picks\u0027 into timers/clocksource\")\n"
    },
    {
      "commit": "af390084359a5de20046c901529b2b6a50b941cb",
      "tree": "b73a6261d1b1f9fb34432cc9a47411a49330b8dc",
      "parents": [
        "7645e4320497b35ce9fb6c2269ebcd57af9fe735",
        "0fcb80818bc3ade5befd409051089f710adcf7b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:12:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:12:36 2010 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  Documentation: Add timers/timers-howto.txt\n  timer: Added usleep_range timer\n  Revert \"timer: Added usleep[_range] timer\"\n  clockevents: Remove the per cpu tick skew\n  posix_timer: Move copy_to_user(created_timer_id) down in timer_create()\n  timer: Added usleep[_range] timer\n  timers: Document meaning of deferrable timer\n"
    },
    {
      "commit": "c4efd6b569b2646e1346a08a4c40286f8bcb5f11",
      "tree": "bf33e8594ac4e628cc95f2ef25513788b8273601",
      "parents": [
        "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
        "0bcfe75807944106a3aa655a54bb610d62f3a7f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)\n  sched: Use correct macro to display sched_child_runs_first in /proc/sched_debug\n  sched: No need for bootmem special cases\n  sched: Revert nohz_ratelimit() for now\n  sched: Reduce update_group_power() calls\n  sched: Update rq-\u003eclock for nohz balanced cpus\n  sched: Fix spelling of sibling\n  sched, cpuset: Drop __cpuexit from cpu hotplug callbacks\n  sched: Fix the racy usage of thread_group_cputimer() in fastpath_timer_check()\n  sched: run_posix_cpu_timers: Don\u0027t check -\u003eexit_state, use lock_task_sighand()\n  sched: thread_group_cputime: Simplify, document the \"alive\" check\n  sched: Remove the obsolete exit_state/signal hacks\n  sched: task_tick_rt: Remove the obsolete -\u003esignal !\u003d NULL check\n  sched: __sched_setscheduler: Read the RLIMIT_RTPRIO value lockless\n  sched: Fix comments to make them DocBook happy\n  sched: Fix fix_small_capacity\n  powerpc: Exclude arch_sd_sibiling_asym_packing() on UP\n  powerpc: Enable asymmetric SMT scheduling on POWER7\n  sched: Add asymmetric group packing option for sibling domain\n  sched: Fix capacity calculations for SMT4\n  sched: Change nohz idle load balancing logic to push model\n  ...\n"
    },
    {
      "commit": "0bcfe75807944106a3aa655a54bb610d62f3a7f5",
      "tree": "d48d848e09d1bf48fe7fa23e9226f38ef342eed4",
      "parents": [
        "eebef74695e1498e04e5f85be9c6f84bd2e7358a",
        "396e894d289d69bacf5acd983c97cd6e21a14c08"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 05 09:46:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 05 09:46:29 2010 +0200"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nConflicts:\n\tinclude/linux/sched.h\n\nMerge reason: Add the leftover .35 urgent bits, fix the conflict.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d790d4d583aeaed9fc6f8a9f4d9f8ce6b1c15c7f",
      "tree": "854ab394486288d40fa8179cbfaf66e8bdc44b0f",
      "parents": [
        "73b2c7165b76b20eb1290e7efebc33cfd21db1ca",
        "3a09b1be53d23df780a0cd0e4087a05e2ca4a00c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:14:38 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:14:38 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "af5ab277ded04bd9bc6b048c5a2f0e7d70ef0867",
      "tree": "7c593610e47096dd6592b8dbfe166428cc079ed6",
      "parents": [
        "2b08de0073a5697cf84d6f448d6dbc6cf02fc6b5"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Jul 27 21:02:10 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Aug 02 21:45:58 2010 +0200"
      },
      "message": "clockevents: Remove the per cpu tick skew\n\nHistorically, Linux has tried to make the regular timer tick on the\nvarious CPUs not happen at the same time, to avoid contention on\nxtime_lock.\n\nNowadays, with the tickless kernel, this contention no longer happens\nsince time keeping and updating are done differently. In addition,\nthis skew is actually hurting power consumption in a measurable way on\nmany-core systems.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nLKML-Reference: \u003c20100727210210.58d3118c@infradead.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "852db46d55e85b475a72e665ca08d3317769ceef",
      "tree": "3802273b1135f0f650868fe9e048d7c0594195fe",
      "parents": [
        "f12a15be63d1de9a35971f35f06b73088fa25c3a"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:28 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:55 2010 +0200"
      },
      "message": "clocksource: Add __clocksource_updatefreq_hz/khz methods\n\nTo properly handle clocksources that change frequencies\nat the clocksource-\u003eenable() point, this patch adds\na method that will update the clocksource\u0027s mult/shift and\nmax_idle_ns values.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1279068988-21864-12-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "0fb86b06298b6cd3205cac2e68a499f269282dac",
      "tree": "3adcd4149fbe643ea8cae88578e169d02b7a9e5f",
      "parents": [
        "8ab4351a4c888016620f43bde605b3d0964af339"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:26 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:55 2010 +0200"
      },
      "message": "timekeeping: Make xtime and wall_to_monotonic static\n\nThis patch makes xtime and wall_to_monotonic static, as planned in\nDocumentation/feature-removal-schedule.txt. This will allow for\nfurther cleanups to the timekeeping core.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1279068988-21864-10-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "8ab4351a4c888016620f43bde605b3d0964af339",
      "tree": "9d92ee7fbf9391bfcfdc1e49fecc31b9fa4e03c0",
      "parents": [
        "9f31f5774961a735687fee17953ab505b3df3abf"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:25 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:55 2010 +0200"
      },
      "message": "hrtimer: Cleanup direct access to wall_to_monotonic\n\nProvides an accessor function to replace hrtimer.c\u0027s\ndirect access of wall_to_monotonic.\n\nThis will allow wall_to_monotonic to be made static as\nplanned in Documentation/feature-removal-schedule.txt\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1279068988-21864-9-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7615856ebfee52b080c22d263ca4debbd0df0ac1",
      "tree": "beb06e60af7560c28d5bad41f03a5238636e91fc",
      "parents": [
        "06d518e3dfb25334282c7e38b4d7a4eada215f6d"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:23 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:54 2010 +0200"
      },
      "message": "timkeeping: Fix update_vsyscall to provide wall_to_monotonic offset\n\nupdate_vsyscall() did not provide the wall_to_monotoinc offset,\nso arch specific implementations tend to reference wall_to_monotonic\ndirectly. This limits future cleanups in the timekeeping core, so\nthis patch fixes the update_vsyscall interface to provide\nwall_to_monotonic, allowing wall_to_monotonic to be made static\nas planned in Documentation/feature-removal-schedule.txt\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nLKML-Reference: \u003c1279068988-21864-7-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "592913ecb87a9e06f98ddb55b298f1a66bf94c6b",
      "tree": "0f63f5535fe517faf418e0f7e69800fcf1e4d8db",
      "parents": [
        "ce3bf7ab22527183634a76512d9854a38615e4d5"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:20 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:54 2010 +0200"
      },
      "message": "time: Kill off CONFIG_GENERIC_TIME\n\nNow that all arches have been converted over to use generic time via\nclocksources or arch_gettimeoffset(), we can remove the GENERIC_TIME\nconfig option and simplify the generic code.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1279068988-21864-4-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ce3bf7ab22527183634a76512d9854a38615e4d5",
      "tree": "79e48c7c84618d968664bd660c75e03fc98e7d11",
      "parents": [
        "8c73626ab28527b7eb7f3061c027fbfe530c488c"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 13 17:56:19 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 27 12:40:53 2010 +0200"
      },
      "message": "time: Implement timespec_add\n\nAfter accidentally misusing timespec_add_safe, I wanted to make sure\nwe don\u0027t accidently trip over that issue again, so I created a simple\ntimespec_add() function which we can use to replace the instances\nof timespec_add_safe() that don\u0027t want the overflow detection.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1279068988-21864-3-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "dca45ad8af54963c005393a484ad117b8ba6150f",
      "tree": "7c9a6966283a6bb12b54e5680a67d203be292930",
      "parents": [
        "68c38fc3cb4e5a60f502ee9c45f3dfe70e5165ad",
        "cd5b8f8755a89a57fc8c408d284b8b613f090345"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:02 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:08 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: Move from the -rc3 to the almost-rc6 base.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "396e894d289d69bacf5acd983c97cd6e21a14c08",
      "tree": "ec3e3ba19e332a799e1229f62663625d9c7583dd",
      "parents": [
        "f469461df6ff822f71b8737bda86eea20f16ff93"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 09 15:12:27 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 17 12:05:44 2010 +0200"
      },
      "message": "sched: Revert nohz_ratelimit() for now\n\nNorbert reported that nohz_ratelimit() causes his laptop to burn about\n4W (40%) extra. For now back out the change and see if we can adjust\nthe power management code to make better decisions.\n\nReported-by: Norbert Preining \u003cpreining@logic.at\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "698f93159a735bd29a8767c9f60d9b2d75870f8e",
      "tree": "1ea0556201e4fa79c75db621e33c722eedececda",
      "parents": [
        "b27d63d8f8d34af57805f56005e217c150187531"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Jul 02 20:41:51 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Jul 11 21:45:40 2010 +0200"
      },
      "message": "fix comment/printk typos concerning \"already\"\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "123f94f22e3d283dfe68742b269c245b0501ad82",
      "tree": "1d40043b0909f309cf77204ea87be9e61f143e79",
      "parents": [
        "4b78c119f0ba715b4e29b190bf4d7bce810ea0d6",
        "8c215bd3890c347dfb6a2db4779755f8b9c298a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 02 09:52:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 02 09:52:58 2010 -0700"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Cure nr_iowait_cpu() users\n  init: Fix comment\n  init, sched: Fix race between init and kthreadd\n"
    },
    {
      "commit": "8c215bd3890c347dfb6a2db4779755f8b9c298a9",
      "tree": "e6bd5de8a028babe9ec75f744977bd1424df106c",
      "parents": [
        "9715856922bf8475f5428c29b6f4a9eebc97d391"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jul 01 09:07:17 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 01 09:39:48 2010 +0200"
      },
      "message": "sched: Cure nr_iowait_cpu() users\n\nCommit 0224cf4c5e (sched: Intoduce get_cpu_iowait_time_us())\nbroke things by not making sure preemption was indeed disabled\nby the callers of nr_iowait_cpu() which took the iowait value of\nthe current cpu.\n\nThis resulted in a heap of preempt warnings. Cure this by making\nnr_iowait_cpu() take a cpu number and fix up the callers to pass\nin the right number.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: linux-pm@lists.linux-foundation.org\nLKML-Reference: \u003c1277968037.1868.120.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3310d4d38fbc514e7b18bd3b1eea8effdd63b5aa",
      "tree": "14e2a5b6126c9b1341a3d4bf5299545ce4b1999a",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jun 17 18:02:37 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 17 19:37:29 2010 +0200"
      },
      "message": "nohz: Fix nohz ratelimit\n\nChris Wedgwood reports that 39c0cbe (sched: Rate-limit nohz) causes a\nserial console regression, unresponsiveness, and indeed it does. The\nreason is that the nohz code is skipped even when the tick was already\nstopped before the nohz_ratelimit(cpu) condition changed.\n\nMove the nohz_ratelimit() check to the other conditions which prevent\nlong idle sleeps.\n\nReported-by: Chris Wedgwood \u003ccw@f00f.org\u003e\nTested-by: Brian Bloniarz \u003cbmb@athenacr.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Jef Driesen \u003cjefdriesen@telenet.be\u003e\nLKML-Reference: \u003c1276790557.27822.516.camel@twins\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "83cd4fe27ad8446619b2e030b171b858501de87d",
      "tree": "81c7d26f4f00139ae355017239371d91cc4b2aef",
      "parents": [
        "fdf3e95d3916f18bf8703fb065499fdbc4dfe34c"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Fri May 21 17:09:41 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:52 2010 +0200"
      },
      "message": "sched: Change nohz idle load balancing logic to push model\n\nIn the new push model, all idle CPUs indeed go into nohz mode. There is\nstill the concept of idle load balancer (performing the load balancing\non behalf of all the idle cpu\u0027s in the system). Busy CPU kicks the nohz\nbalancer when any of the nohz CPUs need idle load balancing.\nThe kickee CPU does the idle load balancing on behalf of all idle CPUs\ninstead of the normal idle balance.\n\nThis addresses the below two problems with the current nohz ilb logic:\n* the idle load balancer continued to have periodic ticks during idle and\n  wokeup frequently, even though it did not have any rebalancing to do on\n  behalf of any of the idle CPUs.\n* On x86 and CPUs that have APIC timer stoppage on idle CPUs, this\n  periodic wakeup can result in a periodic additional interrupt on a CPU\n  doing the timer broadcast.\n\nAlso currently we are migrating the unpinned timers from an idle to the cpu\ndoing idle load balancing (when all the cpus in the system are idle,\nthere is no idle load balancing cpu and timers get added to the same idle cpu\nwhere the request was made. So the existing optimization works only on semi idle\nsystem).\n\nAnd In semi idle system, we no longer have periodic ticks on the idle load\nbalancer CPU. Using that cpu will add more delays to the timers than intended\n(as that cpu\u0027s timer base may not be uptodate wrt jiffies etc). This was\ncausing mysterious slowdowns during boot etc.\n\nFor now, in the semi idle case, use the nearest busy cpu for migrating timers\nfrom an idle cpu.  This is good for power-savings anyway.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c1274486981.2840.46.camel@sbs-t61.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "164d44fd92e79d5bce54d0d62df9f856f7b23925",
      "tree": "9f21607849b7e684b255578ffdf41951bc31787e",
      "parents": [
        "5bfec46baa3a752393433b8d89d3b2c70820f61d",
        "d7e81c269db899b800e0963dc4aceece1f82a680"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:11:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:11:10 2010 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  clocksource: Add clocksource_register_hz/khz interface\n  posix-cpu-timers: Optimize run_posix_cpu_timers()\n  time: Remove xtime_cache\n  mqueue: Convert message queue timeout to use hrtimers\n  hrtimers: Provide schedule_hrtimeout for CLOCK_REALTIME\n  timers: Introduce the concept of timer slack for legacy timers\n  ntp: Remove tickadj\n  ntp: Make time_adjust static\n  time: Add xtime, wall_to_monotonic to feature-removal-schedule\n  timer: Try to survive timer callback preempt_count leak\n  timer: Split out timer function call\n  timer: Print function name for timer callbacks modifying preemption count\n  time: Clean up warp_clock()\n  cpu-timers: Avoid iterating over all threads in fastpath_timer_check()\n  cpu-timers: Change SIGEV_NONE timer implementation\n  cpu-timers: Return correct previous timer reload value\n  cpu-timers: Cleanup arm_timer()\n  cpu-timers: Simplify RLIMIT_CPU handling\n"
    },
    {
      "commit": "d7e81c269db899b800e0963dc4aceece1f82a680",
      "tree": "bf30c8c5ed86dbf3c71a25e0f3ab1093c19e516f",
      "parents": [
        "29f87b793da421a6ab816d991dc8dbf909dfb66a"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Fri May 07 18:07:38 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 10 14:24:26 2010 +0200"
      },
      "message": "clocksource: Add clocksource_register_hz/khz interface\n\nHow to pick good mult/shift pairs has always been difficult to\ndescribe to folks writing clocksource drivers, since it requires\ncareful tradeoffs in adjustment accuracy vs overflow limits.\n\nNow, with the clocks_calc_mult_shift function, its much\neasier. However, not many clocksources have converted to using that\nfunction, and there is still the issue of the max interval length\nassumption being made by each clocksource driver independently.\n\nSo this patch simplifies the registration process by having\nclocksources be registered with a hz/khz value and the registration\nfunction taking care of setting mult/shift.\n\nThis should take most of the confusion out of writing a clocksource\ndriver.\n\nAdditionally it also keeps the shift size tradeoff (more accuracy vs\nlonger possible nohz times) centralized so the timekeeping core can\nkeep track of the assumptions being made.\n\n[ tglx: Coding style and comments fixed ]\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1273280858-30143-1-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "dbb6be6d5e974c42bbecd183effaa0df69e1dd8b",
      "tree": "5735cb47e70853d057a9881dd0ce44b83e88fa63",
      "parents": [
        "6a867a395558a7f882d041783e4cdea6744ca2bf",
        "b57f95a38233a2e73b679bea4a5453a1cc2a1cc9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 10 11:59:37 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 10 14:20:42 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into timers/core\n\nReason: Further posix_cpu_timer patches depend on mainline changes\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "0224cf4c5ee0d7faec83956b8e21f7d89e3df3bd",
      "tree": "daac87f9766d1a6c71bcff021414d3deaae40da1",
      "parents": [
        "e0e37c200f1357db0dd986edb359c41c57d24f6e"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun May 09 08:25:23 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 09 19:35:27 2010 +0200"
      },
      "message": "sched: Intoduce get_cpu_iowait_time_us()\n\nFor the ondemand cpufreq governor, it is desired that the iowait\ntime is microaccounted in a similar way as idle time is.\n\nThis patch introduces the infrastructure to account and expose\nthis information via the get_cpu_iowait_time_us() function.\n\n[akpm@linux-foundation.org: fix CONFIG_NO_HZ\u003dn build]\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: davej@redhat.com\nLKML-Reference: \u003c20100509082523.284feab6@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e0e37c200f1357db0dd986edb359c41c57d24f6e",
      "tree": "9f799889b2166528e4b264f3c58a52d1edbd4bdf",
      "parents": [
        "8d63bf949e330588b80d30ca8f0a27a45297a9e9"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun May 09 08:24:39 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 09 19:35:26 2010 +0200"
      },
      "message": "sched: Eliminate the ts-\u003eidle_lastupdate field\n\nNow that the only user of ts-\u003eidle_lastupdate is\nupdate_ts_time_stats(), the entire field can be eliminated.\n\nIn update_ts_time_stats(), idle_lastupdate is first set to\n\"now\", and a few lines later, the only user is an if() statement\nthat assigns a variable either to \"now\" or to\nts-\u003eidle_lastupdate, which has the value of \"now\" at that point.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: davej@redhat.com\nLKML-Reference: \u003c20100509082439.2fab0b4f@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8d63bf949e330588b80d30ca8f0a27a45297a9e9",
      "tree": "e416fe04ddacdf3fc3e2c9ec6938da0ebbab7ff1",
      "parents": [
        "8c7b09f43f4bf570654bcc458ce96819a932303c"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun May 09 08:24:03 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 09 19:35:26 2010 +0200"
      },
      "message": "sched: Fold updating of the last_update_time_info into update_ts_time_stats()\n\nThis patch folds the updating of the last_update_time into the\nupdate_ts_time_stats() function, and updates the callers.\n\nThis allows for further cleanups that are done in the next\npatch.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: davej@redhat.com\nLKML-Reference: \u003c20100509082403.60072967@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8c7b09f43f4bf570654bcc458ce96819a932303c",
      "tree": "33eb6f860fa9a31ea63b67247890a6762439fde2",
      "parents": [
        "595aac488b546c7185be7e29c8ae165a588b2a9f"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun May 09 08:23:23 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 09 19:35:26 2010 +0200"
      },
      "message": "sched: Update the idle statistics in get_cpu_idle_time_us()\n\nRight now, get_cpu_idle_time_us() only reports the idle\nstatistics upto the point the CPU entered last idle; not what is\nvalid right now.\n\nThis patch adds an update of the idle statistics to\nget_cpu_idle_time_us(), so that calling this function always\nreturns statistics that are accurate at the point of the call.\n\nThis includes resetting the start of the idle time for\naccounting purposes to avoid double accounting.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: davej@redhat.com\nLKML-Reference: \u003c20100509082323.2d2f1945@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "595aac488b546c7185be7e29c8ae165a588b2a9f",
      "tree": "5037879b01cbcb7cf84f4ab99a114aca687f0300",
      "parents": [
        "b1f724c3055fa75a31d272222213647547a2d3d4"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun May 09 08:22:45 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 09 19:35:25 2010 +0200"
      },
      "message": "sched: Introduce a function to update the idle statistics\n\nCurrently, two places update the idle statistics (and more to\ncome later in this series).\n\nThis patch creates a helper function for updating these\nstatistics.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: davej@redhat.com\nLKML-Reference: \u003c20100509082245.163e67ed@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b1f724c3055fa75a31d272222213647547a2d3d4",
      "tree": "9f9e9105a01405e252b5214e83bdbfcd10921f43",
      "parents": [
        "e7858f52a5cb868289a72264534a1f05f3340c6c"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun May 09 08:22:08 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 09 19:35:25 2010 +0200"
      },
      "message": "sched: Add a comment to get_cpu_idle_time_us()\n\nThe exported function get_cpu_idle_time_us() has no comment\ndescribing it; add a kerneldoc comment\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: davej@redhat.com\nLKML-Reference: \u003c20100509082208.7cb721f0@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b257c14ceb1194a6181144210056d38f22127189",
      "tree": "c803925f1d5bf2237e7495d306bf43929df0c952",
      "parents": [
        "371fd7e7a56a5c136d31aa980011bd2f131c3ef5",
        "2ba3abd8186f24c7fb418927025b4e2120e3a362"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 15 09:35:24 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 15 09:36:16 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: merge the latest fixes, update to -rc4.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6a867a395558a7f882d041783e4cdea6744ca2bf",
      "tree": "dfe350df25fba5fec6f7e1088b04d6b03f0974b3",
      "parents": [
        "9ca7d8e6834c40a99622bbe4a88aaf64313ae43c"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Apr 06 14:30:51 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Apr 13 12:43:42 2010 +0200"
      },
      "message": "time: Remove xtime_cache\n\nWith the earlier logarithmic time accumulation patch, xtime will now\nalways be within one \"tick\" of the current time, instead of possibly\nhalf a second off.\n\nThis removes the need for the xtime_cache value, which always stored the\ntime at the last interrupt, so this patch cleans that up removing the\nxtime_cache related code.\n\nThis patch also addresses an issue with an earlier version of this change,\nwhere xtime_cache was normalizing xtime, which could in some cases be\nnot valid (ie: tv_nsec \u003d\u003d NSEC_PER_SEC). This is fixed by handling\nthe edge case in update_wall_time().\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Petr Titěra \u003cP.Titera@century.cz\u003e\nLKML-Reference: \u003c1270589451-30773-1-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c9494727cf293ae2ec66af57547a3e79c724fec2",
      "tree": "44ae197b64fa7530ee695a90ad31326dda06f1e1",
      "parents": [
        "6427462bfa50f50dc6c088c07037264fcc73eca1",
        "42be79e37e264557f12860fa4cc84b4de3685954"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:02:55 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:03:08 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: update to latest upstream\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "e1292ba164742e3a236e407148e00300b7196906",
      "tree": "67b924190ab7a64a64dad136de45932f8af1a970",
      "parents": [
        "12b8aeee3e51654fb95a3baff2e093f2513bb87d"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Thu Mar 18 20:19:27 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 23 17:19:37 2010 +0100"
      },
      "message": "ntp: Make time_adjust static\n\nNow that no arches are accessing time_adjust directly,\nmake it static.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1268968769-19209-1-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "830ec0458c390f29c6c99e1ff7feab9e36368d12",
      "tree": "81a344892bd7696a42d87b76189b59f4e1af71ef",
      "parents": [
        "15365c108ea27598e265f8c13e7051d99ca5b0b9"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Thu Mar 18 14:47:30 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 23 16:41:01 2010 +0100"
      },
      "message": "time: Fix accumulation bug triggered by long delay.\n\nThe logarithmic accumulation done in the timekeeping has some overflow\nprotection that limits the max shift value. That means it will take\nmore then shift loops to accumulate all of the cycles. This causes\nthe shift decrement to underflow, which causes the loop to never exit.\n\nThe simplest fix would be simply to do a:\n\tif (shift)\n\t\tshift--;\n\nHowever that is not optimal, as we know the cycle offset is larger\nthen the interval \u003c\u003c shift, the above would make shift drop to zero,\nthen we would be spinning for quite awhile accumulating at interval\nchunks at a time.\n\nInstead, this patch only decreases shift if the offset is smaller\nthen cycle_interval \u003c\u003c shift.  This makes sure we accumulate using\nthe largest chunks possible without overflowing tick_length, and limits\nthe number of iterations through the loop.\n\nThis issue was found and reported by Sonic Zhang, who also tested the fix.\nMany thanks your explanation and testing!\n\nReported-by: Sonic Zhang \u003csonic.adi@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nTested-by: Sonic Zhang \u003csonic.adi@gmail.com\u003e\nLKML-Reference: \u003c1268948850-5225-1-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "80a05b9ffa7dc13f6693902dd8999a2b61a3a0d7",
      "tree": "5612eeb26804b135de66779d1a00eaf35a4ceca1",
      "parents": [
        "ad6759fbf35d104dbf573cd6f4c6784ad6823f7e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 12 17:34:14 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 12 19:10:29 2010 +0100"
      },
      "message": "clockevents: Sanitize min_delta_ns adjustment and prevent overflows\n\nThe current logic which handles clock events programming failures can\nincrease min_delta_ns unlimited and even can cause overflows.\n\nSanitize it by:\n - prevent zero increase when min_delta_ns \u003d\u003d 1\n - limiting min_delta_ns to a jiffie\n - bail out if the jiffie limit is hit\n - add retries stats for /proc/timer_list so we can gather data\n\nReported-by: Uwe Kleine-Koenig \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "39c0cbe2150cbd848a25ba6cdb271d1ad46818ad",
      "tree": "7b9c356b39a2b50219398ce534d7d64e7ab4bf06",
      "parents": [
        "41acab8851a0408c1d5ad6c21a07456f88b54d40"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Mar 11 17:17:13 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 11 18:32:49 2010 +0100"
      },
      "message": "sched: Rate-limit nohz\n\nEntering nohz code on every micro-idle is costing ~10% throughput for netperf\nTCP_RR when scheduling cross-cpu.  Rate limiting entry fixes this, but raises\nticks a bit.  On my Q6600, an idle box goes from ~85 interrupts/sec to 128.\n\nThe higher the context switch rate, the more nohz entry costs.  With this patch\nand some cycle recovery patches in my tree, max cross cpu context switch rate is\nimproved by ~16%, a large portion of which of which is this ratelimiting.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1268301003.6785.28.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad6759fbf35d104dbf573cd6f4c6784ad6823f7e",
      "tree": "6eb4b1770d8875828c9693cdd510f43fb87da8b6",
      "parents": [
        "13dda80e48439b446d0bc9bab34b91484bc8f533"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Mon Mar 01 12:34:43 2010 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 02 09:22:25 2010 +0100"
      },
      "message": "timekeeping: Prevent oops when GENERIC_TIME\u003dn\n\nAaro Koskinen reported an issue in kernel.org bugzilla #15366, where\non non-GENERIC_TIME systems, accessing\n/sys/devices/system/clocksource/clocksource0/current_clocksource\nresults in an oops.\n\nIt seems the timekeeper/clocksource rework missed initializing the\ncurr_clocksource value in the !GENERIC_TIME case.\n\nThanks to Aaro for reporting and diagnosing the issue as well as\ntesting the fix!\n\nReported-by: Aaro Koskinen \u003caaro.koskinen@iki.fi\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c1267475683.4216.61.camel@localhost.localdomain\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "e56425b135a8892d1e71ad5bb605d12c10efeb32",
      "tree": "9bb899e1b6b45a125bcc21554f3673878d932035",
      "parents": [
        "786f8ba2e9449a7f01ec6bc35838d0a335921061",
        "6622e670b26fbaa9c4ae7772a4d2d0abd3414b51"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 08:48:25 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 08:48:25 2010 -0800"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  posix-timers.c: Don\u0027t export local functions\n  clocksource: start CMT at clocksource resume\n  clocksource: add suspend callback\n  clocksource: add argument to resume callback\n  ntp: Cleanup xtime references in ntp.c\n  ntp: Make time_esterror and time_maxerror static\n"
    },
    {
      "commit": "c93d89f3dbf0202bf19c07960ca8602b48c2f9a0",
      "tree": "1534d49d8baeab231dc9f3693780a605d5c32d2e",
      "parents": [
        "6339204ecc2aa2067a99595522de0403f0854bb8"
      ],
      "author": {
        "name": "Jason Wang",
        "email": "jasowang@redhat.com",
        "time": "Wed Jan 27 19:13:40 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Tue Feb 09 19:20:15 2010 +0200"
      },
      "message": "Export the symbol of getboottime and mmonotonic_to_bootbased\n\nExport getboottime and monotonic_to_bootbased in order to let them\ncould be used by following patch.\n\nCc: stable@kernel.org\nSigned-off-by: Jason Wang \u003cjasowang@redhat.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "c54a42b19fbaae4e9f212322ecca25a6bc95c1ba",
      "tree": "2c929d3cde3b4ae864d5f5a50bdda688fd5293eb",
      "parents": [
        "17622339af2536b32cf29699ddd4ba0fe79a61d5"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@opensource.se",
        "time": "Tue Feb 02 14:41:41 2010 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 05 14:54:10 2010 +0100"
      },
      "message": "clocksource: add suspend callback\n\nAdd a clocksource suspend callback.  This callback can be used by the\nclocksource driver to shutdown and perform any kind of late suspend\nactivities even though the clocksource driver itself is a non-sysdev\ndriver.\n\nOne example where this is useful is to fix the sh_cmt.c platform driver\nthat today suspends using the platform bus and shuts down the clocksource\ntoo early.\n\nWith this callback in place the sh_cmt driver will suspend using the\nclocksource and clockevent hooks and leave the platform device pm\ncallbacks unused.\n\nSigned-off-by: Magnus Damm \u003cdamm@opensource.se\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "17622339af2536b32cf29699ddd4ba0fe79a61d5",
      "tree": "03832ecc8aecd1623b8dc8a8eef915cea08226e4",
      "parents": [
        "7e1b584774c6168ca5b27c340fbeff8f67651e4f"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@opensource.se",
        "time": "Tue Feb 02 14:41:39 2010 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 05 14:54:10 2010 +0100"
      },
      "message": "clocksource: add argument to resume callback\n\nPass the clocksource as an argument to the clocksource resume callback. \nNeeded so we can point out which CMT channel the sh_cmt.c driver shall\nresume.\n\nSigned-off-by: Magnus Damm \u003cdamm@opensource.se\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7e1b584774c6168ca5b27c340fbeff8f67651e4f",
      "tree": "1a70db44cb1a8c000f6f1bd943754987a06c0fcc",
      "parents": [
        "1f5b8f8a2031ae9507eb67743cad4d424739bfff"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Thu Jan 28 20:20:44 2010 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jan 29 10:15:19 2010 +0100"
      },
      "message": "ntp: Cleanup xtime references in ntp.c\n\nntp.c doesn\u0027t need to access timekeeping internals directly, so change\nxtime references to use the get_seconds() timekeeping interface.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: richard@rsk.demon.co.uk\nLKML-Reference: \u003c1264738844-21935-1-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1f5b8f8a2031ae9507eb67743cad4d424739bfff",
      "tree": "da8cad7941ea5c9a953f65cabc64a5c4bc57fde4",
      "parents": [
        "64a028a6de08545a2c94f302bc7694bf48aee5b5"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Thu Jan 28 15:02:41 2010 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jan 29 10:15:19 2010 +0100"
      },
      "message": "ntp: Make time_esterror and time_maxerror static\n\nMake time_esterror and time_maxerror static as no one uses them\noutside of ntp.c\n    \nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: richard@rsk.demon.co.uk\nLKML-Reference: \u003c1264719761.3437.47.camel@localhost.localdomain\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "7b7422a566aa0dc1e582ce263d4c7ff4a772700a",
      "tree": "29cb2554e08df65a82afd46f2e034ee0e015ac80",
      "parents": [
        "9a3cbe3265c7714e8ee423feb6e27a080af79608"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jan 26 12:51:10 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jan 26 14:53:16 2010 +0100"
      },
      "message": "clocksource: Prevent potential kgdb dead lock\n\ncommit 0f8e8ef7 (clocksource: Simplify clocksource watchdog resume\nlogic) introduced a potential kgdb dead lock. When the kernel is\nstopped by kgdb inside code which holds watchdog_lock then kgdb dead\nlocks in clocksource_resume_watchdog().\n\nclocksource_resume_watchdog() is called from kbdg via\nclocksource_touch_watchdog() to avoid that the clock source watchdog\nmarks TSC unstable after the kernel has been stopped.\n\nSolve this by replacing spin_lock with a spin_trylock and just return\nin case the lock is held. Not resetting the watchdog might result in\nTSC becoming marked unstable, but that\u0027s an acceptable penalty for\nusing kgdb.\n\nThe timekeeping is anyway easily screwed up by kgdb when the system\nuses either jiffies or a clock source which wraps in short intervals\n(e.g. pm_timer wraps about every 4.6s), so we really do not have to\nworry about that occasional TSC marked unstable side effect.\n\nThe second caller of clocksource_resume_watchdog() is\nclocksource_resume(). The trylock is safe here as well because the\nsystem is UP at this point, interrupts are disabled and nothing else\ncan hold watchdog_lock().\n\nReported-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nLKML-Reference: \u003c1264480000-6997-4-git-send-email-jason.wessel@windriver.com\u003e\nCc: kgdb-bugreport@lists.sourceforge.net\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ea9d8e3f45404d411c00ae67b45cc35c58265bb7",
      "tree": "227fbaa1c05feec65dad473e7a49133985759ab7",
      "parents": [
        "7dc9c484a71525794ca05cf7a47f283f1b54cd12"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Thu Jan 07 11:22:44 2010 +0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jan 18 14:44:50 2010 +0100"
      },
      "message": "clockevent: Don\u0027t remove broadcast device when cpu is dead\n\nMarc reported that the BUG_ON in clockevents_notify() triggers on his\nsystem. This happens because the kernel tries to remove an active\nclock event device (used for broadcasting) from the device list.\n\nThe handling of devices which can be used as per cpu device and as a\nglobal broadcast device is suboptimal.\n\nThe simplest solution for now (and for stable) is to check whether the\ndevice is used as global broadcast device, but this needs to be\nrevisited.\n\n[ tglx: restored the cpuweight check and massaged the changelog ]\n\nReported-by: Marc Dionne \u003cmarc.c.dionne@gmail.com\u003e\nTested-by: Marc Dionne \u003cmarc.c.dionne@gmail.com\u003e\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nLKML-Reference: \u003c1262834564-13033-1-git-send-email-dfeng@redhat.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "83f57a11d84460dfe2afdb5a8bc759953428e38b",
      "tree": "b8506a6b61eb23e3d203fb248776c7eab9270c2d",
      "parents": [
        "0e2c8b8f55072a98b99e7bdad55c912084d6a526"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 22 14:10:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 22 14:10:37 2009 -0800"
      },
      "message": "Revert \"time: Remove xtime_cache\"\n\nThis reverts commit 7bc7d637452383d56ba4368d4336b0dde1bb476d, as\nrequested by John Stultz. Quoting John:\n\n \"Petr Titěra reported an issue where he saw odd atime regressions with\n  2.6.33 where there were a full second worth of nanoseconds in the\n  nanoseconds field.\n\n  He also reviewed the time code and narrowed down the problem: unhandled\n  overflow of the nanosecond field caused by rounding up the\n  sub-nanosecond accumulated time.\n\n  Details:\n\n   * At the end of update_wall_time(), we currently round up the\n  sub-nanosecond portion of accumulated time when storing it into xtime.\n  This was added to avoid time inconsistencies caused when the\n  sub-nanosecond portion was truncated when storing into xtime.\n  Unfortunately we don\u0027t handle the possible second overflow caused by\n  that rounding.\n\n   * Previously the xtime_cache code hid this overflow by normalizing the\n  xtime value when storing into the xtime_cache.\n\n   * We could try to handle the second overflow after the rounding up, but\n  since this affects the timekeeping\u0027s internal state, this would further\n  complicate the next accumulation cycle, causing small errors in ntp\n  steering. As much as I\u0027d like to get rid of it, the xtime_cache code is\n  known to work.\n\n   * The correct fix is really to include the sub-nanosecond portion in the\n  timekeeping accessor function, so we don\u0027t need to round up at during\n  accumulation. This would greatly simplify the accumulation code.\n  Unfortunately, we can\u0027t do this safely until the last three\n  non-GENERIC_TIME arches (sparc32, arm, cris) are converted  (those\n  patches are in -mm) and we kill off the spots where arches set xtime\n  directly. This is all 2.6.34 material, so I think reverting the\n  xtime_cache change is the best approach for now.\n\n  Many thanks to Petr for both reporting and finding the issue!\"\n\nReported-by: Petr Titěra \u003cP.Titera@century.cz\u003e\nRequested-by: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3cd312c3e887b4bee2d94668a481b3d19c07732c",
      "tree": "c8978186da2155f7752de79a2cd5b59e3e298ce8",
      "parents": [
        "ecd5907a200b18aeddac68b8c734b8ad4c931205",
        "cf1e367ee84e02ac349ad0858eb65e8a6a511c8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 19 09:47:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 19 09:47:18 2009 -0800"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  timers: Remove duplicate setting of new_base in __mod_timer()\n  clockevents: Prevent clockevent_devices list corruption on cpu hotplug\n"
    },
    {
      "commit": "62ac12795095dc959649c66ace78708e7ac52477",
      "tree": "8ee766dda801b8990e41b4332697bbe365032626",
      "parents": [
        "cc216b86e51e9ab22265ea9591769c9ee235e1e4"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Dec 17 11:43:26 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Dec 17 11:43:29 2009 +1030"
      },
      "message": "cpumask: avoid dereferencing struct cpumask\n\nstruct cpumask will be undefined soon with CONFIG_CPUMASK_OFFSTACK\u003dy,\nto avoid them being declared on the stack.\n\ncpumask_bits() does what we want here (of course, this code is crap).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTo: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f065f41f48569122b5bcddbd1ba2354f7cc29fdc",
      "tree": "68606305bfb3aba16437017e0596ccae11e6f6db",
      "parents": [
        "4365a5676fa3aa1d5ae6c90c22a0044f09ba584e"
      ],
      "author": {
        "name": "Barry Song",
        "email": "21cnbao@gmail.com",
        "time": "Tue Dec 15 16:45:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:19:57 2009 -0800"
      },
      "message": "timecompare: fix half-Y2K38 problem in timecompare_update while calculating offset\n\nktime will overflow from 03:14:07 UTC on Tuesday, 19 January 2038,\nktime_add() in timecompare_update() will overflow a half earlier.  As a\nresult, wrong offset will be gotten, then cause some strange problems.\n\nSigned-off-by: Barry Song \u003c21cnbao@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Patrick Ohly \u003cpatrick.ohly@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5f91da0a6973bb6f9ff3b91b0e92c0773a458f3",
      "tree": "911ad0eeb484ce9309504fcf5a031403ad47ce84",
      "parents": [
        "d192c47f25daa98996c7eae543d8a27e41247ec2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Dec 08 12:40:31 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:34 2009 +0100"
      },
      "message": "clockevents: Convert to raw_spinlock\n\nConvert locks which cannot be sleeping locks in preempt-rt to\nraw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d192c47f25daa98996c7eae543d8a27e41247ec2",
      "tree": "7ad7970ffbf0fa25bab4fc9eb20f6a6fdbb30bb1",
      "parents": [
        "aef9cb05247df3d7615773737beb4f83d78577bb"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Dec 08 12:49:26 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:34 2009 +0100"
      },
      "message": "clockevents: Make tick_device_lock static\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ecb49d1a639acbacfc3771cae5ec07bed5df3847",
      "tree": "19c8fa91d1f9b1c965cd60653e16d1eb60cd9d3a",
      "parents": [
        "239007b8440abff689632f50cdf0f2b9e895b534"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 17 16:36:54 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:34 2009 +0100"
      },
      "message": "hrtimers: Convert to raw_spinlocks\n\nConvert locks which cannot be sleeping locks in preempt-rt to\nraw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d0316554d3586cbea60592a41391b5def2553d6f",
      "tree": "5e7418f0bacbc68cec5dfd1541e03eb56870aa02",
      "parents": [
        "fb0bbb92d42d5bd0ab224605444efdfed06d6934",
        "51e99be00ce2713cbb841cedc997cafa6e26c7f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)\n  m68k: rename global variable vmalloc_end to m68k_vmalloc_end\n  percpu: add missing per_cpu_ptr_to_phys() definition for UP\n  percpu: Fix kdump failure if booted with percpu_alloc\u003dpage\n  percpu: make misc percpu symbols unique\n  percpu: make percpu symbols in ia64 unique\n  percpu: make percpu symbols in powerpc unique\n  percpu: make percpu symbols in x86 unique\n  percpu: make percpu symbols in xen unique\n  percpu: make percpu symbols in cpufreq unique\n  percpu: make percpu symbols in oprofile unique\n  percpu: make percpu symbols in tracer unique\n  percpu: make percpu symbols under kernel/ and mm/ unique\n  percpu: remove some sparse warnings\n  percpu: make alloc_percpu() handle array types\n  vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n  this_cpu: Use this_cpu_xx in trace_functions_graph.c\n  this_cpu: Use this_cpu_xx for ftrace\n  this_cpu: Use this_cpu_xx in nmi handling\n  this_cpu: Use this_cpu operations in RCU\n  this_cpu: Use this_cpu ops for VM statistics\n  ...\n\nFix up trivial (famous last words) global per-cpu naming conflicts in\n\tarch/x86/kvm/svm.c\n\tmm/slab.c\n"
    },
    {
      "commit": "bb6eddf7676e1c1f3e637aa93c5224488d99036f",
      "tree": "3256cb7ea6954f28b0bb3ccee2db570e3d0ff762",
      "parents": [
        "e9c0748b687aa70179a9e6d8ffc24b2874fe350b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 10 15:35:10 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Dec 11 10:28:08 2009 +0100"
      },
      "message": "clockevents: Prevent clockevent_devices list corruption on cpu hotplug\n\nXiaotian Feng triggered a list corruption in the clock events list on\nCPU hotplug and debugged the root cause.\n\nIf a CPU registers more than one per cpu clock event device, then only\nthe active clock event device is removed on CPU_DEAD. The unused\ndevices are kept in the clock events device list.\n\nOn CPU up the clock event devices are registered again, which means\nthat we list_add an already enqueued list_head. That results in list\ncorruption.\n\nResolve this by removing all devices which are associated to the dead\nCPU on CPU_DEAD.\n\nReported-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "41d2e494937715d3150e5c75d01f0e75ae899337",
      "tree": "9bc7270aa7b06ed065671a96085fbdf235977d91",
      "parents": [
        "3067e02f8f3ae2f3f02ba76400d03b8bcb4942b0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 17:05:44 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 10 13:08:11 2009 +0100"
      },
      "message": "hrtimer: Tune hrtimer_interrupt hang logic\n\nThe hrtimer_interrupt hang logic adjusts min_delta_ns based on the\nexecution time of the hrtimer callbacks.\n\nThis is error-prone for virtual machines, where a guest vcpu can be\nscheduled out during the execution of the callbacks (and the callbacks\nthemselves can do operations that translate to blocking operations in\nthe hypervisor), which in can lead to large min_delta_ns rendering the\nsystem unusable.\n\nReplace the current heuristics with something more reliable. Allow the\ninterrupt code to try 3 times to catch up with the lost time. If that\nfails use the total time spent in the interrupt handler to defer the\nnext timer interrupt so the system can catch up with other things\nwhich got delayed. Limit that deferment to 100ms.\n\nThe retry events and the maximum time spent in the interrupt handler\nare recorded and exposed via /proc/timer_list\n\nInspired by a patch from Marcelo.\n\nReported-by: Michael Tokarev \u003cmjt@tls.msk.ru\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: kvm@vger.kernel.org\n\n"
    },
    {
      "commit": "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
      "tree": "856ba96302a36014736747e8464f80eeb827bbdd",
      "parents": [
        "f6c4c8195b5e7878823caa1181be404d9e86d369",
        "d014d043869cdc591f3a33243d3481fa4479c2d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits)\n  tree-wide: fix misspelling of \"definition\" in comments\n  reiserfs: fix misspelling of \"journaled\"\n  doc: Fix a typo in slub.txt.\n  inotify: remove superfluous return code check\n  hdlc: spelling fix in find_pvc() comment\n  doc: fix regulator docs cut-and-pasteism\n  mtd: Fix comment in Kconfig\n  doc: Fix IRQ chip docs\n  tree-wide: fix assorted typos all over the place\n  drivers/ata/libata-sff.c: comment spelling fixes\n  fix typos/grammos in Documentation/edac.txt\n  sysctl: add missing comments\n  fs/debugfs/inode.c: fix comment typos\n  sgivwfb: Make use of ARRAY_SIZE.\n  sky2: fix sky2_link_down copy/paste comment error\n  tree-wide: fix typos \"couter\" -\u003e \"counter\"\n  tree-wide: fix typos \"offest\" -\u003e \"offset\"\n  fix kerneldoc for set_irq_msi()\n  spidev: fix double \"of of\" in comment\n  comment typo fix: sybsystem -\u003e subsystem\n  ...\n"
    },
    {
      "commit": "fbf07eac7bf21c262143194181bd97c5d18b8ceb",
      "tree": "c9228b7d272f1e39472da28032605ecd1860e688",
      "parents": [
        "60d8ce2cd6c283132928c11f3fd57ff4187287e0",
        "8629ea2eaba8ca0de2e38ce1b4a825e16255976e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 19:28:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 19:28:09 2009 -0800"
      },
      "message": "Merge branch \u0027timers-for-linus-urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus-urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  hrtimer: Fix /proc/timer_list regression\n  itimers: Fix racy writes to cpu_itimer fields\n  timekeeping: Fix clock_gettime vsyscall time warp\n"
    },
    {
      "commit": "60d8ce2cd6c283132928c11f3fd57ff4187287e0",
      "tree": "36d08a2ead7a7d8c3c081d484215ccca00bf6aab",
      "parents": [
        "849e8dea099aafa56db9e74b580b0d858b956533",
        "feae3203d711db0a9965300ee6d592257fdaae4f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 19:27:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 19:27:08 2009 -0800"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  timers, init: Limit the number of per cpu calibration bootup messages\n  posix-cpu-timers: optimize and document timer_create callback\n  clockevents: Add missing include to pacify sparse\n  x86: vmiclock: Fix printk format\n  x86: Fix printk format due to variable type change\n  sparc: fix printk for change of variable type\n  clocksource/events: Fix fallout of generic code changes\n  nohz: Allow 32-bit machines to sleep for more than 2.15 seconds\n  nohz: Track last do_timer() cpu\n  nohz: Prevent clocksource wrapping during idle\n  nohz: Type cast printk argument\n  mips: Use generic mult/shift factor calculation for clocks\n  clocksource: Provide a generic mult/shift factor calculation\n  clockevents: Use u32 for mult and shift factors\n  nohz: Introduce arch_needs_cpu\n  nohz: Reuse ktime in sub-functions of tick_check_idle.\n  time: Remove xtime_cache\n  time: Implement logarithmic time accumulation\n"
    },
    {
      "commit": "3505d1a9fd65e2d3e00827857b6795d9d8983658",
      "tree": "941cfafdb57c427bb6b7ebf6354ee93b2a3693b5",
      "parents": [
        "dfef948ed2ba69cf041840b5e860d6b4e16fa0b1",
        "66b00a7c93ec782d118d2c03bd599cfd041e80a1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 18 22:19:03 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 18 22:19:03 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/sfc/sfe4001.c\n\tdrivers/net/wireless/libertas/cmd.c\n\tdrivers/staging/Kconfig\n\tdrivers/staging/Makefile\n\tdrivers/staging/rtl8187se/Kconfig\n\tdrivers/staging/rtl8192e/Kconfig\n"
    },
    {
      "commit": "8e1a928a2ed7e8d5cad97c8e985294b4caedd168",
      "tree": "0bd5887c4eb7aa892488caf6f1065e50d37e8e6c",
      "parents": [
        "070e5c3f9989a72076e83fdd5ede3f0f3eb17264"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Fri Oct 16 18:19:01 2009 -0400"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Nov 18 12:31:48 2009 +0100"
      },
      "message": "clockevents: Add missing include to pacify sparse\n\nInclude \"tick-internal.h\" in order to pick up the extern function\nprototype for clockevents_shutdown(). This quiets the following sparse\nbuild noise:\n\n  warning: symbol \u0027clockevents_shutdown\u0027 was not declared. Should it be static?\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nLKML-Reference: \u003cBD79186B4FD85F4B8E60E381CAEE190901E24550@mi8nycmail19.Mi8.com\u003e\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: johnstul@us.ibm.com\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "0696b711e4be45fa104c12329f617beb29c03f78",
      "tree": "96292fdc4ab443d6218077d363548532df6cbd8b",
      "parents": [
        "a9366e61b03f55a6e009e687ad10e706714c9907"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "ming.m.lin@intel.com",
        "time": "Tue Nov 17 13:49:50 2009 +0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 17 11:52:34 2009 +0100"
      },
      "message": "timekeeping: Fix clock_gettime vsyscall time warp\n\nSince commit 0a544198 \"timekeeping: Move NTP adjusted clock multiplier\nto struct timekeeper\" the clock multiplier of vsyscall is updated with\nthe unmodified clock multiplier of the clock source and not with the\nNTP adjusted multiplier of the timekeeper.\n\nThis causes user space observerable time warps:\nnew CLOCK-warp maximum: 120 nsecs,  00000025c337c537 -\u003e 00000025c337c4bf\n\nAdd a new argument \"mult\" to update_vsyscall() and hand in the\ntimekeeping internal NTP adjusted multiplier.\n\nSigned-off-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: \"Zhang Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nLKML-Reference: \u003c1258436990.17765.83.camel@minggr.sh.intel.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a362c638bdf052bf424bce7645d39b101090f6ba",
      "tree": "9622bd946d6f21071611415530a7ce736144a9ff",
      "parents": [
        "97813f2fe77804a4464564c75ba8d8826377feea"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Nov 14 00:26:34 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Nov 14 00:35:52 2009 +0100"
      },
      "message": "clocksource/events: Fix fallout of generic code changes\n\npowerpc grew a new warning due to the type change of clockevent-\u003emult.\n\nThe architectures which use parts of the generic time keeping\ninfrastructure tripped over my wrong assumption that\nclocksource_register is only used when GENERIC_TIME\u003dy.\n\nI should have looked and also I should have known better. These\nrenitent Gaul villages are racking my nerves. Some serious deprecating\nis due.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "97813f2fe77804a4464564c75ba8d8826377feea",
      "tree": "5dc7154c5687edaee5712408c8baf605463ff093",
      "parents": [
        "27185016b806d5a1181ff501cae120582b2b27dd"
      ],
      "author": {
        "name": "Jon Hunter",
        "email": "jon-hunter@ti.com",
        "time": "Tue Aug 18 12:45:11 2009 -0500"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 20:46:24 2009 +0100"
      },
      "message": "nohz: Allow 32-bit machines to sleep for more than 2.15 seconds\n\nIn the dynamic tick code, \"max_delta_ns\" (member of the\n\"clock_event_device\" structure) represents the maximum sleep time\nthat can occur between timer events in nanoseconds.\n\nThe variable, \"max_delta_ns\", is defined as an unsigned long\nwhich is a 32-bit integer for 32-bit machines and a 64-bit\ninteger for 64-bit machines (if -m64 option is used for gcc).\nThe value of max_delta_ns is set by calling the function\n\"clockevent_delta2ns()\" which returns a maximum value of LONG_MAX.\nFor a 32-bit machine LONG_MAX is equal to 0x7fffffff and in\nnanoseconds this equates to ~2.15 seconds. Hence, the maximum\nsleep time for a 32-bit machine is ~2.15 seconds, where as for\na 64-bit machine it will be many years.\n\nThis patch changes the type of max_delta_ns to be \"u64\" instead of\n\"unsigned long\" so that this variable is a 64-bit type for both 32-bit\nand 64-bit machines. It also changes the maximum value returned by\nclockevent_delta2ns() to KTIME_MAX.  Hence this allows a 32-bit\nmachine to sleep for longer than ~2.15 seconds. Please note that this\npatch also changes \"min_delta_ns\" to be \"u64\" too and although this is\nunnecessary, it makes the patch simpler as it avoids to fixup all\ncallers of clockevent_delta2ns().\n\n[ tglx: changed \"unsigned long long\" to u64 as we use this data type\n  \tthrough out the time code ]\n\nSigned-off-by: Jon Hunter \u003cjon-hunter@ti.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1250617512-23567-3-git-send-email-jon-hunter@ti.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "27185016b806d5a1181ff501cae120582b2b27dd",
      "tree": "44b0da428fccaea1ad83c537bcc99a80b9251227",
      "parents": [
        "98962465ed9e6ea99c38e0af63fe1dcb5a79dc25"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Nov 12 22:12:06 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 20:46:24 2009 +0100"
      },
      "message": "nohz: Track last do_timer() cpu\n\nThe previous patch which limits the sleep time to the maximum\ndeferment time of the time keeping clocksource has some limitations on\nSMP machines: if all CPUs are idle then for all CPUs the maximum sleep\ntime is limited.\n\nSolve this by keeping track of which cpu had the do_timer() duty\nassigned last and limit the sleep time only for this cpu.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nCc: Jon Hunter \u003cjon-hunter@ti.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\n"
    },
    {
      "commit": "98962465ed9e6ea99c38e0af63fe1dcb5a79dc25",
      "tree": "f3f69ad8f6cd47e72a75da6de49eb3402f15cd9b",
      "parents": [
        "529eaccd900a59724619b4a6ef6579fd518d5218"
      ],
      "author": {
        "name": "Jon Hunter",
        "email": "jon-hunter@ti.com",
        "time": "Tue Aug 18 12:45:10 2009 -0500"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 20:46:24 2009 +0100"
      },
      "message": "nohz: Prevent clocksource wrapping during idle\n\nThe dynamic tick allows the kernel to sleep for periods longer than a\nsingle tick, but it does not limit the sleep time currently. In the\nworst case the kernel could sleep longer than the wrap around time of\nthe time keeping clock source which would result in losing track of\ntime.\n\nPrevent this by limiting it to the safe maximum sleep time of the\ncurrent time keeping clock source. The value is calculated when the\nclock source is registered.\n\n[ tglx: simplified the code a bit and massaged the commit msg ]\n\nSigned-off-by: Jon Hunter \u003cjon-hunter@ti.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1250617512-23567-2-git-send-email-jon-hunter@ti.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "529eaccd900a59724619b4a6ef6579fd518d5218",
      "tree": "c2d9986df5dc18ef5b412036a0d897194bad12e7",
      "parents": [
        "e3a4fab0c0c30e21e104712f4e9cb39f175d0f21"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 14:32:19 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 20:46:24 2009 +0100"
      },
      "message": "nohz: Type cast printk argument\n\nOn some archs local_softirq_pending() has a data type of unsigned long\non others its unsigned int. Type cast it to (unsigned int) in the\nprintk to avoid the compiler warning.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\n"
    },
    {
      "commit": "7d2f944a2b836c69a9d260a0a5f0d1720d57fdff",
      "tree": "67766d878c650ab7ac13d155081b9c745447e24e",
      "parents": [
        "23af368e9a904f59256c27d371ce223d6cee0430"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Nov 11 14:05:29 2009 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 20:46:23 2009 +0100"
      },
      "message": "clocksource: Provide a generic mult/shift factor calculation\n\nMIPS has two functions to calculcate the mult/shift factors for clock\nsources and clock events at run time. ARM needs such functions as\nwell.\n\nImplement a function which calculates the mult/shift factors based on\nthe frequencies to which and from which is converted. The function\nalso has a parameter to specify the minimum conversion range in\nseconds. This range is guaranteed not to produce a 64bit overflow when\na value is multiplied with the calculated mult factor. The larger the\nconversion range the less becomes the conversion accuracy.\n\nProvide two inline wrappers which handle clock events and clock\nsources. For clock events the \"from\" frequency is nano seconds per\nsecond which corresponds to 1GHz and \"to\" is the device frequency. For\nclock sources \"from\" is the device frequency and \"to\" is nano seconds\nper second.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Mikael Pettersson \u003cmikpe@it.uu.se\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c20091111134229.766673305@linutronix.de\u003e\n"
    },
    {
      "commit": "23af368e9a904f59256c27d371ce223d6cee0430",
      "tree": "8d38ff75d731abc1182a331c2955b9c3c7025533",
      "parents": [
        "3c5d92a0cfb5103c0d5ab74d4ae6373d3af38148"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Nov 11 14:05:25 2009 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 20:46:23 2009 +0100"
      },
      "message": "clockevents: Use u32 for mult and shift factors\n\nThe mult and shift factors of clock events differ in their data type\nfrom those of clock sources for no reason. u32 is sufficient for\nboth. shift is always \u003c\u003d 32 and mult is limited to 2^32-1 to avoid\n64bit multiplication overflows in the conversion.\n\nPreparatory patch for a generic mult/shift factor calculation\nfunction.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Mikael Pettersson \u003cmikpe@it.uu.se\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c20091111134229.725664788@linutronix.de\u003e\n"
    },
    {
      "commit": "3586e0a9a4a5f19110627d6ba81ada32a358467d",
      "tree": "6790be67eaf564522b4fddec7f4a1f6a33fe32ef",
      "parents": [
        "a3bc1f11e9b867a4f49505ecac486a33af248b2e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 11 19:06:30 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 11 19:06:30 2009 -0800"
      },
      "message": "clocksource/timecompare: Fix symbol exports to be GPL\u0027d.\n\nNoticed by Thomas GLeixner.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b71a8eb0fa64ec6d00175f479e3ef851703568af",
      "tree": "b3a71df4dde15af10511a8aa54033deb90ee27f6",
      "parents": [
        "fa3012318bfb395552baef69bb1ebe87e64945c8"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Tue Oct 06 12:42:51 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Nov 09 09:40:56 2009 +0100"
      },
      "message": "tree-wide: fix typos \"selct\" + \"slect\" -\u003e \"select\"\n\nThis patch was generated by\n\n\tgit grep -E -i -l \u0027s(le|el)ct\u0027 | xargs -r perl -p -i -e \u0027s/([Ss])(le|el)ct/$1elect/\n\nwith only skipping net/netfilter/xt_SECMARK.c and\ninclude/linux/netfilter/xt_SECMARK.h which have a struct member called\nselctx.\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "3c5d92a0cfb5103c0d5ab74d4ae6373d3af38148",
      "tree": "c8b50351568601428b6f9396ebfdd65e486b3097",
      "parents": [
        "eed3b9cf3fe3fcc7a50238dfcab63a63914e8f42"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Sep 29 14:25:16 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Nov 05 07:53:53 2009 +0100"
      },
      "message": "nohz: Introduce arch_needs_cpu\n\nAllow the architecture to request a normal jiffy tick when the system\ngoes idle and tick_nohz_stop_sched_tick is called . On s390 the hook is\nused to prevent the system going fully idle if there has been an\ninterrupt other than a clock comparator interrupt since the last wakeup.\n\nOn s390 the HiperSockets response time for 1 connection ping-pong goes\ndown from 42 to 34 microseconds. The CPU cost decreases by 27%.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nLKML-Reference: \u003c20090929122533.402715150@de.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "eed3b9cf3fe3fcc7a50238dfcab63a63914e8f42",
      "tree": "b8db321400bc9a17e7cfefb82dbfb515a841fab2",
      "parents": [
        "7bc7d637452383d56ba4368d4336b0dde1bb476d"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Sep 29 14:25:15 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Nov 05 07:53:53 2009 +0100"
      },
      "message": "nohz: Reuse ktime in sub-functions of tick_check_idle.\n\nOn a system with NOHZ\u003dy tick_check_idle calls tick_nohz_stop_idle and\ntick_nohz_update_jiffies. Given the right conditions (ts-\u003eidle_active\nand/or ts-\u003etick_stopped) both function get a time stamp with ktime_get.\nThe same time stamp can be reused if both function require one.\n\nOn s390 this change has the additional benefit that gcc inlines the\ntick_nohz_stop_idle function into tick_check_idle. The number of\ninstructions to execute tick_check_idle drops from 225 to 144\n(without the ktime_get optimization it is 367 vs 215 instructions).\n\nbefore:\n\n 0)               |  tick_check_idle() {\n 0)               |    tick_nohz_stop_idle() {\n 0)               |      ktime_get() {\n 0)               |        read_tod_clock() {\n 0)   0.601 us    |        }\n 0)   1.765 us    |      }\n 0)   3.047 us    |    }\n 0)               |    ktime_get() {\n 0)               |      read_tod_clock() {\n 0)   0.570 us    |      }\n 0)   1.727 us    |    }\n 0)               |    tick_do_update_jiffies64() {\n 0)   0.609 us    |    }\n 0)   8.055 us    |  }\n\nafter:\n\n 0)               |  tick_check_idle() {\n 0)               |    ktime_get() {\n 0)               |      read_tod_clock() {\n 0)   0.617 us    |      }\n 0)   1.773 us    |    }\n 0)               |    tick_do_update_jiffies64() {\n 0)   0.593 us    |    }\n 0)   4.477 us    |  }\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c20090929122533.206589318@de.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1871e52c76dd95895caeb772f845a1718dcbcd75",
      "tree": "49e8148326f65353e673204f427bd4545eb26c16",
      "parents": [
        "0f5e4816dbf38ce9488e611ca2296925c1e90d5e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:13 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:13 2009 +0900"
      },
      "message": "percpu: make percpu symbols under kernel/ and mm/ unique\n\nThis patch updates percpu related symbols under kernel/ and mm/ such\nthat percpu symbols are unique and don\u0027t clash with local symbols.\nThis serves two purposes of decreasing the possibility of global\npercpu symbol collision and allowing dropping per_cpu__ prefix from\npercpu symbols.\n\n* kernel/lockdep.c: s/lock_stats/cpu_lock_stats/\n\n* kernel/sched.c: s/init_rq_rt/init_rt_rq_var/\t(any better idea?)\n  \t\t  s/sched_group_cpus/sched_groups/\n\n* kernel/softirq.c: s/ksoftirqd/run_ksoftirqd/a\n\n* kernel/softlockup.c: s/(*)_timestamp/softlockup_\\1_ts/\n  \t\t       s/watchdog_task/softlockup_watchdog/\n\t\t       s/timestamp/ts/ for local variables\n\n* kernel/time/timer_stats: s/lookup_lock/tstats_lookup_lock/\n\n* mm/slab.c: s/reap_work/slab_reap_work/\n  \t     s/reap_node/slab_reap_node/\n\n* mm/vmstat.c: local variable changed to avoid collision with vmstat_work\n\nPartly based on Rusty Russell\u0027s \"alloc_percpu: rename percpu vars\nwhich cause name clashes\" patch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: (slab/vmstat) Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "d43c36dc6b357fa1806800f18aa30123c747a6d1",
      "tree": "339ce510073ecbe9b3592008f7dece7b277035ef",
      "parents": [
        "69585dd69e663a40729492c7b52eb82477a2027a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 07 17:09:06 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 11 11:20:58 2009 -0700"
      },
      "message": "headers: remove sched.h from interrupt.h\n\nAfter m68k\u0027s task_thread_info() doesn\u0027t refer to current,\nit\u0027s possible to remove sched.h from interrupt.h and not break m68k!\nMany thanks to Heiko Carstens for allowing this.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "fdc6f192e7e1ae80565af23cc33dc88e3dcdf184",
      "tree": "431a47d5fe9b737cc5dd5fe40e178d06f7d579ed",
      "parents": [
        "0eca52a92735f43462165efe00a7e394345fb38e"
      ],
      "author": {
        "name": "Eero Nurkkala",
        "email": "ext-eero.nurkkala@nokia.com",
        "time": "Wed Oct 07 11:54:26 2009 +0300"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Oct 07 13:05:05 2009 +0200"
      },
      "message": "NOHZ: update idle state also when NOHZ is inactive\n\nCommit f2e21c9610991e95621a81407cdbab881226419b had unfortunate side\neffects with cpufreq governors on some systems.\n\nIf the system did not switch into NOHZ mode ts-\u003einidle is not set when\ntick_nohz_stop_sched_tick() is called from the idle routine. Therefor\nall subsequent calls from irq_exit() to tick_nohz_stop_sched_tick()\nfail to call tick_nohz_start_idle(). This results in bogus idle\naccounting information which is passed to cpufreq governors.\n\nSet the inidle flag unconditionally of the NOHZ active state to keep\nthe idle time accounting correct in any case.\n\n[ tglx: Added comment and tweaked the changelog ]\n\nReported-by: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Eero Nurkkala \u003cext-eero.nurkkala@nokia.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Steven Noonan \u003csteven@uplinklabs.net\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c1254907901.30157.93.camel@eenurkka-desktop\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7bc7d637452383d56ba4368d4336b0dde1bb476d",
      "tree": "f1c8e1e103a900850342d46de27ebdf1e7d07f78",
      "parents": [
        "a092ff0f90cae22b2ac8028ecd2c6f6c1a9e4601"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Fri Oct 02 16:24:15 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 05 13:52:02 2009 +0200"
      },
      "message": "time: Remove xtime_cache\n\nWith the prior logarithmic time accumulation patch, xtime will now\nalways be within one \"tick\" of the current time, instead of\npossibly half a second off.\n\nThis removes the need for the xtime_cache value, which always\nstored the time at the last interrupt, so this patch cleans that up\nremoving the xtime_cache related code.\n\nThis is a bit simpler, but still could use some wider testing.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Clark Williams \u003cwilliams@redhat.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c1254525855.7741.95.camel@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a092ff0f90cae22b2ac8028ecd2c6f6c1a9e4601",
      "tree": "79ec451d0bcdf6c08e0bc210b4beed694fbbf4a9",
      "parents": [
        "8a0382f6fceaf0c6479e582e1054f36333ea3d24"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Fri Oct 02 16:17:53 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 05 13:51:48 2009 +0200"
      },
      "message": "time: Implement logarithmic time accumulation\n\nAccumulating one tick at a time works well unless we\u0027re using NOHZ.\nThen it can be an issue, since we may have to run through the loop\na few thousand times, which can increase timer interrupt caused\nlatency.\n\nThe current solution was to accumulate in half-second intervals\nwith NOHZ. This kept the number of loops down, however it did\nslightly change how we make NTP adjustments. While not an issue\nwith NTPd users, as NTPd makes adjustments over a longer period of\ntime, other adjtimex() users have noticed the half-second\ngranularity with which we can apply frequency changes to the clock.\n\nFor instance, if a application tries to apply a 100ppm frequency\ncorrection for 20ms to correct a 2us offset, with NOHZ they either\nget no correction, or a 50us correction.\n\nNow, there will always be some granularity error for applying\nfrequency corrections. However with users sensitive to this error\nhave seen a 50-500x increase with NOHZ compared to running without\nNOHZ.\n\nSo I figured I\u0027d try another approach then just simply increasing\nthe interval. My approach is to consume the time interval\nlogarithmically. This reduces the number of times through the loop\nneeded keeping latency down, while still preserving the original\ngranularity error for adjtimex() changes.\n\nFurther, this change allows us to remove the xtime_cache code\n(patch to follow), as xtime is always within one tick of the\ncurrent time, instead of the half-second updates it saw before.\n\nAn earlier version of this patch has been shipping to x86 users in\nthe RedHat MRG releases for awhile without issue, but I\u0027ve reworked\nthis version to be even more careful about avoiding possible\noverflows if the shift value gets too large.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Clark Williams \u003cwilliams@redhat.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c1254525473.7741.88.camel@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "179b9145d58eb7158d4053a8308b9fc4608a6d6b",
      "tree": "6f63a64c2811135e6edca885f5a2c79f50ba7465",
      "parents": [
        "4187e7e9f1294afdcb3be5d00aa74412a1c2ded8",
        "89133f93508137231251543d1732da638e6022e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:14:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:14:41 2009 -0700"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  clocksource: Resume clocksource without taking the clocksource mutex\n"
    },
    {
      "commit": "89133f93508137231251543d1732da638e6022e1",
      "tree": "8f94df8c650bbe2ec765de89ce70b9e762a5ba2f",
      "parents": [
        "94a8d5caba74211ec76dac80fc6e2d5c391530df"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Sep 24 17:29:52 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 24 22:37:53 2009 +0200"
      },
      "message": "clocksource: Resume clocksource without taking the clocksource mutex\n\ngit commit 75c5158f70c065b9 converted the clocksource spinlock to a\nmutex. This causes the following BUG:\n\nBUG: sleeping function called from invalid context at\nkernel/mutex.c:280 in_atomic(): 0, irqs_disabled(): 1, pid: 2473,\nname: pm-suspend 2 locks held by pm-suspend/2473:\n #0:  (\u0026buffer-\u003emutex){......}, at: [\u003cffffffff8115ab13\u003e]\nsysfs_write_file+0x3c/0x137\n #1:  (pm_mutex){......}, at: [\u003cffffffff810865b5\u003e]\nenter_state+0x39/0x130 Pid: 2473, comm: pm-suspend Not tainted 2.6.31\n#1 Call Trace:\n [\u003cffffffff810792f0\u003e] ? __debug_show_held_locks+0x22/0x24\n [\u003cffffffff8104a2ef\u003e] __might_sleep+0x107/0x10b\n [\u003cffffffff8141fca9\u003e] mutex_lock_nested+0x25/0x43\n [\u003cffffffff81073537\u003e] clocksource_resume+0x1c/0x60\n [\u003cffffffff81072902\u003e] timekeeping_resume+0x1e/0x1c8\n [\u003cffffffff812aee62\u003e] __sysdev_resume+0x25/0xcf\n [\u003cffffffff812aef79\u003e] sysdev_resume+0x6d/0xae\n [\u003cffffffff810864f8\u003e] suspend_devices_and_enter+0x12b/0x1af\n [\u003cffffffff8108665b\u003e] enter_state+0xdf/0x130\n [\u003cffffffff81085dc3\u003e] state_store+0xb6/0xd3\n [\u003cffffffff81204c73\u003e] kobj_attr_store+0x17/0x19\n [\u003cffffffff8115abd2\u003e] sysfs_write_file+0xfb/0x137\n [\u003cffffffff811057d2\u003e] vfs_write+0xae/0x10b\n [\u003cffffffff81208392\u003e] ? __up_read+0x1a/0x7f\n [\u003cffffffff811058ef\u003e] sys_write+0x4a/0x6e\n [\u003cffffffff81011b82\u003e] system_call_fastpath+0x16/0x1b\n\nclocksource_resume is called early in the resume process, there is\nonly one cpu, no processes are running and the interrupts are\ndisabled. It is therefore possible to resume the clocksources\nwithout taking the clocksource mutex.\n\nReported-by: Xiaotian Feng \u003cxtfeng@gmail.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nTested-by: Michal Schmidt \u003cmschmidt@redhat.com\u003e\nCc: Xiaotian Feng \u003cxtfeng@gmail.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c20090924172952.49697825@mschwide.boeblingen.de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "57f1f0874f426a9bdfc5cd3f886113dd5cd17834",
      "tree": "f7938f5c195f7733543d3d86c6ae3c902fd7adef",
      "parents": [
        "ef1ff6b8c08954bc203b59e887d1e580dd91755a"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Wed Sep 23 15:56:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:56 2009 -0700"
      },
      "message": "time: add function to convert between calendar time and broken-down time for universal use\n\nThere are many similar code in kernel for one object: convert time between\ncalendar time and broken-down time.\n\nHere is some source I found:\n  fs/ncpfs/dir.c\n  fs/smbfs/proc.c\n  fs/fat/misc.c\n  fs/udf/udftime.c\n  fs/cifs/netmisc.c\n  net/netfilter/xt_time.c\n  drivers/scsi/ips.c\n  drivers/input/misc/hp_sdc_rtc.c\n  drivers/rtc/rtc-lib.c\n  arch/ia64/hp/sim/boot/fw-emu.c\n  arch/m68k/mac/misc.c\n  arch/powerpc/kernel/time.c\n  arch/parisc/include/asm/rtc.h\n  ...\n\nWe can make a common function for this type of conversion, At least we\ncan get following benefit:\n\n1: Make kernel simple and unify\n2: Easy to fix bug in converting code\n3: Reduce clone of code in future\n   For example, I\u0027m trying to make ftrace display walltime,\n   this patch will make me easy.\n\nThis code is based on code from glibc-2.6\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a03fdb7612874834d6847107198712d18b5242c7",
      "tree": "9ae81170509fd8b1c23d1b7e8edfa7a2203ffce3",
      "parents": [
        "202c4675c55ddf6b443c7e057d2dff6b42ef71aa",
        "12e09337fe238981cb0c87543306e23775d1a143"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 18 09:15:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 18 09:15:24 2009 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (34 commits)\n  time: Prevent 32 bit overflow with set_normalized_timespec()\n  clocksource: Delay clocksource down rating to late boot\n  clocksource: clocksource_select must be called with mutex locked\n  clocksource: Resolve cpu hotplug dead lock with TSC unstable, fix crash\n  timers: Drop a function prototype\n  clocksource: Resolve cpu hotplug dead lock with TSC unstable\n  timer.c: Fix S/390 comments\n  timekeeping: Fix invalid getboottime() value\n  timekeeping: Fix up read_persistent_clock() breakage on sh\n  timekeeping: Increase granularity of read_persistent_clock(), build fix\n  time: Introduce CLOCK_REALTIME_COARSE\n  x86: Do not unregister PIT clocksource on PIT oneshot setup/shutdown\n  clocksource: Avoid clocksource watchdog circular locking dependency\n  clocksource: Protect the watchdog rating changes with clocksource_mutex\n  clocksource: Call clocksource_change_rating() outside of watchdog_lock\n  timekeeping: Introduce read_boot_clock\n  timekeeping: Increase granularity of read_persistent_clock()\n  timekeeping: Update clocksource with stop_machine\n  timekeeping: Add timekeeper read_clock helper functions\n  timekeeping: Move NTP adjusted clock multiplier to struct timekeeper\n  ...\n\nFix trivial conflict due to MIPS lemote -\u003e loongson renaming.\n"
    },
    {
      "commit": "54a6bc0b071c50150bc6d1da16c2cd9a963e288c",
      "tree": "87b576e31db14f6d57b0d8ed97743ab9779de30e",
      "parents": [
        "e6c733050faa93ce616bfedccd279ab12cffdd7b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 14 19:49:02 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 14 21:59:32 2009 +0200"
      },
      "message": "clocksource: Delay clocksource down rating to late boot\n\nThe down rating of clock sources in the early boot process via the\nclock source watchdog mechanism can happen way before the per cpu\nevent queues are initialized. This leads to a boot crash on x86 when\nthe TSC is marked unstable in the SMP bring up.\n\nThe selection of a clock source for time keeping happens in the late\nboot process so we can safely delay the list manipulation until\nclocksource_done_booting() is called.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "e6c733050faa93ce616bfedccd279ab12cffdd7b",
      "tree": "03a1b49744d5aacd98d9e26b0769acb90a38dfac",
      "parents": [
        "f79e0258ea1f04d63db499479b5fb855dff6dbc5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 14 19:51:11 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 14 21:59:32 2009 +0200"
      },
      "message": "clocksource: clocksource_select must be called with mutex locked\n\nThe callers of clocksource_select must hold clocksource_mutex to\nprotect the clocksource_list.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "f79e0258ea1f04d63db499479b5fb855dff6dbc5",
      "tree": "66edb089e5c3aee03e1326d41e47d7e14c21e76b",
      "parents": [
        "e500011ffa191d662ac64d4ada6a5187b3180e16"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Sep 11 15:33:05 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 11 20:17:18 2009 +0200"
      },
      "message": "clocksource: Resolve cpu hotplug dead lock with TSC unstable, fix crash\n\nThe watchdog timer is started after the watchdog clocksource\nand at least one watched clocksource have been registered. The\nclocksource work element watchdog_work is initialized just\nbefore the clocksource timer is started. This is too late for\nthe clocksource_mark_unstable call from native_cpu_up. To fix\nthis use a static initializer for watchdog_work.\n\nThis resolves a boot crash reported by multiple people.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c20090911153305.3fe9a361@skybase\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7285dd7fd375763bfb8ab1ac9cf3f1206f503c16",
      "tree": "42f809ab3616cc3d93d655acccfc2d54e9f6d0e4",
      "parents": [
        "90cba64a5f672a239f43ec5cb9a11b806887331e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Aug 28 20:25:24 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Aug 28 20:25:24 2009 +0200"
      },
      "message": "clocksource: Resolve cpu hotplug dead lock with TSC unstable\n\nMartin Schwidefsky analyzed it:\nTo register a clocksource the clocksource_mutex is acquired and if\nnecessary timekeeping_notify is called to install the clocksource as\nthe timekeeper clock. timekeeping_notify uses stop_machine which needs\nto take cpu_add_remove_lock mutex.\nStarting a new cpu is done with the cpu_add_remove_lock mutex held.\nnative_cpu_up checks the tsc of the new cpu and if the tsc is no good\nclocksource_change_rating is called. Which needs the clocksource_mutex\nand the deadlock is complete.\n\nThe solution is to replace the TSC via the clocksource watchdog\nmechanism. Mark the TSC as unstable and schedule the watchdog work so\nit gets removed in the watchdog thread context.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\n"
    },
    {
      "commit": "36d47481b3824b661b464077db95d447984df799",
      "tree": "7ae9dc060872f879403e78ab1b1abd7f4ada4ed0",
      "parents": [
        "0ceb4c3e3f1ccaf121851e33c3ea269b8ad0f219"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Tue Aug 25 15:08:30 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 25 09:09:02 2009 +0200"
      },
      "message": "timekeeping: Fix invalid getboottime() value\n\nDon\u0027t use timespec_add_safe() with wall_to_monotonic, because\nwall_to_monotonic has negative values which will cause overflow\nin timespec_add_safe(). That makes btime in /proc/stat invalid.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Daniel Walker \u003cdwalker@fifo99.com\u003e\nLKML-Reference: \u003c4A937FDE.4050506@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "da15cfdae03351c689736f8d142618592e3cebc3",
      "tree": "497fe3f77e27fa9cf0a484422c7bc382031df1bd",
      "parents": [
        "8cab02dc3c58a12235c6d463ce684dded9696848"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Wed Aug 19 19:13:34 2009 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Aug 21 21:43:46 2009 +0200"
      },
      "message": "time: Introduce CLOCK_REALTIME_COARSE\n\nAfter talking with some application writers who want very fast, but not\nfine-grained timestamps, I decided to try to implement new clock_ids\nto clock_gettime(): CLOCK_REALTIME_COARSE and CLOCK_MONOTONIC_COARSE\nwhich returns the time at the last tick. This is very fast as we don\u0027t\nhave to access any hardware (which can be very painful if you\u0027re using\nsomething like the acpi_pm clocksource), and we can even use the vdso\nclock_gettime() method to avoid the syscall. The only trade off is you\nonly get low-res tick grained time resolution.\n\nThis isn\u0027t a new idea, I know Ingo has a patch in the -rt tree that made\nthe vsyscall gettimeofday() return coarse grained time when the\nvsyscall64 sysctrl was set to 2. However this affects all applications\non a system.\n\nWith this method, applications can choose the proper speed/granularity\ntrade-off for themselves.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: nikolag@ca.ibm.com\nCc: Darren Hart \u003cdvhltc@us.ibm.com\u003e\nCc: arjan@infradead.org\nCc: jonathan@jonmasters.org\nLKML-Reference: \u003c1250734414.6897.5.camel@localhost.localdomain\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "f833bab87fca5c3ce13778421b1365845843b976",
      "tree": "020c3e6a70dba34544c963c34647b605035be8fb",
      "parents": [
        "de809347aeef0a68c04576c464414d0e4dce59fc"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Aug 17 14:34:59 2009 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Aug 19 18:15:10 2009 +0200"
      },
      "message": "clockevent: Prevent dead lock on clockevents_lock\n\nCurrently clockevents_notify() is called with interrupts enabled at\nsome places and interrupts disabled at some other places.\n\nThis results in a deadlock in this scenario.\n\ncpu A holds clockevents_lock in clockevents_notify() with irqs enabled\ncpu B waits for clockevents_lock in clockevents_notify() with irqs disabled\ncpu C doing set_mtrr() which will try to rendezvous of all the cpus.\n\nThis will result in C and A come to the rendezvous point and waiting\nfor B. B is stuck forever waiting for the spinlock and thus not\nreaching the rendezvous point.\n\nFix the clockevents code so that clockevents_lock is taken with\ninterrupts disabled and thus avoid the above deadlock.\n\nAlso call lapic_timer_propagate_broadcast() on the destination cpu so\nthat we avoid calling smp_call_function() in the clockevents notifier\nchain.\n\nThis issue left us wondering if we need to change the MTRR rendezvous\nlogic to use stop machine logic (instead of smp_call_function) or add\na check in spinlock debug code to see if there are other spinlocks\nwhich gets taken under both interrupts enabled/disabled conditions.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: \"Pallipadi Venkatesh\" \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: \"Brown Len\" \u003clen.brown@intel.com\u003e\nLKML-Reference: \u003c1250544899.2709.210.camel@sbs-t61.sc.intel.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "01548f4d3e8e94caf323a4f664eb347fd34a34ab",
      "tree": "2717e7d4dd781be2d57737df96b074451090f3d9",
      "parents": [
        "d0981a1b21a03866c8da7f44e35e389c2e0d6061"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Aug 18 17:09:42 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Aug 19 12:00:56 2009 +0200"
      },
      "message": "clocksource: Avoid clocksource watchdog circular locking dependency\n\nstop_machine from a multithreaded workqueue is not allowed because\nof a circular locking dependency between cpu_down and the workqueue\nexecution. Use a kernel thread to do the clocksource downgrade.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c20090818170942.3ab80c91@skybase\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "d0981a1b21a03866c8da7f44e35e389c2e0d6061",
      "tree": "7fe013c7de9adb1d4f20163669571fddfe09881c",
      "parents": [
        "6ea41d252f35465a2308a4038a323b6b07de06f6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Aug 19 11:26:09 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Aug 19 11:42:48 2009 +0200"
      },
      "message": "clocksource: Protect the watchdog rating changes with clocksource_mutex\n\nMartin pointed out that commit 6ea41d2529 (clocksource: Call\nclocksource_change_rating() outside of watchdog_lock) has a\ntheoretical reference count problem. The calls to\nclocksource_change_rating() are now done outside of the clocksource\nmutex and outside of the watchdog lock. A concurrent\nclocksource_unregister() could remove the clock.\n\nSplit out the code which changes the rating from\nclocksource_change_rating() into __clocksource_change_rating().\n\nProtect the clocksource_watchdog_work() code sequence with the\nclocksource_mutex() and call __clocksource_change_rating().\n\nLKML-Reference: \u003calpine.LFD.2.00.0908171038420.2782@localhost.localdomain\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "de809347aeef0a68c04576c464414d0e4dce59fc",
      "tree": "e3f05312abaabe0bcda04b6e8e220374c20cf292",
      "parents": [
        "b2add73dbf93fd50f00564d7abc3e2b9aa9dd20c"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Mon Aug 17 05:43:01 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 17 11:47:31 2009 +0200"
      },
      "message": "timers: Drop write permission on /proc/timer_list\n\n/proc/timer_list and /proc/slabinfo are not supposed to be\nwritten, so there should be no write permissions on it.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: linux-mm@kvack.org\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Amerigo Wang \u003camwang@redhat.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nLKML-Reference: \u003c20090817094525.6355.88682.sendpatchset@localhost.localdomain\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ea41d252f35465a2308a4038a323b6b07de06f6",
      "tree": "50315e593c1eacd4c0ebbe5abb1919bdb0302943",
      "parents": [
        "23970e389e9cee43c4b41023935e1417271708b2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Aug 15 13:20:42 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Aug 15 13:20:42 2009 +0200"
      },
      "message": "clocksource: Call clocksource_change_rating() outside of watchdog_lock\n\nThe changes to the watchdog logic introduced a lock inversion between\nwatchdog_lock and clocksource_mutex. Change the rating outside of\nwatchdog_lock to avoid it.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "23970e389e9cee43c4b41023935e1417271708b2",
      "tree": "d97d299cf74c44cf7ceb4c04c82dafc451fbbfbb",
      "parents": [
        "d4f587c67fc39e0030ddd718675e252e208da4d7"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Aug 14 15:47:32 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Aug 15 10:55:47 2009 +0200"
      },
      "message": "timekeeping: Introduce read_boot_clock\n\nAdd the new function read_boot_clock to get the exact time the system\nhas been started. For architectures without support for exact boot\ntime a new weak function is added that returns 0.  Use the exact boot\ntime to initialize wall_to_monotonic, or xtime if the read_boot_clock\nreturned 0.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Daniel Walker \u003cdwalker@fifo99.com\u003e\nLKML-Reference: \u003c20090814134811.296703241@de.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d4f587c67fc39e0030ddd718675e252e208da4d7",
      "tree": "2222681c57966cc6b8404afdff3ab1a09ac7ea69",
      "parents": [
        "75c5158f70c065b9704b924503d96e8297838f79"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Aug 14 15:47:31 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Aug 15 10:55:46 2009 +0200"
      },
      "message": "timekeeping: Increase granularity of read_persistent_clock()\n\nThe persistent clock of some architectures (e.g. s390) have a\nbetter granularity than seconds. To reduce the delta between the\nhost clock and the guest clock in a virtualized system change the \nread_persistent_clock function to return a struct timespec.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Daniel Walker \u003cdwalker@fifo99.com\u003e\nLKML-Reference: \u003c20090814134811.013873340@de.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "75c5158f70c065b9704b924503d96e8297838f79",
      "tree": "74b02ba1f13aaf8292bd472a8a197ac900ff20e7",
      "parents": [
        "2ba2a3054fdffc8e6452f4ee120760322a6fbd43"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Aug 14 15:47:30 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Aug 15 10:55:46 2009 +0200"
      },
      "message": "timekeeping: Update clocksource with stop_machine\n\nupdate_wall_time calls change_clocksource HZ times per second to check\nif a new clock source is available. In close to 100% of all calls\nthere is no new clock. Replace the tick based check by an update done\nwith stop_machine.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Daniel Walker \u003cdwalker@fifo99.com\u003e\nLKML-Reference: \u003c20090814134810.711836357@de.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "2ba2a3054fdffc8e6452f4ee120760322a6fbd43",
      "tree": "1ce2f3b323cb332d2b3d5ba4930ea10bb5d9e27e",
      "parents": [
        "0a54419836254a27baecd9037103171bcbabaf67"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Aug 14 15:47:29 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Aug 15 10:55:46 2009 +0200"
      },
      "message": "timekeeping: Add timekeeper read_clock helper functions\n\nAdd timekeeper_read_clock_ntp and timekeeper_read_clock_raw and use\nthem for getnstimeofday, ktime_get, ktime_get_ts and getrawmonotonic.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Daniel Walker \u003cdwalker@fifo99.com\u003e\nLKML-Reference: \u003c20090814134810.435105711@de.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    }
  ],
  "next": "0a54419836254a27baecd9037103171bcbabaf67"
}
