)]}'
{
  "log": [
    {
      "commit": "8524070b7982d76258942275908b7434cfcab4b4",
      "tree": "6e63c45c3b9ff6a86ad32b1de7adf48889eb0bfc",
      "parents": [
        "329c8d84ca1946c037d9859dc251b56d8b1b4630"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue May 08 00:27:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:06 2007 -0700"
      },
      "message": "Move timekeeping code to timekeeping.c\n\nMove the timekeeping code out of kernel/timer.c and into\nkernel/time/timekeeping.c.  I made no cleanups or other changes in transit.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e453a67510a17f01b63835f18569e8c3939a38c",
      "tree": "2cbc50f434cf4397d2f279480ea2c2a87defa9b0",
      "parents": [
        "da6752964290567a6b4ea180d1becda75e810e87"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Tue May 08 00:27:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "Add support for deferrable timers\n\nIntroduce a new flag for timers - deferrable: Timers that work normally\nwhen system is busy.  But, will not cause CPU to come out of idle (just to\nservice this timer), when CPU is idle.  Instead, this timer will be\nserviced when CPU eventually wakes up with a subsequent non-deferrable\ntimer.\n\nThe main advantage of this is to avoid unnecessary timer interrupts when\nCPU is idle.  If the routine currently called by a timer can wait until\nnext event without any issues, this new timer can be used to setup timer\nevent for that routine.  This, with dynticks, allows CPUs to be lazy,\nallowing them to stay in idle for extended period of time by reducing\nunnecesary wakeup and thereby reducing the power consumption.\n\nThis patch:\n\nBuilds this new timer on top of existing timer infrastructure.  It uses\nlast bit in \u0027base\u0027 pointer of timer_list structure to store this deferrable\ntimer flag.  __next_timer_interrupt() function skips over these deferrable\ntimers when CPU looks for next timer event for which it has to wake up.\n\nThis is exported by a new interface init_timer_deferrable() that can be\ncalled in place of regular init_timer().\n\n[akpm@linux-foundation.org: Privatise a #define]\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e19dff1fdd99a25819af74cf0710e147fff4fd3a",
      "tree": "ed64cec5118d671ba20c1abc2d30a8da290282f6",
      "parents": [
        "7318226ea2931a627f3572e5f4804c91ca19ecbc"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Apr 26 15:46:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 26 15:46:56 2007 -0700"
      },
      "message": "[AF_RXRPC]: Make it possible to merely try to cancel timers from a module\n\nExport try_to_del_timer_sync() for use by the AF_RXRPC module.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "995f054f2a342f8505fed4f8395d12c0f5966414",
      "tree": "08ddf96e3365d2b0a9940914fdb179810fbca3a0",
      "parents": [
        "bbef618190fb484b28b7d441e6fc5d524027c4fa"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 07 12:05:00 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Apr 07 10:03:43 2007 -0700"
      },
      "message": "[PATCH] high-res timers: resume fix\n\nSoeren Sonnenburg reported that upon resume he is getting\nthis backtrace:\n\n [\u003cc0119637\u003e] smp_apic_timer_interrupt+0x57/0x90\n [\u003cc0142d30\u003e] retrigger_next_event+0x0/0xb0\n [\u003cc0104d30\u003e] apic_timer_interrupt+0x28/0x30\n [\u003cc0142d30\u003e] retrigger_next_event+0x0/0xb0\n [\u003cc0140068\u003e] __kfifo_put+0x8/0x90\n [\u003cc0130fe5\u003e] on_each_cpu+0x35/0x60\n [\u003cc0143538\u003e] clock_was_set+0x18/0x20\n [\u003cc0135cdc\u003e] timekeeping_resume+0x7c/0xa0\n [\u003cc02aabe1\u003e] __sysdev_resume+0x11/0x80\n [\u003cc02ab0c7\u003e] sysdev_resume+0x47/0x80\n [\u003cc02b0b05\u003e] device_power_up+0x5/0x10\n\nit turns out that on resume we mistakenly re-enable interrupts too\nearly.  Do the timer retrigger only on the current CPU.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Soeren Sonnenburg \u003ckernel@nn7.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9501b6cf5541f0d576d566a463f1e7d3eaaab4eb",
      "tree": "7983c4cc3c82e465cfe88a7fd67e39dbed72e1e0",
      "parents": [
        "317ec6cd00f25d05d153a780bc178c5335f320ee"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Mar 25 14:31:17 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Mar 25 14:57:34 2007 -0700"
      },
      "message": "[PATCH] dynticks: fix hrtimer rounding error in next_timer_interrupt\n\nThe rework of next_timer_interrupt() fixed the timer wheel bugs, but\ninvented a rounding error versus the next hrtimer event. This is caused\nby the conversion of the hrtimer internal representation to relative\njiffies.\n\nThis causes bug #8100:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d8100\n\nnext_timer_interrupt() returns \"now\" in such a case and causes the code\nin tick_nohz_stop_sched_tick() to trigger the timer softirq, which is\nbogus as no timer is due for expiry. This results in an endless context\nswitching between idle and ksoftirqd until a timer is due for expiry.\n\nModify the hrtimer evaluation so that, it returns now + 1, when the\nconversion results in a delta \u003c 1 jiffie.\n\nIt\u0027s confirmed to resolve bug #8100\n\nReported-by: Emil Karlson \u003cjkarlson@cc.hut.fi\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90675a27fa3eb0e97f1d040b183cceb44316e669",
      "tree": "cf97bd53de877c12798368a4e06bba21285c0763",
      "parents": [
        "7a434814c7a6500b08bf4419ba8712b152d08d08"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Tue Mar 06 01:42:11 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 06 09:30:25 2007 -0800"
      },
      "message": "[PATCH] fix vsyscall settimeofday\n\nI\u0027ve only seen this on x86_64.\n\nThe vsyscall state only gets updated when a timer interrupts comes in.  So\nif the time is set long before the next timer, there will be a period when\na gettimeofday() won\u0027t reflect the correct time.\n\nI added an explicit update_vsyscall() during the settimeofday(), that way\nthe vsyscall state doesn\u0027t get stale.\n\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: 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": "6321dd60c76b2e12383bc06046288b15397ed3a0",
      "tree": "4cea63e69ce4f6f5f7f94fc6905063efdde7974e",
      "parents": [
        "c3442e296517aee733d62fc3fe03211598902c7d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 06 08:25:42 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 06 09:30:24 2007 -0800"
      },
      "message": "[PATCH] Save/restore periodic tick information over suspend/resume\n\nThe programming of periodic tick devices needs to be saved/restored\nacross suspend/resume - otherwise we might end up with a system coming\nup that relies on getting a PIT (or HPET) interrupt, while those devices\ndefault to \u0027no interrupts\u0027 after powerup. (To confuse things it worked\nto a certain degree on some systems because the lapic gets initialized\nas a side-effect of SMP bootup.)\n\nThis suspend / resume thing was dropped unintentionally during the\nlast-minute -mm code reshuffling.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e81ce1f7ecdaed2844c75313b09af791d44e6373",
      "tree": "49e70223f9ca808c6c7fed5cf7ce00125ccca84a",
      "parents": [
        "6bb74df481223731af6c7e0ff3adb31f6442cfcd"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Mar 05 00:30:51 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Mar 05 07:57:53 2007 -0800"
      },
      "message": "[PATCH] timer/hrtimer: take per cpu locks in sane order\n\nDoing something like this on a two cpu system\n\n  # echo 0 \u003e /sys/devices/system/cpu/cpu0/online\n  # echo 1 \u003e /sys/devices/system/cpu/cpu0/online\n  # echo 0 \u003e /sys/devices/system/cpu/cpu1/online\n\nwill give me this:\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ INFO: possible circular locking dependency detected ]\n  2.6.21-rc2-g562aa1d4-dirty #7\n  -------------------------------------------------------\n  bash/1282 is trying to acquire lock:\n   (\u0026cpu_base-\u003elock_key){.+..}, at: [\u003c000000000005f17e\u003e] hrtimer_cpu_notify+0xc6/0x240\n\n  but task is already holding lock:\n   (\u0026cpu_base-\u003elock_key#2){.+..}, at: [\u003c000000000005f174\u003e] hrtimer_cpu_notify+0xbc/0x240\n\n  which lock already depends on the new lock.\n\nThis happens because we have the following code in kernel/hrtimer.c:\n\n  migrate_hrtimers(int cpu)\n  [...]\n  old_base \u003d \u0026per_cpu(hrtimer_bases, cpu);\n  new_base \u003d \u0026get_cpu_var(hrtimer_bases);\n  [...]\n  spin_lock(\u0026new_base-\u003elock);\n  spin_lock(\u0026old_base-\u003elock);\n\nWhich means the spinlocks are taken in an order which depends on which cpu\ngets shut down from which other cpu. Therefore lockdep complains that there\nmight be an ABBA deadlock. Since migrate_hrtimers() gets only called on\ncpu hotplug it\u0027s safe to assume that it isn\u0027t executed concurrently on a\n\nThe same problem exists in kernel/timer.c: migrate_timers().\n\nAs pointed out by Christian Borntraeger one possible solution to avoid\nthe locking order complaints would be to make sure that the locks are\nalways taken in the same order. E.g. by taking the lock of the cpu with\nthe lower number first.\n\nTo achieve this we introduce two new spinlock functions double_spin_lock\nand double_spin_unlock which lock or unlock two locks in a given order.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Christian Borntraeger \u003ccborntra@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.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": "05fb6bf0b29552b64dc86f405a484de2514e0ac2",
      "tree": "cd3306512f98f73f7e846fc55b6e56aed4bfea61",
      "parents": [
        "328d24403d6a6b856722facd39d7b6ccb429353b"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Feb 28 20:12:13 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 01 14:53:37 2007 -0800"
      },
      "message": "[PATCH] kernel-doc fixes for 2.6.20-git15 (non-drivers)\n\nFix kernel-doc warnings in 2.6.20-git15 (lib/, mm/, kernel/, include/).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d6346311418d12e90cca9384e5fbbe2ffa18efb",
      "tree": "643b648e058ddac34ce73d161082ed6c43ddf951",
      "parents": [
        "28936117af849b8c2fca664a41ea7651a0d99591"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Wed Feb 28 20:12:07 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 01 14:53:36 2007 -0800"
      },
      "message": "[PATCH] update timekeeping_is_continuous comment\n\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acc9a9dcdd0dd1d295c2f2ee02c27c761bd63cb1",
      "tree": "78acee4323183da18586c9f4fc8a50999a2f4755",
      "parents": [
        "88ad0bf6890505cbd9ca1dbb79944a27b5c8697d"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Fri Feb 16 01:28:17 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:14:00 2007 -0800"
      },
      "message": "[PATCH] generic: vsyscall-gtod support for GENERIC_TIME\n\nProvides generic infrastructure for vsyscall-gtod.\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82f67cd9fca8c8762c15ba7ed0d5747588c1e221",
      "tree": "1ff7e5cc496580b85bb42fb1d7b19dcbef7b7776",
      "parents": [
        "8bfd9a7a229b5f3d3eda5d7d45c2eebec5b4ba16"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 16 01:28:13 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:59 2007 -0800"
      },
      "message": "[PATCH] Add debugging feature /proc/timer_stat\n\nAdd /proc/timer_stats support: debugging feature to profile timer expiration.\nBoth the starting site, process/PID and the expiration function is captured.\nThis allows the quick identification of timer event sources in a system.\n\nSample output:\n\n# echo 1 \u003e /proc/timer_stats\n# cat /proc/timer_stats\nTimer Stats Version: v0.1\nSample period: 4.010 s\n  24,     0 swapper          hrtimer_stop_sched_tick (hrtimer_sched_tick)\n  11,     0 swapper          sk_reset_timer (tcp_delack_timer)\n   6,     0 swapper          hrtimer_stop_sched_tick (hrtimer_sched_tick)\n   2,     1 swapper          queue_delayed_work_on (delayed_work_timer_fn)\n  17,     0 swapper          hrtimer_restart_sched_tick (hrtimer_sched_tick)\n   2,     1 swapper          queue_delayed_work_on (delayed_work_timer_fn)\n   4,  2050 pcscd            do_nanosleep (hrtimer_wakeup)\n   5,  4179 sshd             sk_reset_timer (tcp_write_timer)\n   4,  2248 yum-updatesd     schedule_timeout (process_timeout)\n  18,     0 swapper          hrtimer_restart_sched_tick (hrtimer_sched_tick)\n   3,     0 swapper          sk_reset_timer (tcp_delack_timer)\n   1,     1 swapper          neigh_table_init_no_netlink (neigh_periodic_timer)\n   2,     1 swapper          e1000_up (e1000_watchdog)\n   1,     1 init             schedule_timeout (process_timeout)\n100 total events, 25.24 events/sec\n\n[ cleanups and hrtimers support from Thomas Gleixner \u003ctglx@linutronix.de\u003e ]\n[bunk@stusta.de: nr_entries can become static]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79bf2bb335b85db25d27421c798595a2fa2a0e82",
      "tree": "550ec2654ae1dd65b871de7fe9c890108c6e86d8",
      "parents": [
        "f8381cba04ba8173fd5a2b8e5cd8b3290ee13a98"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 16 01:28:03 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:59 2007 -0800"
      },
      "message": "[PATCH] tick-management: dyntick / highres functionality\n\nWith Ingo Molnar \u003cmingo@elte.hu\u003e\n\nAdd functions to provide dynamic ticks and high resolution timers.  The code\nwhich keeps track of jiffies and handles the long idle periods is shared\nbetween tick based and high resolution timer based dynticks.  The dyntick\nfunctionality can be disabled on the kernel commandline.  Provide also the\ninfrastructure to support high resolution timers.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d316c57ff6bfad9557462b9100f25c6260d2b774",
      "tree": "f77a04aab5c39c416f52ff5ac9396da5a6b93759",
      "parents": [
        "e05d723f98595b2f4d368f63636a997d98703304"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 16 01:28:00 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:59 2007 -0800"
      },
      "message": "[PATCH] clockevents: add core functionality\n\nArchitectures register their clock event devices, in the clock events core.\nUsers of the clockevents core can get clock event devices for their use.  The\nclockevents core code provides notification mechanisms for various clock\nrelated management events.\n\nThis allows to control the clock event devices without the architectures\nhaving to worry about the details of function assignment.  This is also a\npreliminary for high resolution timers and dynamic ticks to allow the core\ncode to control the clock functionality without intrusive changes to the\narchitecture code.\n\n[Fixes-by: Ingo Molnar \u003cmingo@elte.hu\u003e]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd064b9b7770d5c7705bf9542950c7bd81c30f98",
      "tree": "8b14c81f983e49b5553fd6764139bffb1d4f1648",
      "parents": [
        "1cfd68496e53f7be09a3c1358d1d389004217541"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 16 01:27:47 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:58 2007 -0800"
      },
      "message": "[PATCH] Extend next_timer_interrupt() to use a reference jiffie\n\nFor CONFIG_NO_HZ we need to calculate the next timer wheel event based on a\ngiven jiffie value.  Extend the existing code to allow the extra \u0027now\u0027\nargument.  Provide a compability function for the existing implementations to\ncall the function with now \u003d\u003d jiffies.  (This also solves the racyness of the\noriginal code vs.  jiffies changing during the iteration.)\n\nNo functional changes to existing users of this infrastructure.\n\n[ remove WARN_ON() that triggered on s390, by Carsten Otte \u003ccotte@de.ibm.com\u003e ]\n[ made new helper static, Adrian Bunk \u003cbunk@stusta.de\u003e ]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1cfd68496e53f7be09a3c1358d1d389004217541",
      "tree": "d854323b9b7821ab45ddea10d97766edce91be99",
      "parents": [
        "dde4b2b5f4ed275250488dabdaf282d9c6e7e2b8"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 16 01:27:46 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:58 2007 -0800"
      },
      "message": "[PATCH] Fix cascade lookup of next_timer_interrupt\n\nWhen searching for the next pending timer in the timer wheel we need to take\nthe cascade into account.  The current code has several problems:\n\n 1. it looks into the previous cascade\n 2. it ignores a pending cascade\n 3. it ignores multiple cascades\n\nChange the cascade lookup, so it calculates the array index from the point of\nthe next cascade and always look at the cascade buckets, when the cascade is\npending, i.e.  gets executed in the next timer softirq.  When multiple\ncascades are pending, then lookup the next buckets too.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d8b34fdcb384161552d01ee8f34af5ff11f9684",
      "tree": "7052d50574d747b7ec2172051adf8126074d6982",
      "parents": [
        "7e69f2b1ead2a4c51c12817f18263ff0e59335a6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 16 01:27:43 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:57 2007 -0800"
      },
      "message": "[PATCH] clocksource: Add verification (watchdog) helper\n\nThe TSC needs to be verified against another clocksource.  Instead of using\nhardwired assumptions of available hardware, provide a generic verification\nmechanism.  The verification uses the best available clocksource and handles\nthe usability for high resolution timers / dynticks of the clocksource which\nneeds to be verified.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e69f2b1ead2a4c51c12817f18263ff0e59335a6",
      "tree": "b00295fb1983dd0624b94a613c8661c1bd995a29",
      "parents": [
        "877fe38029366c19def24359627db8cc24d9fef6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 16 01:27:42 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:57 2007 -0800"
      },
      "message": "[PATCH] clocksource: Remove the update callback\n\nThe clocksource code allows direct updates of the rating of a given\nclocksource now.  Change TSC unstable tracking to use this interface and\nremove the update callback.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73b08d2aa4245806ef1bdd48463e9a0b045c62cf",
      "tree": "1cd5b3a7b9f889bb6ff1e7fc6c9a95751faad4d7",
      "parents": [
        "95492e4646e5de8b43d9a7908d6177fb737b61f0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 16 01:27:36 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:57 2007 -0800"
      },
      "message": "[PATCH] clocksource: replace is_continuous by a flag field\n\nUsing a flag filed allows to encode more than one information into a variable.\nPreparatory patch for the generic clocksource verification.\n\n[mingo@elte.hu: convert vmitime.c to the new clocksource flag]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "411187fb05cd11676b0979d9fbf3291db69dbce2",
      "tree": "6202ca36868ab47edf737de81c7b7c4841228ab3",
      "parents": [
        "9f907c0144496e464bd5ed5a99a51227d63a9c0b"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Fri Feb 16 01:27:30 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:57 2007 -0800"
      },
      "message": "[PATCH] GTOD: persistent clock support\n\nPersistent clock support: do proper timekeeping across suspend/resume.\n\n[bunk@stusta.de: cleanup]\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4304ab21513b834c8fe3403927c60c2b81a72d7",
      "tree": "212c8fa327d9cf3f29cccf172f0707a3eb6524f8",
      "parents": [
        "771ee3b04eaac6184312825eb600b4c598f027a5"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Fri Feb 16 01:27:26 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 16 08:13:56 2007 -0800"
      },
      "message": "[PATCH] HZ free ntp\n\nDistangle the NTP update from HZ.  This is necessary for dynamic tick enabled\nkernels.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5809f9d442e9dbb23859e2c37d8c47043f6b5cc9",
      "tree": "24c634f6de962734a1a6a8b94504d9555a35fcea",
      "parents": [
        "26054ed02bb20f5b2e02d92cb6f0be0e2b0196d5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Feb 13 13:26:21 2007 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Tue Feb 13 13:26:21 2007 +0100"
      },
      "message": "[PATCH] x86-64: get rid of ARCH_HAVE_XTIME_LOCK\n\nARCH_HAVE_XTIME_LOCK is used by x86_64 arch .  This arch needs to place a\nread only copy of xtime_lock into vsyscall page.  This read only copy is\nnamed __xtime_lock, and xtime_lock is defined in\narch/x86_64/kernel/vmlinux.lds.S as an alias.  So the declaration of\nxtime_lock in kernel/timer.c was guarded by ARCH_HAVE_XTIME_LOCK define,\ndefined to true on x86_64.\n\nWe can get same result with _attribute__((weak)) in the declaration. linker\nshould do the job.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n"
    },
    {
      "commit": "d4d23add3abcd18d8021b99f230df608ccb2f007",
      "tree": "756c5a7d21a9f5a25f10bfcec40c01aecc596c2f",
      "parents": [
        "72fd4a35a824331d7a0f4168d7576502d95d34b3"
      ],
      "author": {
        "name": "Kyle McMartin",
        "email": "kyle@parisc-linux.org",
        "time": "Sat Feb 10 01:46:00 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:32 2007 -0800"
      },
      "message": "[PATCH] Common compat_sys_sysinfo\n\nI noticed that almost all architectures implemented exactly the same\nsys32_sysinfo...  except parisc, where a bug was to be found in handling of\nthe uptime.  So let\u0027s remove a whole whack of code for fun and profit.\nCribbed compat_sys_sysinfo from x86_64\u0027s implementation, since I figured it\nwould be the best tested.\n\nThis patch incorporates Arnd\u0027s suggestion of not using set_fs/get_fs, but\ninstead extracting out the common code from sys_sysinfo.\n\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72fd4a35a824331d7a0f4168d7576502d95d34b3",
      "tree": "be27880bc36b7f62e8044a88b8744a35c5317714",
      "parents": [
        "262086cf5b5343c2b81c97b1c606058e921859df"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sat Feb 10 01:45:59 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:32 2007 -0800"
      },
      "message": "[PATCH] Numerous fixes to kernel-doc info in source files.\n\nA variety of (mostly) innocuous fixes to the embedded kernel-doc content in\nsource files, including:\n\n  * make multi-line initial descriptions single line\n  * denote some function names, constants and structs as such\n  * change erroneous opening \u0027/*\u0027 to \u0027/**\u0027 in a few places\n  * reword some text for clarity\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3db5db4fcdafc85b99d171336a7d2f25765ccd13",
      "tree": "5fb1f991a7eb0de9fcab48d1a889f4324c823077",
      "parents": [
        "fc0ecff698165ae8e178efa086e0dd1f385206b1"
      ],
      "author": {
        "name": "Helge Deller",
        "email": "deller@gmx.de",
        "time": "Sat Feb 10 01:45:40 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:31 2007 -0800"
      },
      "message": "[PATCH] use cycle_t instead of u64 in struct time_interpolator\n\nThe 32bit and 64bit PARISC Linux kernels suffers from the problem, that the\ngettimeofday() call sometimes returns non-monotonic times.\n\nThe easiest way to fix this, is to drop the PARISC-specific implementation\nand switch over to the generic TIME_INTERPOLATION framework.\n\nBut in order to make it even compile on 32bit PARISC, the patch below which\ntouches the generic Linux code, is mandatory.\n\nMore information and the full patch with the parisc-specific changes is included in this thread: http://lists.parisc-linux.org/pipermail/parisc-linux/2006-December/031003.html\n\nAs far as I could see, this patch does not change anything for the existing\narchitectures which use this framework (IA64 and SPARC64), since \"cycles_t\"\nis defined there as unsigned 64bit-integer anyway (which then makes this\npatch a no-change for them).\n\nSigned-off-by: Helge Deller \u003cdeller@gmx.de\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b149bcc230e4696a1d893504bed38aeb3832314",
      "tree": "f58245b894c8986ca1f8bf03a3bb7fa9b80df528",
      "parents": [
        "fadfc8e930dcaf502b49a0a0170ba8ebe9a34c49"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Dec 22 01:10:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:49 2006 -0800"
      },
      "message": "[PATCH] schedule_timeout(): improve warning message\n\nKyle is hitting this warning, and we don\u0027t have a clue what it\u0027s caused by.\nAdd the obligatory dump_stack().\n\nCc: kyle \u003ckylewong@southa.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cd7175edf963a92b2c3cd491d3e34afd357e7284",
      "tree": "72c0445ef456f005e26d04568b5a07e8ed95e084",
      "parents": [
        "f988443a84528bd30c2f474efa5e2c511959f19b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Dec 13 00:35:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:55 2006 -0800"
      },
      "message": "[PATCH] Optimize calc_load()\n\ncalc_load() is called by timer interrupt to update avenrun[].  It currently\ncalls nr_active() at each timer tick (HZ per second), while the update of\navenrun[] is done only once every 5 seconds.  (LOAD_FREQ\u003d5 Hz)\n\nnr_active() is quite expensive on SMP machines, since it has to sum up\nnr_running and nr_uninterruptible of all online CPUS, bringing foreign\ndirty cache lines.\n\nThis patch is an optimization of calc_load() so that nr_active() is called\nonly if we need it.\n\nThe use of unlikely() is welcome since the condition is true only once every\n5*HZ time.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f5f1a24a2caa299bb7d294aee92d7dd3410d9ed7",
      "tree": "499a2687c2e29733974d1721d238c561078b46c5",
      "parents": [
        "2b0137001de68153203dd3bc20e6d27eb7c9719c"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Sun Dec 10 02:21:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] clocksource: small cleanup\n\nMostly changing alignment.  Just some general cleanup.\n\n[akpm@osdl.org: build fix]\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c36a5dec25fb344ad76b11860da3a8b50bd1248",
      "tree": "facfe4ad3bb3638d8ee6f6b3e7fc75a0a02e304a",
      "parents": [
        "5466b456ed6748e0bfe02831e570004d4c04c1d7"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Dec 10 02:21:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] round_jiffies infrastructure\n\nIntroduce a round_jiffies() function as well as a round_jiffies_relative()\nfunction.  These functions round a jiffies value to the next whole second.\nThe primary purpose of this rounding is to cause all \"we don\u0027t care exactly\nwhen\" timers to happen at the same jiffy.\n\nThis avoids multiple timers firing within the second for no real reason;\nwith dynamic ticks these extra timers cause wakeups from deep sleep CPU\nsleep states and thus waste power.\n\nThe exact wakeup moment is skewed by the cpu number, to avoid all cpus from\nwaking up at the exact same time (and hitting the same lock/cachelines\nthere)\n\n[akpm@osdl.org: fix variable type]\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8ef386092d7c2891bd7acefb2a87f878f7e9a0d6",
      "tree": "b149f0c63f9b9bb3f43e82097f1ae5972662288f",
      "parents": [
        "70bc42f90a3f4721c89dbe865e6c95da8565b41c"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Sat Sep 30 23:28:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:27 2006 -0700"
      },
      "message": "[PATCH] kill wall_jiffies\n\nWith 2.6.18-rc4-mm2, now wall_jiffies will always be the same as jiffies.\nSo we can kill wall_jiffies completely.\n\nThis is just a cleanup and logically should not change any real behavior\nexcept for one thing: RTC updating code in (old) ppc and xtensa use a\ncondition \"jiffies - wall_jiffies \u003d\u003d 1\".  This condition is never met so I\nsuppose it is just a bug.  I just remove that condition only instead of\nkill the whole \"if\" block.\n\n[heiko.carstens@de.ibm.com: s390 build fix and cleanup]\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Hirokazu Takata \u003ctakata.hirokazu@renesas.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f807f8d2137ba728d22820103131038639b68a9",
      "tree": "cea8d4eedbffc17ea9a01808afacb0e02dbbe206",
      "parents": [
        "3d3675cc3d04d7fd4bb11e8c1ea79e5ade4f5e44"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sat Sep 30 23:28:25 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:26 2006 -0700"
      },
      "message": "[PATCH] ntp: add time_adjust to tick length\n\nThis folds update_ntp_one_tick() into second_overflow() and adds time_adjust\nto the tick length, this makes time_next_adjust unnecessary.  This slightly\nchanges the adjtime() behaviour, instead of applying it to the next tick, it\u0027s\napplied to the next second.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0ee75561beadc4db4d9a899c8ef4a7db50aa0ab",
      "tree": "e50354c74ce17f6ea78dc1d7fac608788de517f3",
      "parents": [
        "4c7ee8de956fc250fe31e2fa91f6da980fabe317"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sat Sep 30 23:28:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:26 2006 -0700"
      },
      "message": "[PATCH] ntp: add ntp_update_frequency\n\nThis introduces ntp_update_frequency() and deinlines ntp_clear() (as it\u0027s not\nperformance critical).  ntp_update_frequency() calculates the base tick length\nusing tick_usec and adds a base adjustment, in case the frequency doesn\u0027t\ndivide evenly by HZ.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c7ee8de956fc250fe31e2fa91f6da980fabe317",
      "tree": "e2d7c207a7ca9f785c256513686f6d7f7234ef93",
      "parents": [
        "c902e0a0102f1095eec4b3511c13c84ca2bc4577"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Sat Sep 30 23:28:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:26 2006 -0700"
      },
      "message": "[PATCH] NTP: Move all the NTP related code to ntp.c\n\nMove all the NTP related code to ntp.c\n\n[akpm@osdl.org: cleanups, build fix]\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3171a0305d62e6627a24bff35af4f997e4988a80",
      "tree": "5cf70462490528523172927c75f47970faa46ce9",
      "parents": [
        "27d91e07f9b863fa94491ffafe250580f0c2ce78"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Fri Sep 29 02:00:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:15 2006 -0700"
      },
      "message": "[PATCH] simplify update_times (avoid jiffies/jiffies_64 aliasing problem)\n\nPass ticks to do_timer() and update_times(), and adjust x86_64 and s390\ntimer interrupt handler with this change.\n\nCurrently update_times() calculates ticks by \"jiffies - wall_jiffies\", but\ncallers of do_timer() should know how many ticks to update.  Passing ticks\nget rid of this redundant calculation.  Also there are another redundancy\npointed out by Martin Schwidefsky.\n\nThis cleanup make a barrier added by\n5aee405c662ca644980c184774277fc6d0769a84 needless.  So this patch removes\nit.\n\nAs a bonus, this cleanup make wall_jiffies can be removed easily, since now\nwall_jiffies is always synced with jiffies.  (This patch does not really\nremove wall_jiffies.  It would be another cleanup patch)\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nAcked-by: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Hirokazu Takata \u003ctakata.hirokazu@renesas.com\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nAcked-by: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "07dccf3344010f9b9df7fe725da7e73bca2992df",
      "tree": "696730ef4e1bf85a24eac84713921746f74c7c10",
      "parents": [
        "6c2d8b5dcad468cb0bdec3368b53383bde51e487"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Fri Sep 29 02:00:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:14 2006 -0700"
      },
      "message": "[PATCH] check return value of cpu_callback\n\nSpawing ksoftirqd, migration, or watchdog, and calling init_timers_cpu()\nmay fail with small memory.  If it happens in initcalls, kernel NULL\npointer dereference happens later.  This patch makes crash happen\nimmediately in such cases.  It seems a bit better than getting kernel NULL\npointer dereference later.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2aae4a108dab8b8bc92270335f6e4b5c146b32ae",
      "tree": "e1bc601a3575d1ea25947564bcaf7abbe08b9d69",
      "parents": [
        "d7ff0dbf45ee8a7c4802ff46844e6e8167b7f360"
      ],
      "author": {
        "name": "Rolf Eike Beer",
        "email": "eike-kernel@sf-tec.de",
        "time": "Fri Sep 29 01:59:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:10 2006 -0700"
      },
      "message": "[PATCH] Fix kerneldoc comments in kernel/timer.c\n\nSome of the kerneldoc comments in this file are ignored since the lead-in\nis malformed, using either \"/*\" or \"/***\" instead of \"/**\".\n\n[rdunlap@xenotime.net: kerneldoc fixes]\nSigned-off-by: Rolf Eike Beer \u003ceike-kernel@sf-tec.de\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89e7e374dde1015d69d2d70797ae4053b14fa9db",
      "tree": "c6d819506caeec6680be88fccc4ed8e910a25ac9",
      "parents": [
        "650a898342b3fa21c392c06a2b7010fa19823efa"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josht@us.ibm.com",
        "time": "Fri Sep 29 01:59:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:09 2006 -0700"
      },
      "message": "[PATCH] timer: add lock annotation to lock_timer_base\n\nlock_timer_base acquires a lock and returns with that lock held.  Add a\nlock annotation to this function so that sparse can check callers for lock\npairing, and so that sparse will not complain about this function since it\nintentionally uses the lock in this manner.\n\nSigned-off-by: Josh Triplett \u003cjosh@freedesktop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6997a6faaa129a1c91775f7344c8d371a05178ea",
      "tree": "d1dbf57afc7d561620ad1b192ae031fd234b085a",
      "parents": [
        "012c437d03cb299814e58ac8d574f7510f5989a5"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Sun Aug 13 23:24:23 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 14 12:54:29 2006 -0700"
      },
      "message": "[PATCH] sys_getppid oopses on debug kernel\n\nsys_getppid() optimization can access a freed memory.  On kernels with\nDEBUG_SLAB turned ON, this results in Oops.  As Dave Hansen noted, this\noptimization is also unsafe for memory hotplug.\n\nSo this patch always takes the lock to be safe.\n\n[oleg@tv-sign.ru: simplifications]\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "51d8c5edd3b166fcc51aba84d78761d578400a7c",
      "tree": "d3cf04b8fd2d7a5a2ba8c0957bd3dbe3839981f5",
      "parents": [
        "bc65ac6a0ffc66c56d1e6893685d7fe87c63cc44"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josht@us.ibm.com",
        "time": "Sun Jul 30 03:04:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:44 2006 -0700"
      },
      "message": "[PATCH] timer: Fix tvec_bases initializer\n\nkernel/timer.c defines a (per-cpu) pointer to tvec_base_t, but initializes\nit using { \u0026a_tvec_base_t }, which sparse warns about; change this to just\n\u0026a_tvec_base_t.\n\nSigned-off-by: Josh Triplett \u003cjosh@freedesktop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ea24f9ad18c65cc179593b5cc2a88cdadf8cc0c",
      "tree": "7a47cc8e18a6f25b4af0560282d8a0315f72241d",
      "parents": [
        "be6b5a3505fa0cd54c3b5959a39293f47c648980"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Sun Jul 30 03:03:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:40 2006 -0700"
      },
      "message": "[PATCH] fix bad macro param in timer.c\n\nWe have\n\n#define INDEX(N) (base-\u003etimer_jiffies \u003e\u003e (TVR_BITS + N * TVN_BITS)) \u0026 TVN_MASK\n\nand it\u0027s used via\n\n\tlist \u003d varray[i + 1]-\u003evec + (INDEX(i + 1));\n\nSo, due to underparenthesisation, this INDEX(i+1) is now a ...  (TVR_BITS + i\n+ 1 * TVN_BITS)) ...\n\nSo this bugfix changes behaviour.  It worked before by sheer luck:\n\n  \"If i was anything but 0, it was broken.  But this was only used by\n   s390 and arm.  Since it was for the next interrupt, could that next\n   interrupt be a problem (going into the second cascade)? But it was\n   probably seldom wrong.  That is, this would fail if the next\n   interrupt was in the second cascade, and was wrapped.  Which may\n   never of happened.  Also if it did happen, it would have just missed\n   the interrupt.\n\n   If an interrupt was missed, and no one was there to miss it, was it\n   really missed :-)\"\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c78f3075dab4be279e283f901f00e33ce44890a",
      "tree": "034d667a713b24d39608b09bd2aafb7983fb6ba5",
      "parents": [
        "cea6a4ba8acfba6f59cc9ed71e0d05cb770b9d9c"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Sun Jul 30 03:03:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:39 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: replace __devinit* with __cpuinit* for cpu notifications\n\nFew of the callback functions and notifier blocks that are associated with cpu\nnotifications incorrectly have __devinit and __devinitdata.  They should be\n__cpuinit and __cpuinitdata instead.\n\nIt makes no functional difference but wastes text area when CONFIG_HOTPLUG is\nenabled and CONFIG_HOTPLUG_CPU is not.\n\nThis patch fixes all those instances.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3e143475c22036847f898d7e76ba337c1d7dbf6f",
      "tree": "4bbd8f322f6a1cd43be409393742967234d23151",
      "parents": [
        "635adb6cd25c8f816c9017a0a0349cd389eafcd3"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Fri Jul 14 00:24:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:54 2006 -0700"
      },
      "message": "[PATCH] improve timekeeping resume robustness\n\nResolve problems seen w/ APM suspend.\n\nDue to resume initialization ordering, its possible we could get a timer\ninterrupt before the timekeeping resume() function is called.  This patch\nensures we don\u0027t do any timekeeping accounting before we\u0027re fully resumed.\n\n(akpm: fixes the machine-freezes-on-APM-resume bug)\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a0009652af385a42f0e0604136f772ead406c78d",
      "tree": "166224a3c3239ae5f7bd07759dd70b9bb2d95e28",
      "parents": [
        "52e92e5788139921352213fa6faf6e30ff1f2f5a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jul 14 00:24:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:52 2006 -0700"
      },
      "message": "[PATCH] del_timer_sync(): add cpu_relax()\n\nRelax the CPU in the del_timer_sync() busywait loop.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e154ff3d2c5ad313ef0c66e6217502361cad2799",
      "tree": "699be5e589775061d4279a7439ba5b2dc517078b",
      "parents": [
        "32dd66fce3b0ad5857433433b795844cb397608e"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Mon Jul 10 04:44:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:18 2006 -0700"
      },
      "message": "[PATCH] adjust clock for lost ticks\n\nA large number of lost ticks can cause an overadjustment of the clock.  To\ncompensate for this we look at the current error and the larger the error\nalready is the more careful we are at adjusting the error.  As small extra\nfix reset the error when the clock is set.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nAcked-by: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Uwe Bugla \u003cuwe.bugla@gmx.de\u003e\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "36c8b586896f60cb91a4fd526233190b34316baf",
      "tree": "003246e1e676de33703daa979b3e3109ca202a89",
      "parents": [
        "48f24c4da1ee7f3f22289cb85e8b8a73e4df4db5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:11 2006 -0700"
      },
      "message": "[PATCH] sched: cleanup, remove task_t, convert to struct task_struct\n\ncleanup: remove task_t and convert all the uses to struct task_struct. I\nintroduced it for the scheduler anno and it was a mistake.\n\nConversion was mostly scripted, the result was reviewed and all\nsecondary whitespace and style impact (if any) was fixed up by hand.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d730e882a15c38de02b63a063be636b2ff9e9ed1",
      "tree": "89e45dd870d7de3f50b487e87cf0ec1135f912dd",
      "parents": [
        "06825ba3553151eea24206bc53d4fc3de49e0ab1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:07 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate timer base locks\n\nSplit the per-CPU timer base locks up into separate lock classes, because they\nare used recursively.\n\nHas no effect on non-lockdep kernels.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e4d919188554a77c798a267e098059bc9aa39726",
      "tree": "bb5e47e09f5d107db44358ad668988f5ae768ade",
      "parents": [
        "9cebb5526833059f327d237a032422c762378b2a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:02 2006 -0700"
      },
      "message": "[PATCH] lockdep: locking init debugging improvement\n\nLocking init improvement:\n\n - introduce and use __SPIN_LOCK_UNLOCKED for array initializations,\n   to pass in the name string of locks, used by debugging\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "054cc8a2d808822dadf488a61729e3e550f114c4",
      "tree": "da7e5ecce06d1898263da9b47714b0b0fa972397",
      "parents": [
        "9c7b216d23e820e0e148d5be01bbb5bd2d8378fe"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: revert initdata patch submitted for 2.6.17\n\nThis patch reverts notifier_block changes made in 2.6.17\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9c7b216d23e820e0e148d5be01bbb5bd2d8378fe",
      "tree": "53e6c1e4870db49b4999b4053862d3f63375773f",
      "parents": [
        "6ac12dfe9c2027cd3c5ed603f11d1bb4f04906fe"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:40 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: revert init patch submitted for 2.6.17\n\nIn 2.6.17, there was a problem with cpu_notifiers and XFS.  I provided a\nband-aid solution to solve that problem.  In the process, i undid all the\nchanges you both were making to ensure that these notifiers were available\nonly at init time (unless CONFIG_HOTPLUG_CPU is defined).\n\nWe deferred the real fix to 2.6.18.  Here is a set of patches that fixes the\nXFS problem cleanly and makes the cpu notifiers available only at init time\n(unless CONFIG_HOTPLUG_CPU is defined).\n\nIf CONFIG_HOTPLUG_CPU is defined then cpu notifiers are available at run\ntime.\n\nThis patch reverts the notifier_call changes made in 2.6.17\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "19923c190e0932bf0ac1e1d06a48f5c3678dd0de",
      "tree": "2a32f5f16b3bbebd74c0f4910493c7f28a70fd84",
      "parents": [
        "6415ce9a922a1446e7ee0ac9b016082232ebe373"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Mon Jun 26 00:25:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:21 2006 -0700"
      },
      "message": "[PATCH] fix and optimize clock source update\n\nThis fixes the clock source updates in update_wall_time() to correctly\ntrack the time coming in via current_tick_length().  Optimize the fast\npaths to be as short as possible to keep the overhead low.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a275254975a29c51929ee175b92ac471ac2a0043",
      "tree": "42ec41bf74c0c601f05ed12ff674539f4bf6f505",
      "parents": [
        "5d0cf410e94b1f1ff852c3f210d22cc6c5a27ffa"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Mon Jun 26 00:25:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:21 2006 -0700"
      },
      "message": "[PATCH] time: rename clocksource functions\n\nAs suggested by Roman Zippel, change clocksource functions to use\nclocksource_xyz rather then xyz_clocksource to avoid polluting the\nnamespace.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cf3c769b4b0dd1146da84d5cf045dcfe53bd0f13",
      "tree": "caeb91eff6538ed5910e673a40a9f2bd9a022afa",
      "parents": [
        "5eb6d20533d14a432df714520939a6181e28f099"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Mon Jun 26 00:25:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:20 2006 -0700"
      },
      "message": "[PATCH] Time: Introduce arch generic time accessors\n\nIntroduces clocksource switching code and the arch generic time accessor\nfunctions that use the clocksource infrastructure.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5eb6d20533d14a432df714520939a6181e28f099",
      "tree": "b032147620a8e213356658783f8037d2f5623b57",
      "parents": [
        "260a42309b31cbc54eb4b6b85649e412bcad053f"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Mon Jun 26 00:25:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:20 2006 -0700"
      },
      "message": "[PATCH] Time: Use clocksource abstraction for NTP adjustments\n\nInstead of incrementing xtime by tick_nsec + ntp adjustments, use the\nclocksource abstraction to increment and scale time.  Using the clocksource\nabstraction allows other clocksources to be used consistently in the face of\nlate or lost ticks, while preserving the existing behavior via the jiffies\nclocksource.\n\nThis removes the need to keep time_phase adjustments as we just use the\ncurrent_tick_length() function as the NTP interface and accumulate time using\nshifted nanoseconds.\n\nThe basics of this design was by Roman Zippel, however it is my own\ninterpretation and implementation, so the credit should go to him and the\nblame to me.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "260a42309b31cbc54eb4b6b85649e412bcad053f",
      "tree": "51efc7bb51075b0d25d0e8465d3c056e6a57fe16",
      "parents": [
        "ad596171ed635c51a9eef829187af100cbf8dcf7"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Mon Jun 26 00:25:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:20 2006 -0700"
      },
      "message": "[PATCH] Time: Let user request precision from current_tick_length()\n\nChange the current_tick_length() function so it takes an argument which\nspecifies how much precision to return in shifted nanoseconds.  This provides\na simple way to convert between NTPs internal nanoseconds shifted by\n(SHIFT_SCALE - 10) to other shifted nanosecond units that are used by the\nclocksource abstraction.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ad596171ed635c51a9eef829187af100cbf8dcf7",
      "tree": "24b19bec1b1abd8bd110064226569aa42dde0b3b",
      "parents": [
        "734efb467b31e56c2f9430590a9aa867ecf3eea1"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Mon Jun 26 00:25:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:20 2006 -0700"
      },
      "message": "[PATCH] Time: Use clocksource infrastructure for update_wall_time\n\nModify the update_wall_time function so it increments time using the\nclocksource abstraction instead of jiffies.  Since the only clocksource driver\ncurrently provided is the jiffies clocksource, this should result in no\nfunctional change.  Additionally, a timekeeping_init and timekeeping_resume\nfunction has been added to initialize and maintain some of the new timekeping\nstate.\n\n[hirofumi@mail.parknet.co.jp: fixlet]\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bfe5d834195b3089b8846577311340376cc0f450",
      "tree": "52470de0fe87ff8372700e3472735cd5c14cee9d",
      "parents": [
        "6ceab8a936c302c0cea2bfe55617c76e2f5746fa"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Sun Jun 25 05:47:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:01 2006 -0700"
      },
      "message": "[PATCH] Define __raw_get_cpu_var and use it\n\nThere are several instances of per_cpu(foo, raw_smp_processor_id()), which\nis semantically equivalent to __get_cpu_var(foo) but without the warning\nthat smp_processor_id() can give if CONFIG_DEBUG_PREEMPT is enabled.  For\nthose architectures with optimized per-cpu implementations, namely ia64,\npowerpc, s390, sparc64 and x86_64, per_cpu() turns into more and slower\ncode than __get_cpu_var(), so it would be preferable to use __get_cpu_var\non those platforms.\n\nThis defines a __raw_get_cpu_var(x) macro which turns into per_cpu(x,\nraw_smp_processor_id()) on architectures that use the generic per-cpu\nimplementation, and turns into __get_cpu_var(x) on the architectures that\nhave an optimized per-cpu implementation.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3439dd86e34580384d3b58cf8d54a9283cd7a342",
      "tree": "b421244c25d96e83a744576ad543587339e581fb",
      "parents": [
        "626ab0e69d376fa07599af669af8ba92d58e87c1"
      ],
      "author": {
        "name": "Porpoise",
        "email": "porpoise.chiang@gmail.com",
        "time": "Fri Jun 23 02:05:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:08 2006 -0700"
      },
      "message": "[PATCH] When CONFIG_BASE_SMALL\u003d1, cascade() may enter an infinite loop\n\nWhen CONFIG_BASE_SAMLL\u003d1, cascade() in may enter the infinite loop.\nBecause of CONFIG_BASE_SMALL\u003d1(TVR_BITS\u003d6 and TVN_BITS\u003d4), the list\nbase-\u003etv5 may cascade into base-\u003etv5.  So, the kernel enters the infinite\nloop in the function cascade().\n\nI created a test module to verify this bug, and a patch to fix it.\n\n#include \u003clinux/kernel.h\u003e\n#include \u003clinux/module.h\u003e\n#include \u003clinux/init.h\u003e\n#include \u003clinux/timer.h\u003e\n#if 0\n#include \u003clinux/kdb.h\u003e\n#else\n#define kdb_printf printk\n#endif\n\n#define TVN_BITS (CONFIG_BASE_SMALL ? 4 : 6)\n#define TVR_BITS (CONFIG_BASE_SMALL ? 6 : 8)\n#define TVN_SIZE (1 \u003c\u003c TVN_BITS)\n#define TVR_SIZE (1 \u003c\u003c TVR_BITS)\n#define TVN_MASK (TVN_SIZE - 1)\n#define TVR_MASK (TVR_SIZE - 1)\n\n#define TV_SIZE(N)  (N*TVN_BITS  + TVR_BITS)\n\nstruct timer_list timer0;\nstruct timer_list dummy_timer1;\nstruct timer_list dummy_timer2;\n\nvoid dummy_timer_fun(unsigned long data) {\n}\nunsigned long j\u003d0;\nvoid check_timer_base(unsigned long data)\n{\n        kdb_printf(\"check_timer_base %08x\\n\",jiffies);\n        mod_timer(\u0026timer0,(jiffies \u0026 (~0xFFF)) + 0x1FFF);\n}\n\nint init_module(void)\n{\n        init_timer(\u0026timer0);\n        timer0.data \u003d (unsigned long)0;\n        timer0.function \u003d check_timer_base;\n        mod_timer(\u0026timer0,jiffies+1);\n\n        init_timer(\u0026dummy_timer1);\n        dummy_timer1.data \u003d (unsigned long)0;\n        dummy_timer1.function \u003d dummy_timer_fun;\n\n        init_timer(\u0026dummy_timer2);\n        dummy_timer2.data \u003d (unsigned long)0;\n        dummy_timer2.function \u003d dummy_timer_fun;\n\n        j\u003djiffies;\n        j\u0026\u003d(~((1\u003c\u003cTV_SIZE(3))-1));\n        j+\u003d(1\u003c\u003cTV_SIZE(3));\n        j+\u003d(1\u003c\u003cTV_SIZE(4));\n\n        kdb_printf(\"mod_timer %08x\\n\",j);\n\n        mod_timer(\u0026dummy_timer1, j );\n        mod_timer(\u0026dummy_timer2, j );\n\n        return 0;\n}\n\nvoid cleanup_module()\n{\n        del_timer_sync(\u0026timer0);\n        del_timer_sync(\u0026dummy_timer1);\n        del_timer_sync(\u0026dummy_timer2);\n}\n\n(Cleanups from Oleg)\n\n[oleg@tv-sign.ru: use list_replace_init()]\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "626ab0e69d376fa07599af669af8ba92d58e87c1",
      "tree": "a995e0231e61fab63568bc7bade81dc20c1dae09",
      "parents": [
        "54e73770357142e297c916c7865f5fca7499f69c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jun 23 02:05:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:07 2006 -0700"
      },
      "message": "[PATCH] list: use list_replace_init() instead of list_splice_init()\n\nlist_splice_init(list, head) does unneeded job if it is known that\nlist_empty(head) \u003d\u003d 1.  We can use list_replace_init() instead.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0662b71322e211dba9a4bc0e6fbca7861a2b5a7d",
      "tree": "bffce074929b6a36b7b1e00a485df7a5fe95cc22",
      "parents": [
        "8b1ea24c6cc529f6860c458b1c0872f22e74c950"
      ],
      "author": {
        "name": "Zachary Amsden",
        "email": "zach@vmware.com",
        "time": "Sat May 20 15:00:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 12:59:21 2006 -0700"
      },
      "message": "[PATCH] Fix a NO_IDLE_HZ timer bug\n\nUnder certain timing conditions, a race during boot occurs where timer\nticks are being processed on remote CPUs.  The remote timer ticks can\nincrement jiffies, and if this happens during a window when a timeout is\nvery close to expiring but a local tick has not yet been delivered, you can\nend up with\n\n1) No softirq pending\n2) A local timer wheel which is not synced to jiffies\n3) No high resolution timer active\n4) A local timer which is supposed to fire before the current jiffies value.\n\nIn this circumstance, the comparison in next_timer_interrupt overflows,\nbecause the base of the comparison for high resolution timers is jiffies,\nbut for the softirq timer wheel, it is relative the the current base of the\nwheel (jiffies_base).\n\nSigned-off-by: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "83d722f7e198b034699b1500d98729beff930efd",
      "tree": "7d790a2fd62165373ec7bacde704837288e0bec3",
      "parents": [
        "649bbaa484bcdce94f40a1b97a6a2ded0549e8a2"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Apr 24 19:35:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 26 08:30:03 2006 -0700"
      },
      "message": "[PATCH] Remove __devinit and __cpuinit from notifier_call definitions\n\nFew of the notifier_chain_register() callers use __init in the definition\nof notifier_call.  It is incorrect as the function definition should be\navailable after the initializations (they do not unregister them during\ninitializations).\n\nThis patch fixes all such usages to _not_ have the notifier_call __init\nsection.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "649bbaa484bcdce94f40a1b97a6a2ded0549e8a2",
      "tree": "f24f05bf95ae9c4164266da87f36fed61c5c2206",
      "parents": [
        "e7edf9cdeddc0cff125e8e658216efb2ff2b2219"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Apr 24 19:35:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 26 08:27:50 2006 -0700"
      },
      "message": "[PATCH] Remove __devinitdata from notifier block definitions\n\nFew of the notifier_chain_register() callers use __devinitdata in the\ndefinition of notifier_block data structure.  It is incorrect as the\ndata structure should be available after the initializations (they do\nnot unregister them during initializations).\n\nThis was leading to an oops when notifier_chain_register() call is\ninvoked for those callback chains after initialization.\n\nThis patch fixes all such usages to _not_ have the notifier_block data\nstructure in the init data section.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ba6edfcd1708da2e665f14eee76e87f39448ec40",
      "tree": "68aaebb5d97c31712567fb459dcd34343a514b78",
      "parents": [
        "5246d0503130fa58904c8beb987fcf93b96d8ab6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Apr 10 22:53:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:40 2006 -0700"
      },
      "message": "[PATCH] timer initialisation fix\n\nWe need the boot CPU\u0027s tvec_bases[] entry to be initialised super-early in\nboot, for early_serial_setup().  That runs within setup_arch(), before even\nper-cpu areas are initialised.\n\nThe patch changes tvec_bases to use compile-time initialisation, and adds a\nseparate array `tvec_base_done\u0027 to keep track of which CPU has had its\ntvec_bases[] entry initialised (because we can no longer use the zeroness of\nthat tvec_bases[] entry to determine whether it has been initialised).\n\nThanks to Eugene Surovegin \u003cebs@ebshome.net\u003e for diagnosing this.\n\nCc: Eugene Surovegin \u003cebs@ebshome.net\u003e\nCc: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b20367a6c2a0cd937cb1f0a8cf848f1402fef99c",
      "tree": "8624096baed40f8f89e757b2d170a7b4d1844575",
      "parents": [
        "49c93e84d8b2d602a07c302c7e3cd4fa09095fbb"
      ],
      "author": {
        "name": "Jordan Hargrave",
        "email": "jordan_hargrave@dell.com",
        "time": "Fri Apr 07 19:50:18 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Apr 09 11:53:53 2006 -0700"
      },
      "message": "[PATCH] x86_64: Fix drift with HPET timer enabled\n\nIf the HPET timer is enabled, the clock can drift by ~3 seconds a day.\nThis is due to the HPET timer not being initialized with the correct\nsetting (still using PIT count).\n\nIf HZ changes, this drift can become even more pronounced.\n\nHPET patch initializes tick_nsec with correct tick_nsec settings for\nHPET timer.\n\nVojtech comments:\n\n  \"It\u0027s not entirely correct (it assumes the HPET ticks totally\n   exactly), but it\u0027s significantly better than assuming the PIT error\n   there.\"\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f31252cb61d5bc641cdef8a069a2ca5a77855f2",
      "tree": "b341ce067a5620a4a9650429ce64262888cd43a2",
      "parents": [
        "fda8bd78a15950b9b01a1c1477a9095cb08c27c1"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Apr 02 13:45:55 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Apr 02 13:45:55 2006 +0200"
      },
      "message": "BUG_ON() Conversion in kernel/signal.c\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner, contains unlikely() and can better optimized away.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "db1b1fefc2cecbff2e4214062fa8c680cb6e7b7d",
      "tree": "ad8e68882f7c36216e16ab264101c5da96ccd5c9",
      "parents": [
        "3055addadbe9bfb2365006a1c13fd342a8d30d52"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Fri Mar 31 02:31:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] sched: reduce overhead of calc_load\n\nCurrently, count_active_tasks() calls both nr_running() \u0026\nnr_interruptible().  Each of these functions does a \"for_each_cpu\" \u0026 reads\nvalues from the runqueue of each cpu.  Although this is not a lot of\ninstructions, each runqueue may be located on different node.  Depending on\nthe architecture, a unique TLB entry may be required to access each\nrunqueue.\n\nSince there may be more runqueues than cpu TLB entries, a scan of all\nrunqueues can trash the TLB.  Each memory reference incurs a TLB miss \u0026\nrefill.\n\nIn addition, the runqueue cacheline that contains nr_running \u0026\nnr_uninterruptible may be evicted from the cache between the two passes.\nThis causes unnecessary cache misses.\n\nCombining nr_running() \u0026 nr_interruptible() into a single function\nsubstantially reduces the TLB \u0026 cache misses on large systems.  This should\nhave no measureable effect on smaller systems.\n\nOn a 128p IA64 system running a memory stress workload, the new function\nreduced the overhead of calc_load() from 605 usec/call to 324 usec/call.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a2c348fe0117adced11e374329a5ea3f7c43cb41",
      "tree": "95233412196f8093e2e82437afeeadd2e479040c",
      "parents": [
        "3691c5199e8a4be1c7a91b5ab925db5feb866e19"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Mar 31 02:30:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:53 2006 -0800"
      },
      "message": "[PATCH] __mod_timer: simplify -\u003ebase changing\n\nSince base and new_base are of the same type now, we can save one \u0027if\u0027\nbranch and simplify the code a bit.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3691c5199e8a4be1c7a91b5ab925db5feb866e19",
      "tree": "025210545818b080df13faa31c9266432579794c",
      "parents": [
        "5ce29646ebe352587e3b3160d599010c5da1b9dd"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Mar 31 02:30:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:52 2006 -0800"
      },
      "message": "[PATCH] kill __init_timer_base in favor of boot_tvec_bases\n\nCommit a4a6198b80cf82eb8160603c98da218d1bd5e104:\n\t[PATCH] tvec_bases too large for per-cpu data\n\nintroduced \"struct tvec_t_base_s boot_tvec_bases\" which is visible at\ncompile time.  This means we can kill __init_timer_base and move\ntimer_base_s\u0027s content into tvec_t_base_s.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ddcfa878d5b10b0ab94251a4229a8a9daaf93ed",
      "tree": "b24bbd7ccb1a8accb0bc2e6f8c0d3b92f0bf66ea",
      "parents": [
        "e4294b3ecd1da9abeb66709c89f71b1ba888b3b1"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sat Mar 25 03:08:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:23:02 2006 -0800"
      },
      "message": "[PATCH] remove pps support\n\nThis removes the support for pps.  It\u0027s completely unused within the kernel\nand is basically in the way for further cleanups.  It should be easier to\nreadd proper support for it after the rest has been converted to NTP4\n(where the pps mechanisms are quite different from NTP3 anyway).\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c08b8a49100715b20e6f7c997e992428b5e06078",
      "tree": "014758fb05908a3d49eeadc77f16dfa7585b12ac",
      "parents": [
        "185ae6d7a32721e9062030a9f2d24ed714fa45df"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 25 03:06:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:48 2006 -0800"
      },
      "message": "[PATCH] sys_alarm() unsigned signed conversion fixup\n\nalarm() calls the kernel with an unsigend int timeout in seconds.  The\nvalue is stored in the tv_sec field of a struct timeval to setup the\nitimer.  The tv_sec field of struct timeval is of type long, which causes\nthe tv_sec value to be negative on 32 bit machines if seconds \u003e INT_MAX.\n\nBefore the hrtimer merge (pre 2.6.16) such a negative value was converted\nto the maximum jiffies timeout by the timeval_to_jiffies conversion.  It\u0027s\nnot clear whether this was intended or just happened to be done by the\ntimeval_to_jiffies code.\n\nhrtimers expect a timeval in canonical form and treat a negative timeout as\nalready expired.  This breaks the legitimate usage of alarm() with a\ntimeout value \u003e INT_MAX seconds.\n\nFor 32 bit machines it is therefor necessary to limit the internal seconds\nvalue to avoid API breakage.  Instead of doing this in all implementations\nof sys_alarm the duplicated sys_alarm code is moved into a common function\nin itimer.c\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6687a97d4041f996f725902d2990e5de6ef5cbe5",
      "tree": "6ab982091cde7179d94cf592f9c669fd22d93a23",
      "parents": [
        "6a4d11c2abc57ed7ca42041e5f68ae4f7f640a81"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 24 03:18:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:30 2006 -0800"
      },
      "message": "[PATCH] timer-irq-driven soft-watchdog, cleanups\n\nMake the softlockup detector purely timer-interrupt driven, removing\nsoftirq-context (timer) dependencies.  This means that if the softlockup\nwatchdog triggers, it has truly observed a longer than 10 seconds\nscheduling delay of a SCHED_FIFO prio 99 task.\n\n(the patch also turns off the softlockup detector during the initial bootup\nphase and does small style fixes)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a4a6198b80cf82eb8160603c98da218d1bd5e104",
      "tree": "8c59e9088840b6b95e46c00ddda4fd7a134154c2",
      "parents": [
        "c98d8cfbc600af88e9e6cffc84dd342280445760"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Fri Mar 24 03:15:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:21 2006 -0800"
      },
      "message": "[PATCH] tvec_bases too large for per-cpu data\n\nWith internal Xen-enabled kernels we see the kernel\u0027s static per-cpu data\narea exceed the limit of 32k on x86-64, and even native x86-64 kernels get\nfairly close to that limit.  I generally question whether it is reasonable\nto have data structures several kb in size allocated as per-cpu data when\nthe space there is rather limited.\n\nThe biggest arch-independent consumer is tvec_bases (over 4k on 32-bit\narchs, over 8k on 64-bit ones), which now gets converted to use dynamically\nallocated memory instead.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "67890d7084085e29c51afa2514036d42643fd3cf",
      "tree": "2562028768e7236ee70a5954aa45d8922fcbf350",
      "parents": [
        "90036ee5938d89638e80f4d0d0700d0f2dbd4a6a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Mar 16 23:04:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 17 07:51:25 2006 -0800"
      },
      "message": "[PATCH] time_interpolator: add __read_mostly\n\nThe pointer to the current time interpolator and the current list of time\ninterpolators are typically only changed during bootup.  Adding\n__read_mostly takes them away from possibly hot cachelines.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5aee405c662ca644980c184774277fc6d0769a84",
      "tree": "e8a74f57b4866e2ab0f6adac5dec174e8dbf17c0",
      "parents": [
        "a615fa83959896f8eac76c235953fb164cd1a9b9"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Mon Mar 06 15:42:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 18:40:44 2006 -0800"
      },
      "message": "[PATCH] time: add barrier after updating jiffies_64\n\nAdd a compiler barrier so that we don\u0027t read jiffies before updating\njiffies_64.\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "69239749e1ac4f3496906aa4267cb9f61ce52c9c",
      "tree": "c64bc2c254b7fa81b50b11c851fe5c86ecdd83c1",
      "parents": [
        "f7c09bd972b7111b8c69bf57a189571edd4d4a7d"
      ],
      "author": {
        "name": "Tony Lindgren",
        "email": "tony@atomide.com",
        "time": "Mon Mar 06 15:42:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 18:40:44 2006 -0800"
      },
      "message": "[PATCH] fix next_timer_interrupt() for hrtimer\n\nAlso from Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\nFunction next_timer_interrupt() got broken with a recent patch\n6ba1b91213e81aa92b5cf7539f7d2a94ff54947c as sys_nanosleep() was moved to\nhrtimer.  This broke things as next_timer_interrupt() did not check hrtimer\ntree for next event.\n\nFunction next_timer_interrupt() is needed with dyntick (CONFIG_NO_IDLE_HZ,\nVST) implementations, as the system can be in idle when next hrtimer event\nwas supposed to happen.  At least ARM and S390 currently use\nnext_timer_interrupt().\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "685db65e422bfa523b8a9dacb5a658b42b254f05",
      "tree": "0d7eba52e7c9584a2e3b4f2cd1842bf55e67c2d0",
      "parents": [
        "7f99f06f01aa9460b5a18f1b0e0900c90d0a84fc"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Thu Mar 02 02:54:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 02 08:33:07 2006 -0800"
      },
      "message": "[PATCH] time_interpolator: Use readq_relaxed() instead of readq().\n\nOn some platforms readq performs additional work to make sure I/O is done\nin a coherent way.  This is not needed for time retrieval as done by the\ntime interpolator.  So we can use readq_relaxed instead which will improve\nperformance.\n\nIt affects sparc64 and ia64 only.  Apparently it makes a significant\ndifference on ia64.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "726c14bf499e91e7ede4f1728830aba05c675061",
      "tree": "c9dfbc8f8fe7facc58e07e5699b6d97c41bd2b8e",
      "parents": [
        "dd942ae331425812930cd01766178b7e28e65f2d"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Fri Feb 17 10:30:23 2006 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 17 08:24:29 2006 -0800"
      },
      "message": "[PATCH] Provide an interface for getting the current tick length\n\nThis provides an interface for arch code to find out how many\nnanoseconds are going to be added on to xtime by the next call to\ndo_timer.  The value returned is a fixed-point number in 52.12 format\nin nanoseconds.  The reason for this format is that it gives the\nfull precision that the timekeeping code is using internally.\n\nThe motivation for this is to fix a problem that has arisen on 32-bit\npowerpc in that the value returned by do_gettimeofday drifts apart\nfrom xtime if NTP is being used.  PowerPC is now using a lockless\ndo_gettimeofday based on reading the timebase register and performing\nsome simple arithmetic.  (This method of getting the time is also\nexported to userspace via the VDSO.)  However, the factor and offset\nit uses were calculated based on the nominal tick length and weren\u0027t\nbeing adjusted when NTP varied the tick length.\n\nNote that 64-bit powerpc has had the lockless do_gettimeofday for a\nlong time now.  It also had an extremely hairy routine that got called\nfrom the 32-bit compat routine for adjtimex, which adjusted the\nfactor and offset according to what it thought the timekeeping code\nwas going to do.  Not only was this only called if a 32-bit task did\nadjtimex (i.e. not if a 64-bit task did adjtimex), it was also\nduplicating computations from kernel/timer.c and it wasn\u0027t clear that\nit was (still) correct.\n\nThe simple solution is to ask the timekeeping code how long the\ncurrent jiffy will be on each timer interrupt, after calling\ndo_timer.  If this jiffy will be a different length from the last one,\nwe then need to compute new values for the factor and offset used in\nthe lockless do_gettimeofday.  In this way we can keep xtime and\ndo_gettimeofday in sync, even when NTP is varying the tick length.\n\nNote that when adjtimex varies the tick length, it almost always\nintroduces the variation from the next tick on.  The only case I could\nsee where adjtimex would vary the length of the current tick is when\nan old-style adjtime adjustment is being cancelled.  (It\u0027s not clear\nto me why the adjustment has to be cancelled immediately rather than\nfrom the next tick on.)  Thus I don\u0027t see any real need for a hook in\nadjtimex; the rare case of an old-style adjustment being cancelled can\nbe fixed up at the next tick.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "53f087febfd12e74ba9f1082e71e9a45adc039ad",
      "tree": "8908ff3ecc3c97fb536c616df0f9d46356c4739f",
      "parents": [
        "76edc6051e02186fe664ab880447e2d1f96fd884"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Feb 01 05:56:41 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 07 20:57:42 2006 -0500"
      },
      "message": "[PATCH] timer.c NULL noise removal\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6ba1b91213e81aa92b5cf7539f7d2a94ff54947c",
      "tree": "0d461bf7c7f444a80d09f09501e9fb378a78220f",
      "parents": [
        "10c94ec16dd187f8d8dfdbb088e98330c05bf03c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jan 09 20:52:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:38 2006 -0800"
      },
      "message": "[PATCH] hrtimer: switch sys_nanosleep to hrtimer\n\nconvert sys_nanosleep() to use hrtimer_nanosleep()\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c0a3132963db68f1fbbd0e316b73de100fee3f08",
      "tree": "cdd76aacf0ca7ae7780696a06bf9643f8b245ba1",
      "parents": [
        "97fc79f97b1111c80010d34ee66312b88f531e41"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jan 09 20:52:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:37 2006 -0800"
      },
      "message": "[PATCH] hrtimer: hrtimer core code\n\nhrtimer subsystem core.  It is initialized at bootup and expired by the timer\ninterrupt, but is otherwise not utilized by any other subsystem yet.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "97a41e26124330e41aa10ef88cd1711bc3d17460",
      "tree": "1546db361efaf926c7a970e3ec6044ea8d4b6f4c",
      "parents": [
        "b7b4d7a4666454b40b45a853bd1d296af37a85f0"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Jan 08 01:02:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:48 2006 -0800"
      },
      "message": "[PATCH] kernel/: small cleanups\n\nThis patch contains the following cleanups:\n- make needlessly global functions static\n- every file should include the headers containing the prototypes for\n  it\u0027s global functions\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ecea8d19c9f0ebd62ddaa07fc919ff4e4b820d99",
      "tree": "189de0b898157618fbf08ec6e4adc8e5cce71ec3",
      "parents": [
        "371e8c25b65f2fe7942868a8a67129d571e94076"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Oct 30 15:03:00 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:25 2005 -0800"
      },
      "message": "[PATCH] jiffies_64 cleanup\n\nDefine jiffies_64 in kernel/timer.c rather than having 24 duplicated\ndefines in each architecture.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dfc4f94d2ff95fc92127d3e512c1df7cab274fb8",
      "tree": "c9ed4d74147a3674816f59cf9fbeb69e2cb6afe4",
      "parents": [
        "89ada67917f516212452443a56b9fd3b65b74dc7"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Oct 30 15:02:03 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] remove timer debug field\n\nRemove timer_list.magic and associated debugging code.\n\nI originally added this when a spinlock was added to timer_list - this meant\nthat an all-zeroes timer became illegal and init_timer() was required.\n\nThat spinlock isn\u0027t even there any more, although timer.base must now be\ninitialised.\n\nI\u0027ll keep this debugging code in -mm.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a5a0d52c7305cb3629ef0cc9e2e0e106869e1907",
      "tree": "11be2b00bc455e8f0dbe280b64932bdb7369bde0",
      "parents": [
        "1bb34a412750291e4e5e9f1d0fe7ae1b7e976098"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Oct 30 15:01:42 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] ntp whitespace cleanup\n\nFix bizarre 4-space coding style in the NTP code.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1bb34a412750291e4e5e9f1d0fe7ae1b7e976098",
      "tree": "00d481a2ff4302f444fbf7c31e5e661f79dc85a9",
      "parents": [
        "9c0cbd54ce0397017a823484f9a8054ab369b8a2"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Sun Oct 30 15:01:42 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] NTP shift_right cleanup\n\nCreate a macro shift_right() that avoids the numerous ugly conditionals in the\nNTP code that look like:\n\n        if(a \u003c 0)\n                b \u003d -(-a \u003e\u003e shift);\n        else\n                b \u003d a \u003e\u003e shift;\n\nReplacing it with:\n\n        b \u003d shift_right(a, shift);\n\nThis should have zero effect on the logic, however it should probably have\na bit of testing just to be sure.\n\nAlso replace open-coded min/max with the macros.\n\nSigned-off-by : John Stultz \u003cjohnstul@us.ibm.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a8db2db1e6a8d323d87a67c5391d48fe2b97faf5",
      "tree": "0aa5fb9f80e4a476e097337104a3e1f94f39a96e",
      "parents": [
        "9e4e23bccb127fac109e765dfb7f9372661cb415"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:01:38 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:17 2005 -0800"
      },
      "message": "[PATCH] introduce setup_timer() helper\n\nEvery user of init_timer() also needs to initialize -\u003efunction and -\u003edata\nfields.  This patch adds a simple setup_timer() helper for that.\n\nThe schedule_timeout() is patched as an example of usage.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b8f573b5db02a3017afbba49026a6aef480174f",
      "tree": "4abf19125526809d4be44cb83373f85605854575",
      "parents": [
        "930fc45a49ddebe7555cc5c837d82b9c27e65ff4"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sat Oct 29 18:15:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:35 2005 -0700"
      },
      "message": "[PATCH] TIMERS: add missing compensation for HZ \u003d\u003d 250\n\nAdd missing compensation for (HZ \u003d\u003d 250) !\u003d (1 \u003c\u003c SHIFT_HZ) in\nsecond_overflow().\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8a1c17574a01555e5d3fdf56d8d72969904c91ca",
      "tree": "9855d1048c2547ac9292c5e4c09c2a88f3b3e4fb",
      "parents": [
        "498d0c5711094b0e1fd93f5355d270ccebdec706"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Sep 13 01:25:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:29 2005 -0700"
      },
      "message": "[PATCH] schedule_timeout_[un]interruptible() speedup\n\nThese functions don\u0027t need schedule_timeout()\u0027s barrier.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "75bcc8c5e1de78616b04ef9f317a293a7c1c163c",
      "tree": "fabdfd7fbc46baae5638b41648444d805e14eb3c",
      "parents": [
        "041e0e3b1970c508dc9a95b7dd9dc86271a7d7ac"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:37 2005 -0700"
      },
      "message": "[PATCH] kernel: fix-up schedule_timeout() usage\n\nUse schedule_timeout_{,un}interruptible() instead of\nset_current_state()/schedule_timeout() to reduce kernel size.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64ed93a268bc18fa6f72f61420d0e0022c5e38d1",
      "tree": "1332ce542510b88014767f3536d9150710a2f3f9",
      "parents": [
        "672289e9faa56acd4e39ad866ea258b7be7c99a6"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:36 2005 -0700"
      },
      "message": "[PATCH] add schedule_timeout_{,un}interruptible() interfaces\n\nAdd schedule_timeout_{,un}interruptible() interfaces so that\nschedule_timeout() callers don\u0027t have to worry about forgetting to add the\nset_current_state() call beforehand.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "486d46aefe7ded0d343e306be740edd972aff740",
      "tree": "e750143e578503b77a66eff21595b16730506802",
      "parents": [
        "9f4a6dce10941380ad7365cc9b0ef038ed56cbf9"
      ],
      "author": {
        "name": "Alex Williamson",
        "email": "alex.williamson@hp.com",
        "time": "Tue Sep 06 15:17:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:24 2005 -0700"
      },
      "message": "[PATCH] optimize writer path in time_interpolator_get_counter()\n\n      Christoph Lameter \u003cclameter@engr.sgi.com\u003e\n\nWhen using a time interpolator that is susceptible to jitter there\u0027s\npotentially contention over a cmpxchg used to prevent time from going\nbackwards.  This is unnecessary when the caller holds the xtime write\nseqlock as all readers will be blocked from returning until the write is\ncomplete.  We can therefore allow writers to insert a new value and exit\nrather than fight with CPUs who only hold a reader lock.\n\nSigned-off-by: Alex Williamson \u003calex.williamson@hp.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8446f1d391f3d27e6bf9c43d4cbcdac0ca720417",
      "tree": "738853af877c9a391b4f2db467e7f90c6e2e38ed",
      "parents": [
        "4732efbeb997189d9f9b04708dc26bf8613ed721"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 06 15:16:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:17 2005 -0700"
      },
      "message": "[PATCH] detect soft lockups\n\nThis patch adds a new kernel debug feature: CONFIG_DETECT_SOFTLOCKUP.\n\nWhen enabled then per-CPU watchdog threads are started, which try to run\nonce per second.  If they get delayed for more than 10 seconds then a\ncallback from the timer interrupt detects this condition and prints out a\nwarning message and a stack dump (once per lockup incident).  The feature\nis otherwise non-intrusive, it doesnt try to unlock the box in any way, it\nonly gets the debug info out, automatically, and on all CPUs affected by\nthe lockup.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-Off-By: Matthias Urlichs \u003csmurf@smurf.noris.de\u003e\nSigned-off-by: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c5640cb5f5a6fd780d99397eca028b575cb1206",
      "tree": "3f5eb4b4390ea71031eb2c93261052e6698cbdc1",
      "parents": [
        "3f024c1a4bc8ef9a149879351ce8b3aa749e0c2f"
      ],
      "author": {
        "name": "David Meybohm",
        "email": "dmeybohmlkml@bellsouth.net",
        "time": "Mon Aug 22 13:11:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Aug 23 11:44:29 2005 -0700"
      },
      "message": "[PATCH] preempt race in getppid\n\nWith CONFIG_PREEMPT \u0026\u0026 !CONFIG_SMP, it\u0027s possible for sys_getppid to\nreturn a bogus value if the parent\u0027s task_struct gets reallocated after\ncurrent-\u003egroup_leader-\u003ereal_parent is read:\n\n        asmlinkage long sys_getppid(void)\n        {\n                int pid;\n                struct task_struct *me \u003d current;\n                struct task_struct *parent;\n\n                parent \u003d me-\u003egroup_leader-\u003ereal_parent;\nRACE HERE \u003d\u003e    for (;;) {\n                        pid \u003d parent-\u003etgid;\n        #ifdef CONFIG_SMP\n        {\n                        struct task_struct *old \u003d parent;\n\n                        /*\n                         * Make sure we read the pid before re-reading the\n                         * parent pointer:\n                         */\n                        smp_rmb();\n                        parent \u003d me-\u003egroup_leader-\u003ereal_parent;\n                        if (old !\u003d parent)\n                                continue;\n        }\n        #endif\n                        break;\n                }\n                return pid;\n        }\n\nIf the process gets preempted at the indicated point, the parent process\ncan go ahead and call exit() and then get wait()\u0027d on to reap its\ntask_struct. When the preempted process gets resumed, it will not do any\nfurther checks of the parent pointer on !CONFIG_SMP: it will read the\nbad pid and return.\n\nSo, the same algorithm used when SMP is enabled should be used when\npreempt is enabled, which will recheck -\u003ereal_parent in this case.\n\nSigned-off-by: David Meybohm \u003cdmeybohmlkml@bellsouth.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "96ec3efdcbaea4f403f2a5f1204edbf903a01961",
      "tree": "e76ac60d389be7e7ed40e5bf2cd63f46b84b7e87",
      "parents": [
        "b20f3ae5f0efe1812d2a1278e2127a335884d445"
      ],
      "author": {
        "name": "Domen Puncer",
        "email": "domen@coderock.org",
        "time": "Sat Jun 25 14:58:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Jun 25 16:24:58 2005 -0700"
      },
      "message": "[PATCH] kernel/timer: fix msleep_interruptible() comment\n\nThe comment for msleep_interruptible() is wrong, as it will ignore\nwait-queue events, but will wake up early for signals.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Domen Puncer \u003cdomen@coderock.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "be5b4fbd017d12e0d09ea0528a5839ce2ed2c8c8",
      "tree": "212a43003d1c4265718f53502547f36acbec143d",
      "parents": [
        "dcd497f99a1ef29a7c5e76142965be77e9dacabd"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Thu Jun 23 00:09:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:19 2005 -0700"
      },
      "message": "[PATCH] preempt_count is int - remove cast and don\u0027t assign to unsigned type\n\nIn kernel/sched.c the return value from preempt_count() is cast to an int.\nThat made sense when preempt_count was defined as different types on is not\nneeded and should go away.  The patch removes the cast.\n\nIn kernel/timer.c the return value from preempt_count() is assigned to a\nvariable of type u32 and then that unsigned value is later compared to\npreempt_count().  Since preempt_count() returns an int, an int is what\nshould be used to store its return value.  Storing the result in an\nunsigned 32bit integer made a tiny bit of sense back when preempt_count was\ndifferent types on different archs, but no more - let\u0027s not play signed vs\nunsigned comparison games when we don\u0027t have to.  The patch modifies the\ncode to use an int to hold the value.  While I was around that bit of code\nI also made two changes to a nearby (related) printk() - I modified it to\nspecify the loglevel explicitly and also broke the line into a few pieces\nto avoid it being longer than 80 chars and clarified the text a bit.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd450b7318b75343fd76b3d95416853e34e72c95",
      "tree": "e747348f7d3c9f1615963dde4f2c8baaf842415f",
      "parents": [
        "55c888d6d09a0df236adfaf8ccf06ff5d0646775"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Jun 23 00:08:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:16 2005 -0700"
      },
      "message": "[PATCH] timers: introduce try_to_del_timer_sync()\n\nThis patch splits del_timer_sync() into 2 functions.  The new one,\ntry_to_del_timer_sync(), returns -1 when it hits executing timer.\n\nIt can be used in interrupt context, or when the caller hold locks which\ncan prevent completion of the timer\u0027s handler.\n\nNOTE.  Currently it can\u0027t be used in interrupt context in UP case, because\n-\u003erunning_timer is used only with CONFIG_SMP.\n\nShould the need arise, it is possible to kill #ifdef CONFIG_SMP in\nset_running_timer(), it is cheap.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "55c888d6d09a0df236adfaf8ccf06ff5d0646775",
      "tree": "deb9434abe3cf7c9b714ccb267ef5d943a847dfe",
      "parents": [
        "bdd646a44672115c986593956aa4ef105485a184"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Jun 23 00:08:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:16 2005 -0700"
      },
      "message": "[PATCH] timers fixes/improvements\n\nThis patch tries to solve following problems:\n\n1. del_timer_sync() is racy. The timer can be fired again after\n   del_timer_sync have checked all cpus and before it will recheck\n   timer_pending().\n\n2. It has scalability problems. All cpus are scanned to determine\n   if the timer is running on that cpu.\n\n   With this patch del_timer_sync is O(1) and no slower than plain\n   del_timer(pending_timer), unless it has to actually wait for\n   completion of the currently running timer.\n\n   The only restriction is that the recurring timer should not use\n   add_timer_on().\n\n3. The timers are not serialized wrt to itself.\n\n   If CPU_0 does mod_timer(jiffies+1) while the timer is currently\n   running on CPU 1, it is quite possible that local interrupt on\n   CPU_0 will start that timer before it finished on CPU_1.\n\n4. The timers locking is suboptimal. __mod_timer() takes 3 locks\n   at once and still requires wmb() in del_timer/run_timers.\n\n   The new implementation takes 2 locks sequentially and does not\n   need memory barriers.\n\nCurrently -\u003ebase !\u003d NULL means that the timer is pending. In that case\n-\u003ebase.lock is used to lock the timer. __mod_timer also takes timer-\u003elock\nbecause -\u003ebase can be \u003d\u003d NULL.\n\nThis patch uses timer-\u003eentry.next !\u003d NULL as indication that the timer is\npending. So it does __list_del(), entry-\u003enext \u003d NULL instead of list_del()\nwhen the timer is deleted.\n\nThe -\u003ebase field is used for hashed locking only, it is initialized\nin init_timer() which sets -\u003ebase \u003d per_cpu(tvec_bases). When the\ntvec_bases.lock is locked, it means that all timers which are tied\nto this base via timer-\u003ebase are locked, and the base itself is locked\ntoo.\n\nSo __run_timers/migrate_timers can safely modify all timers which could\nbe found on -\u003etvX lists (pending timers).\n\nWhen the timer\u0027s base is locked, and the timer removed from -\u003eentry list\n(which means that _run_timers/migrate_timers can\u0027t see this timer), it is\npossible to set timer-\u003ebase \u003d NULL and drop the lock: the timer remains\nlocked.\n\nThis patch adds lock_timer_base() helper, which waits for -\u003ebase !\u003d NULL,\nlocks the -\u003ebase, and checks it is still the same.\n\n__mod_timer() schedules the timer on the local CPU and changes it\u0027s base.\nHowever, it does not lock both old and new bases at once. It locks the\ntimer via lock_timer_base(), deletes the timer, sets -\u003ebase \u003d NULL, and\nunlocks old base. Then __mod_timer() locks new_base, sets -\u003ebase \u003d new_base,\nand adds this timer. This simplifies the code, because AB-BA deadlock is not\npossible. __mod_timer() also ensures that the timer\u0027s base is not changed\nwhile the timer\u0027s handler is running on the old base.\n\n__run_timers(), del_timer() do not change -\u003ebase anymore, they only clear\npending flag.\n\nSo del_timer_sync() can test timer-\u003ebase-\u003erunning_timer \u003d\u003d timer to detect\nwhether it is running or not.\n\nWe don\u0027t need timer_list-\u003elock anymore, this patch kills it.\n\nWe also don\u0027t need barriers. del_timer() and __run_timers() used smp_wmb()\nbefore clearing timer\u0027s pending flag. It was needed because __mod_timer()\ndid not lock old_base if the timer is not pending, so __mod_timer()-\u003elist_add()\ncould race with del_timer()-\u003elist_del(). With this patch these functions are\nserialized through base-\u003elock.\n\nOne problem. TIMER_INITIALIZER can\u0027t use per_cpu(tvec_bases). So this patch\nadds global\n\n        struct timer_base_s {\n                spinlock_t lock;\n                struct timer_list *running_timer;\n        } __init_timer_base;\n\nwhich is used by TIMER_INITIALIZER. The corresponding fields in tvec_t_base_s\nstruct are replaced by struct timer_base_s t_base.\n\nIt is indeed ugly. But this can\u0027t have scalability problems. The global\n__init_timer_base.lock is used only when __mod_timer() is called for the first\ntime AND the timer was compile time initialized. After that the timer migrates\nto the local CPU.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Renaud Lienhart \u003crenaud.lienhart@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d59dd4620fb8d6422555a9e2b82a707718e68327",
      "tree": "78205657d24efcaa3f8314064951ac3814ed95a7",
      "parents": [
        "0d8d4d42f2d00eb65262b49f4edd4cf7ef4eb6fc"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Sun May 01 08:58:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:47 2005 -0700"
      },
      "message": "[PATCH] use smp_mb/wmb/rmb where possible\n\nReplace a number of memory barriers with smp_ variants.  This means we won\u0027t\ntake the unnecessary hit on UP machines.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
