)]}'
{
  "log": [
    {
      "commit": "d7b906897e9caae452947e33674df0a2d6f7e10f",
      "tree": "5df31094a1b24a46369bda89cdf54d5403b1caa9",
      "parents": [
        "43ca5c3a1cefdaa09231d64485b8f676118bf1e0"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+lkml@arm.linux.org.uk",
        "time": "Thu Apr 17 07:46:24 2008 +0200"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Thu Apr 17 07:47:05 2008 +0200"
      },
      "message": "[S390] genirq/clockevents: move irq affinity prototypes/inlines to interrupt.h\n\n\u003e Generic code is not supposed to include irq.h. Replace this include\n\u003e by linux/hardirq.h instead and add/replace an include of linux/irq.h\n\u003e in asm header files where necessary.\n\u003e This change should only matter for architectures that make use of\n\u003e GENERIC_CLOCKEVENTS.\n\u003e Architectures in question are mips, x86, arm, sh, powerpc, uml and sparc64.\n\u003e\n\u003e I did some cross compile tests for mips, x86_64, arm, powerpc and sparc64.\n\u003e This patch fixes also build breakages caused by the include replacement in\n\u003e tick-common.h.\n\nI generally dislike adding optional linux/* includes in asm/* includes -\nI\u0027m nervous about this causing include loops.\n\nHowever, there\u0027s a separate point to be discussed here.\n\nThat is, what interfaces are expected of every architecture in the kernel.\nIf generic code wants to be able to set the affinity of interrupts, then\nthat needs to become part of the interfaces listed in linux/interrupt.h\nrather than linux/irq.h.\n\nSo what I suggest is this approach instead (against Linus\u0027 tree of a\ncouple of days ago) - we move irq_set_affinity() and irq_can_set_affinity()\nto linux/interrupt.h, change the linux/irq.h includes to linux/interrupt.h\nand include asm/irq_regs.h where needed (asm/irq_regs.h is supposed to be\nrarely used include since not much touches the stacked parent context\nregisters.)\n\nBuild tested on ARM PXA family kernels and ARM\u0027s Realview platform\nkernels which both use genirq.\n\n[ tglx@linutronix.de: add GENERIC_HARDIRQ dependencies ]\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "1595f452f3d8daa066bfd3ba4120754bed3329e1",
      "tree": "86fa49114c03e0f2dc7c7987b2a5be6adace140f",
      "parents": [
        "b097976e8d6f6e6220161fa6b72b0798ce9f4f4c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Oct 14 22:57:45 2007 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@inhelltoy.tec.linutronix.de",
        "time": "Sun Oct 14 22:57:45 2007 +0200"
      },
      "message": "clockevents: introduce force broadcast notifier\n\nThe 64bit SMP bootup is slightly different to the 32bit one. It enables\nthe boot CPU local APIC timer before all CPUs are brought up. Some AMD C1E\nsystems have the C1E feature flag only set in the secondary CPU. Due to\nthe early enable of the boot CPU local APIC timer the APIC timer is\nregistered as a fully functional device. When we detect the wreckage during\nthe bringup of the secondary CPU, we need to force the boot CPU into\nbroadcast mode. \n\nAdd a new notifier reason and implement the force broadcast in the clock\nevents layer.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "4a93232dab0a07074bcc5291a0f1f39919916f31",
      "tree": "34dbc3209474b2cf5065726dd295c25584f4ce6a",
      "parents": [
        "31c435d75e7d15a5f965c5eb0e33fe0e236f49a4"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Fri Oct 12 23:04:23 2007 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@inhelltoy.tec.linutronix.de",
        "time": "Fri Oct 12 23:04:23 2007 +0200"
      },
      "message": "clock events: allow replacement of broadcast timer\n\nChange the broadcast timer, if a timer with higher rating becomes available.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "18de5bc4c1f1f1fa5e14f354a7603bd6e9d4e3b6",
      "tree": "cb0ff399fb3f368adecf213318e32a499ada6ff9",
      "parents": [
        "93da56efcf8c6a111f0349f6b7651172d4745ca0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Jul 21 04:37:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 21 17:49:15 2007 -0700"
      },
      "message": "clockevents: fix resume logic\n\nWe need to make sure, that the clockevent devices are resumed, before\nthe tick is resumed. The current resume logic does not guarantee this.\n\nAdd CLOCK_EVT_MODE_RESUME and call the set mode functions of the clock\nevent devices before resuming the tick / oneshot functionality.\n\nFixup the existing users.\n\nThanks to Nigel Cunningham for tracking down a long standing thinko,\nwhich affected the jinxed VAIO.\n\n[akpm@linux-foundation.org: xen build fix]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "3494c16676a21e7e53e21b08a0a469a38df6dcfb",
      "tree": "d80452cfe2d109e10910afcf735b68d5de6ec67b",
      "parents": [
        "9e203bcc1051cac2a8b15c3ee9db4c0d05794abe"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Feb 24 22:11:42 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Feb 26 11:14:15 2007 -0800"
      },
      "message": "[TICK] tick-common: Fix one-shot handling in tick_handle_periodic().\n\nWhen clockevents_program_event() is given an expire time in the\npast, it does not update dev-\u003enext_event, so this looping code\nwould loop forever once the first in-the-past expiration time\nwas used.\n\nKeep advancing \"next\" locally to fix this bug.\n\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "289f480af87e45f7a6de6ba9b4c061c2e259fe98",
      "tree": "1075cdb8656d7af12558ea2a3dee1fcd1d7a44a7",
      "parents": [
        "82f67cd9fca8c8762c15ba7ed0d5747588c1e221"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 16 01:28:15 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_list\n\nadd /proc/timer_list, which prints all currently pending (high-res) timers,\nall clock-event sources and their parameters in a human-readable form.\n\nSample output:\n\nTimer List Version: v0.1\nHRTIMER_MAX_CLOCK_BASES: 2\nnow at 4246046273872 nsecs\n\ncpu: 0\n clock 0:\n  .index:      0\n  .resolution: 1 nsecs\n  .get_time:   ktime_get_real\n  .offset:     1273998312645738432 nsecs\nactive timers:\n clock 1:\n  .index:      1\n  .resolution: 1 nsecs\n  .get_time:   ktime_get\n  .offset:     0 nsecs\nactive timers:\n #0: \u003cf5a90ec8\u003e, hrtimer_sched_tick, hrtimer_stop_sched_tick, swapper/0\n # expires at 4246432689566 nsecs [in 386415694 nsecs]\n #1: \u003cf5a90ec8\u003e, hrtimer_wakeup, do_nanosleep, pcscd/2050\n # expires at 4247018194689 nsecs [in 971920817 nsecs]\n #2: \u003cf5a90ec8\u003e, hrtimer_wakeup, do_nanosleep, irqbalance/1909\n # expires at 4247351358392 nsecs [in 1305084520 nsecs]\n #3: \u003cf5a90ec8\u003e, hrtimer_wakeup, do_nanosleep, crond/2157\n # expires at 4249097614968 nsecs [in 3051341096 nsecs]\n #4: \u003cf5a90ec8\u003e, it_real_fn, do_setitimer, syslogd/1888\n # expires at 4251329900926 nsecs [in 5283627054 nsecs]\n  .expires_next   : 4246432689566 nsecs\n  .hres_active    : 1\n  .check_clocks   : 0\n  .nr_events      : 31306\n  .idle_tick      : 4246020791890 nsecs\n  .tick_stopped   : 1\n  .idle_jiffies   : 986504\n  .idle_calls     : 40700\n  .idle_sleeps    : 36014\n  .idle_entrytime : 4246019418883 nsecs\n  .idle_sleeptime : 4178181972709 nsecs\n\ncpu: 1\n clock 0:\n  .index:      0\n  .resolution: 1 nsecs\n  .get_time:   ktime_get_real\n  .offset:     1273998312645738432 nsecs\nactive timers:\n clock 1:\n  .index:      1\n  .resolution: 1 nsecs\n  .get_time:   ktime_get\n  .offset:     0 nsecs\nactive timers:\n #0: \u003cf5a90ec8\u003e, hrtimer_sched_tick, hrtimer_restart_sched_tick, swapper/0\n # expires at 4246050084568 nsecs [in 3810696 nsecs]\n #1: \u003cf5a90ec8\u003e, hrtimer_wakeup, do_nanosleep, atd/2227\n # expires at 4261010635003 nsecs [in 14964361131 nsecs]\n #2: \u003cf5a90ec8\u003e, hrtimer_wakeup, do_nanosleep, smartd/2332\n # expires at 5469485798970 nsecs [in 1223439525098 nsecs]\n  .expires_next   : 4246050084568 nsecs\n  .hres_active    : 1\n  .check_clocks   : 0\n  .nr_events      : 24043\n  .idle_tick      : 4246046084568 nsecs\n  .tick_stopped   : 0\n  .idle_jiffies   : 986510\n  .idle_calls     : 26360\n  .idle_sleeps    : 22551\n  .idle_entrytime : 4246043874339 nsecs\n  .idle_sleeptime : 4170763761184 nsecs\n\ntick_broadcast_mask: 00000003\nevent_broadcast_mask: 00000001\n\nCPU#0\u0027s local event device:\n\nClock Event Device: lapic\n capabilities:   0000000e\n max_delta_ns:   807385544\n min_delta_ns:   1443\n mult:           44624025\n shift:          32\n set_next_event: lapic_next_event\n set_mode:       lapic_timer_setup\n event_handler:  hrtimer_interrupt\n  .installed:  1\n  .expires:    4246432689566 nsecs\n\nCPU#1\u0027s local event device:\n\nClock Event Device: lapic\n capabilities:   0000000e\n max_delta_ns:   807385544\n min_delta_ns:   1443\n mult:           44624025\n shift:          32\n set_next_event: lapic_next_event\n set_mode:       lapic_timer_setup\n event_handler:  hrtimer_interrupt\n  .installed:  1\n  .expires:    4246050084568 nsecs\n\nClock Event Device: hpet\n capabilities:   00000007\n max_delta_ns:   2147483647\n min_delta_ns:   3352\n mult:           61496110\n shift:          32\n set_next_event: hpet_next_event\n set_mode:       hpet_set_mode\n event_handler:  handle_nextevt_broadcast\n\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\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": "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"
    },
    {
      "commit": "906568c9c668ff994f4078932ec6ae1e3950d1af",
      "tree": "825ac33fc61af55a0fe7485a1df681f5a6126d7b",
      "parents": [
        "d316c57ff6bfad9557462b9100f25c6260d2b774"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Feb 16 01:28:01 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: core functionality\n\nWith Ingo Molnar \u003cmingo@elte.hu\u003e\n\nThe tick-management code is the first user of the clockevents layer.  It takes\nclock event devices from the clock events core and uses them to provide the\nperiodic tick.\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"
    }
  ]
}
