)]}'
{
  "log": [
    {
      "commit": "f8e256c687eb53850685747757c8d75e58756e15",
      "tree": "56a406943bb27888be8c814a44958b7314b46f29",
      "parents": [
        "09bfeea13cea843fb03eaa96b5d891fa0abdcc90"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 13:00:57 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 12:57:00 2008 +0200"
      },
      "message": "timers: fix build error in !oneshot case\n\n kernel/time/tick-common.c: In function ‘tick_setup_periodic’:\n kernel/time/tick-common.c:113: error: implicit declaration of function ‘tick_broadcast_oneshot_active’\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "27ce4cb4a0c7cf59b9a9952266883862f2e4c99f",
      "tree": "066245d42877d8535853e3199b33cdf1110eb8e4",
      "parents": [
        "302745699c1b675b5d2a1af87271de10e4d96b6a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 22 19:04:02 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 23 11:38:53 2008 +0200"
      },
      "message": "clockevents: prevent mode mismatch on cpu online\n\nImpact: timer hang on CPU online observed on AMD C1E systems\n\nWhen a CPU is brought online then the broadcast machinery can\nbe in the one shot state already. Check this and setup the timer \ndevice of the new CPU in one shot mode so the broadcast code\ncan pick up the next_event value correctly.\n\nAnother AMD C1E oddity, as we switch to broadcast immediately and\nnot after the full bring up via the ACPI cpu idle code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6441402b1f173fa38e561d3cee7c01c32e5281ad",
      "tree": "fd7c81337354f39e44581530d499bcdda06d76c4",
      "parents": [
        "72d31053f62c4bc464c2783974926969614a8649"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 22 18:46:37 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 23 11:38:52 2008 +0200"
      },
      "message": "clockevents: prevent cpu online to interfere with nohz\n\nImpact: rare hang which can be triggered on CPU online.\n\ntick_do_timer_cpu keeps track of the CPU which updates jiffies\nvia do_timer. The value -1 is used to signal, that currently no\nCPU is doing this. There are two cases, where the variable can \nhave this state:\n\n boot:\n    necessary for systems where the boot cpu id can be !\u003d 0\n\n nohz long idle sleep:\n    When the CPU which did the jiffies update last goes into\n    a long idle sleep it drops the update jiffies duty so\n    another CPU which is not idle can pick it up and keep\n    jiffies going.\n\nUsing the same value for both situations is wrong, as the CPU online\ncode can see the -1 state when the timer of the newly onlined CPU is\nsetup. The setup for a newly onlined CPU goes through periodic mode\nand can pick up the do_timer duty without being aware of the nohz /\nhighres mode of the already running system.\n\nUse two separate states and make them constants to avoid magic\nnumbers confusion. \n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "2344abbcbdb82140050e8be29d3d55e4f6fe860b",
      "tree": "46c1842fc2a47aa4d7ee0c2c558f54bc50772b69",
      "parents": [
        "f1926ce63b996b42772b39e4b47bb4ef4ba748b4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 16 11:32:50 2008 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 16 13:47:02 2008 -0700"
      },
      "message": "clockevents: make device shutdown robust\n\nThe device shut down does not cleanup the next_event variable of the\nclock event device. So when the device is reactivated the possible\nstale next_event value can prevent the device to be reprogrammed as it\nclaims to wait on a event already.\n\nThis is the root cause of the resurfacing suspend/resume problem,\nwhere systems need key press to come back to life.\n\nFix this by setting next_event to KTIME_MAX when the device is shut\ndown. Use a separate function for shutdown which takes care of that\nand only keep the direct set mode call in the broadcast code, where we\ncan not touch the next_event value.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1fb9b7d29d8e85ba3196eaa7ab871bf76fc98d36",
      "tree": "1fbefa54e16e76f76616202d8abf9607725afeff",
      "parents": [
        "9c17bcda991000351cb2373f78be7e4b1c44caa3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Sep 03 21:37:14 2008 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Sep 05 11:11:53 2008 +0200"
      },
      "message": "clockevents: prevent endless loop lockup\n\nThe C1E/HPET bug reports on AMDX2/RS690 systems where tracked down to a\ntoo small value of the HPET minumum delta for programming an event.\n\nThe clockevents code needs to enforce an interrupt event on the clock event\ndevice in some cases. The enforcement code was stupid and naive, as it just\nadded the minimum delta to the current time and tried to reprogram the device.\nWhen the minimum delta is too small, then this loops forever.\n\nAdd a sanity check. Allow reprogramming to fail 3 times, then print a warning\nand double the minimum delta value to make sure, that this does not happen again.\nUse the same function for both tick-oneshot and tick-broadcast code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "186e3cb8a465bac010ee3b020768d2fa2b505aef",
      "tree": "c45dd774f91cf9095915c7e4bbec9084fcd06026",
      "parents": [
        "b10db7f0d2b589a7f88dc3026e150756cb437a28"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jan 30 13:30:01 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:30:01 2008 +0100"
      },
      "message": "timer: clean up tick-broadcast.c\n\nclean up tick-broadcast.c\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d3ed782458f315c30ea679b919a2cc59f2b82565",
      "tree": "b87fffc87acf5632566a6384f5c8be8f5c2e03b2",
      "parents": [
        "d5d3b736e3264934ec832a657a9a434b65f3d51f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 08 00:30:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:10 2007 -0700"
      },
      "message": "highres/dyntick: prevent xtime lock contention\n\nWhile the !highres/!dyntick code assigns the duty of the do_timer() call to\none specific CPU, this was dropped in the highres/dyntick part during\ndevelopment.\n\nSteven Rostedt discovered the xtime lock contention on highres/dyntick due\nto several CPUs trying to update jiffies.\n\nAdd the single CPU assignement back.  In the dyntick case this needs to be\nhandled carefully, as the CPU which has the do_timer() duty must drop the\nassignement and let it be grabbed by another CPU, which is active.\nOtherwise the do_timer() calls would not happen during the long sleep.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Mark Lord \u003cmlord@pobox.com\u003e\nCc: \u003cstable@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": "cd05a1f818073a623455a58e756c5b419fc98db9",
      "tree": "4e148e96f00fe07b0c53a379e812344733e8484a",
      "parents": [
        "24c4ac070adffe4a21f3a8daf4aee7c98fa6c4f9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 17 00:25:52 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 16 19:35:25 2007 -0700"
      },
      "message": "[PATCH] clockevents: Fix suspend/resume to disk hangs\n\nI finally found a dual core box, which survives suspend/resume without\ncrashing in the middle of nowhere. Sigh, I never figured out from the\ncode and the bug reports what\u0027s going on.\n\nThe observed hangs are caused by a stale state transition of the clock\nevent devices, which keeps the RCU synchronization away from completion,\nwhen the non boot CPU is brought back up.\n\nThe suspend/resume in oneshot mode needs the similar care as the\nperiodic mode during suspend to RAM. My assumption that the state\ntransitions during the different shutdown/bringups of s2disk would go\nthrough the periodic boot phase and then switch over to highres resp.\nnohz mode were simply wrong.\n\nAdd the appropriate suspend / resume handling for the non periodic\nmodes.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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": "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": "f8381cba04ba8173fd5a2b8e5cd8b3290ee13a98",
      "tree": "ad8c9f91ce031a04c62ff75fcd3237fc666f1c2e",
      "parents": [
        "906568c9c668ff994f4078932ec6ae1e3950d1af"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 16 01:28:02 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: broadcast functionality\n\nWith Ingo Molnar \u003cmingo@elte.hu\u003e\n\nAdd broadcast functionality, so per cpu clock event devices can be registered\nas dummy devices or switched from/to broadcast on demand.  The broadcast\nfunction distributes the events via the broadcast function of the clock event\ndevice.  This is primarily designed to replace the switch apic timer to / from\nIPI in power states, where the apic stops.\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"
    }
  ]
}
