)]}'
{
  "log": [
    {
      "commit": "d1748302f70be7469809809283fe164156a34231",
      "tree": "c81137f4126f2fe1451c28441415c1cd0fa0f7cd",
      "parents": [
        "29c158e81c733ac7d6a75c5ee929f34fb9f92983"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Aug 23 15:29:42 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:56 2011 +0200"
      },
      "message": "clockevents: Make minimum delay adjustments configurable\n\nThe automatic increase of the min_delta_ns of a clockevents device\nshould be done in the clockevents code as the minimum delay is an\nattribute of the clockevents device.\n\nIn addition not all architectures want the automatic adjustment, on a\nmassively virtualized system it can happen that the programming of a\nclock event fails several times in a row because the virtual cpu has\nbeen rescheduled quickly enough. In that case the minimum delay will\nerroneously be increased with no way back. The new config symbol\nGENERIC_CLOCKEVENTS_MIN_ADJUST is used to enable the automatic\nadjustment. The config option is selected only for x86.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20110823133142.494157493@de.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e2830b5c1b2b2217894370a3b95af87d4a958401",
      "tree": "9eec3de82a30fffc32beae7826e4a356220c52f7",
      "parents": [
        "d12b0e24c56c6fb2398609f26858e5278d688840"
      ],
      "author": {
        "name": "Torben Hohn",
        "email": "torbenh@gmx.de",
        "time": "Thu Jan 27 16:00:32 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jan 31 19:26:50 2011 +0100"
      },
      "message": "time: Make do_timer() and xtime_lock local to kernel/time/\n\nAll callers of do_timer() are converted to xtime_update(). The only\nusers of xtime_lock are in kernel/time/. Make both local to\nkernel/time/ and remove them from the global header files.\n\n[ tglx: Reuse tick-internal.h instead of creating another local header\n  \tfile. Massaged changelog ]\n\nSigned-off-by: Torben Hohn \u003ctorbenh@gmx.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: johnstul@us.ibm.com\nCc: yong.zhang0@gmail.com\nCc: hch@infradead.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "909ea96468096b07fbb41aaf69be060d92bd9271",
      "tree": "a7e015edd96b5f674874fe78cdd889769e130a2a",
      "parents": [
        "780f36d8b3fa9572f731d4fb85067b2e45e6f993"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Wed Dec 08 16:22:55 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Dec 17 15:07:19 2010 +0100"
      },
      "message": "core: Replace __get_cpu_var with __this_cpu_read if not used for an address.\n\n__get_cpu_var() can be replaced with this_cpu_read and will then use a\nsingle read instruction with implied address calculation to access the\ncorrect per cpu instance.\n\nHowever, the address of a per cpu variable passed to __this_cpu_read()\ncannot be determined (since it\u0027s an implied address conversion through\nsegment prefixes).  Therefore apply this only to uses of __get_cpu_var\nwhere the address of the variable is not used.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "80a05b9ffa7dc13f6693902dd8999a2b61a3a0d7",
      "tree": "5612eeb26804b135de66779d1a00eaf35a4ceca1",
      "parents": [
        "ad6759fbf35d104dbf573cd6f4c6784ad6823f7e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 12 17:34:14 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 12 19:10:29 2010 +0100"
      },
      "message": "clockevents: Sanitize min_delta_ns adjustment and prevent overflows\n\nThe current logic which handles clock events programming failures can\nincrease min_delta_ns unlimited and even can cause overflows.\n\nSanitize it by:\n - prevent zero increase when min_delta_ns \u003d\u003d 1\n - limiting min_delta_ns to a jiffie\n - bail out if the jiffie limit is hit\n - add retries stats for /proc/timer_list so we can gather data\n\nReported-by: Uwe Kleine-Koenig \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "97813f2fe77804a4464564c75ba8d8826377feea",
      "tree": "5dc7154c5687edaee5712408c8baf605463ff093",
      "parents": [
        "27185016b806d5a1181ff501cae120582b2b27dd"
      ],
      "author": {
        "name": "Jon Hunter",
        "email": "jon-hunter@ti.com",
        "time": "Tue Aug 18 12:45:11 2009 -0500"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 13 20:46:24 2009 +0100"
      },
      "message": "nohz: Allow 32-bit machines to sleep for more than 2.15 seconds\n\nIn the dynamic tick code, \"max_delta_ns\" (member of the\n\"clock_event_device\" structure) represents the maximum sleep time\nthat can occur between timer events in nanoseconds.\n\nThe variable, \"max_delta_ns\", is defined as an unsigned long\nwhich is a 32-bit integer for 32-bit machines and a 64-bit\ninteger for 64-bit machines (if -m64 option is used for gcc).\nThe value of max_delta_ns is set by calling the function\n\"clockevent_delta2ns()\" which returns a maximum value of LONG_MAX.\nFor a 32-bit machine LONG_MAX is equal to 0x7fffffff and in\nnanoseconds this equates to ~2.15 seconds. Hence, the maximum\nsleep time for a 32-bit machine is ~2.15 seconds, where as for\na 64-bit machine it will be many years.\n\nThis patch changes the type of max_delta_ns to be \"u64\" instead of\n\"unsigned long\" so that this variable is a 64-bit type for both 32-bit\nand 64-bit machines. It also changes the maximum value returned by\nclockevent_delta2ns() to KTIME_MAX.  Hence this allows a 32-bit\nmachine to sleep for longer than ~2.15 seconds. Please note that this\npatch also changes \"min_delta_ns\" to be \"u64\" too and although this is\nunnecessary, it makes the patch simpler as it avoids to fixup all\ncallers of clockevent_delta2ns().\n\n[ tglx: changed \"unsigned long long\" to u64 as we use this data type\n  \tthrough out the time code ]\n\nSigned-off-by: Jon Hunter \u003cjon-hunter@ti.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLKML-Reference: \u003c1250617512-23567-3-git-send-email-jon-hunter@ti.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "cd6d95d8449b7c9f415f26041e9ae173d387b6bd",
      "tree": "ddd1f2d6436f398419045b3e0ee860c01523cfea",
      "parents": [
        "3f68535adad8dd89499505a65fb25d0e02d118cc"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 12 11:29:27 2009 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Jun 13 12:00:26 2009 +0200"
      },
      "message": "clocksource: prevent selection of low resolution clocksourse also for nohz\u003don\n\ncommit 3f68535adad (clocksource: sanity check sysfs clocksource\nchanges) prevents selection of non high resolution capable\nclocksources when high resolution mode is active, but did not take\ninto account that the same rules apply for highres\u003doff nohz\u003don.\n\nCheck the tick device mode instead of hrtimer_hres_active() to verify\nwhether the system needs to be protected from a switch to jiffies or\nother non highres capable clock sources.\n\nReported-by: Luming Yu \u003cluming.yu@gmail.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "61c22c34c6f80a8e89cff5ff717627c54cc14fd4",
      "tree": "33349263152d3ed4fd7d65e4c3d60340e6676b5c",
      "parents": [
        "82a28c794f27aac17d7a3ebd7f14d731a11a5532"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 09 21:38:57 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 09 22:20:01 2008 +0200"
      },
      "message": "clockevents: remove WARN_ON which was used to gather information\n\nThe issue of the endless reprogramming loop due to a too small\nmin_delta_ns was fixed with the previous updates of the clock events\ncode, but we had no information about the spread of this problem. I\nadded a WARN_ON to get automated information via kerneloops.org and to\nget some direct reports, which allowed me to analyse the affected\nmachines.\n\nThe WARN_ON has served its purpose and would be annoying for a release\nkernel. Remove it and just keep the information about the increase of\nthe min_delta_ns 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": "7205656ab48da29a95d7f55e43a81db755d3cb3a",
      "tree": "7721904e6912a9dcd09fc4041dfb07807c2ef4b7",
      "parents": [
        "d4496b39559c6d43f83e4c08b899984f8b8089b5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Sep 03 21:37:03 2008 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Sep 05 11:11:52 2008 +0200"
      },
      "message": "clockevents: enforce reprogram in oneshot setup\n\nIn tick_oneshot_setup we program the device to the given next_event,\nbut we do not check the return value. We need to make sure that the\ndevice is programmed enforced so the interrupt handler engine starts\nworking. Split out the reprogramming function from tick_program_event()\nand call it with the device, which was handed in to tick_setup_oneshot().\nSet the force argument, so the devices is firing an interrupt.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "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": "820de5c39ef7f6866d2c9e6c7d208bcd2a6e1942",
      "tree": "be28af991bb9fa26ece3ffb44b01c7038aa70fa4",
      "parents": [
        "3704540b48295253bd9c87a5e7ff545f9d47a3b8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 21 04:37:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 21 17:49:15 2007 -0700"
      },
      "message": "highres: improve debug output\n\nAdd some more debug information to the hrtimer and clock events code.\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\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": "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"
    }
  ]
}
