)]}'
{
  "log": [
    {
      "commit": "bab588fcfb6335c767d811a8955979f5440328e0",
      "tree": "2a862ddf47a82be885a8e7945a17cc3ff7a658b9",
      "parents": [
        "3298a3511f1e73255a8dc023efd909e569eea037",
        "9cb0d1babfcb1b4ac248c09425f7d5de1e771133"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 15:27:22 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 15:27:22 2013 -0800"
      },
      "message": "Merge tag \u0027soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC-specific updates from Arnd Bergmann:\n \"This is a larger set of new functionality for the existing SoC\n  families, including:\n\n   - vt8500 gains support for new CPU cores, notably the Cortex-A9 based\n     wm8850\n\n   - prima2 gains support for the \"marco\" SoC family, its SMP based\n     cousin\n\n   - tegra gains support for the new Tegra4 (Tegra114) family\n\n   - socfpga now supports a newer version of the hardware including SMP\n\n   - i.mx31 and bcm2835 are now using DT probing for their clocks\n\n   - lots of updates for sh-mobile\n\n   - OMAP updates for clocks, power management and USB\n\n   - i.mx6q and tegra now support cpuidle\n\n   - kirkwood now supports PCIe hot plugging\n\n   - tegra clock support is updated\n\n   - tegra USB PHY probing gets implemented diffently\"\n\n* tag \u0027soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (148 commits)\n  ARM: prima2: remove duplicate v7_invalidate_l1\n  ARM: shmobile: r8a7779: Correct TMU clock support again\n  ARM: prima2: fix __init section for cpu hotplug\n  ARM: OMAP: Consolidate OMAP USB-HS platform data (part 3/3)\n  ARM: OMAP: Consolidate OMAP USB-HS platform data (part 1/3)\n  arm: socfpga: Add SMP support for actual socfpga harware\n  arm: Add v7_invalidate_l1 to cache-v7.S\n  arm: socfpga: Add entries to enable make dtbs socfpga\n  arm: socfpga: Add new device tree source for actual socfpga HW\n  ARM: tegra: sort Kconfig selects for Tegra114\n  ARM: tegra: enable ARCH_REQUIRE_GPIOLIB for Tegra114\n  ARM: tegra: Fix build error w/ ARCH_TEGRA_114_SOC w/o ARCH_TEGRA_3x_SOC\n  ARM: tegra: Fix build error for gic update\n  ARM: tegra: remove empty tegra_smp_init_cpus()\n  ARM: shmobile: Register ARM architected timer\n  ARM: MARCO: fix the build issue due to gic-vic-to-irqchip move\n  ARM: shmobile: r8a7779: Correct TMU clock support\n  ARM: mxs_defconfig: Select CONFIG_DEVTMPFS_MOUNT\n  ARM: mxs: decrease mxs_clockevent_device.min_delta_ns to 2 clock cycles\n  ARM: mxs: use apbx bus clock to drive the timers on timrotv2\n  ...\n"
    },
    {
      "commit": "9cfc94eb0f4843af5d1141a37d7b7ca5d3b27220",
      "tree": "10a852a3b4717423a0186ba0d47f0e85b39bbc13",
      "parents": [
        "a1671da560df1f6bd20d8c6934d1cfa2aacc4f32"
      ],
      "author": {
        "name": "Andrew Lunn",
        "email": "andrew@lunn.ch",
        "time": "Wed Jan 09 13:22:15 2013 +0100"
      },
      "committer": {
        "name": "Jason Cooper",
        "email": "jason@lakedaemon.net",
        "time": "Thu Jan 31 17:01:37 2013 +0000"
      },
      "message": "cpuidle: kirkwood: Move out of mach directory\n\nMove the Kirkwood cpuidle driver out of arch/arm/mach-kirkwood and\ninto drivers/cpuidle. Convert the driver into a platform driver.\n\nSigned-off-by: Andrew Lunn \u003candrew@lunn.ch\u003e\nSigned-off-by: Jason Cooper \u003cjason@lakedaemon.net\u003e\n"
    },
    {
      "commit": "43720bd6014327ac454434496cb953edcdb9f8d6",
      "tree": "be134a588abb3164b7c5f9093707e536f9c54a05",
      "parents": [
        "ed1ac6e91a3ff7c561008ba57747cd6cbc49385e"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Jan 11 13:43:45 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Jan 26 00:39:12 2013 +0100"
      },
      "message": "PM / tracing: remove deprecated power trace API\n\nThe text in Documentation said it would be removed in 2.6.41;\nthe text in the Kconfig said removal in the 3.1 release.  Either\nway you look at it, we are well past both, so push it off a cliff.\n\nNote that the POWER_CSTATE and the POWER_PSTATE are part of the\nlegacy tracing API.  Remove all tracepoints which use these flags.\nAs can be seen from context, most already have a trace entry via\ntrace_cpu_idle anyways.\n\nAlso, the cpufreq/cpufreq.c PSTATE one is actually unpaired, as\ncompared to the CSTATE ones which all have a clear start/stop.\nAs part of this, the trace_power_frequency also becomes orphaned,\nso it too is deleted.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "8aef33a7cf40ca9da188e8578b2abe7267a38c52",
      "tree": "4f0908d2b007ad3f372ffeeaca624cfe81afdf47",
      "parents": [
        "a412a11d6a24aebb6a898ed5d4e1c0725b638da3"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Tue Jan 15 14:18:04 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Jan 15 14:18:04 2013 +0100"
      },
      "message": "cpuidle: remove the power_specified field in the driver\n\nWe realized that the power usage field is never filled and when it\nis filled for tegra, the power_specified flag is not set causing all\nof these values to be reset when the driver is initialized with\nset_power_state().\n\nHowever, the power_specified flag can be simply removed under the\nassumption that the states are always backward sorted, which is the\ncase with the current code.\n\nThis change allows the menu governor select function and the\ncpuidle_play_dead() to be simplified.  Moreover, the\nset_power_states() function can removed as it does not make sense\nany more.\n\nDrop the power_specified flag from struct cpuidle_driver and make\nthe related changes as described above.\n\nAs a consequence, this also fixes the bug where on the dynamic\nC-states system, the power fields are not initialized.\n\n[rjw: Changelog]\nReferences: https://bugzilla.kernel.org/show_bug.cgi?id\u003d42870\nReferences: https://bugzilla.kernel.org/show_bug.cgi?id\u003d43349\nReferences: https://lkml.org/lkml/2012/10/16/518\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "392370e7aa387185349946d29a0e17b918e51ae6",
      "tree": "289075fd7ac72313271792c9866380511ba5b24f",
      "parents": [
        "9931faca02c604c22335f5a935a501bb2ace6e20"
      ],
      "author": {
        "name": "Krzysztof Mazur",
        "email": "krzysiek@podlesie.net",
        "time": "Fri Jan 11 23:20:09 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Jan 11 23:20:09 2013 +0100"
      },
      "message": "cpuidle: fix number of initialized/destroyed states\n\nCommit bf4d1b5ddb78f86078ac6ae0415802d5f0c68f92 (cpuidle: support\nmultiple drivers) changed the number of initialized state kobjects\nin cpuidle_add_state_sysfs() from device-\u003estate_count to\ndrv-\u003estate_count, but left device-\u003estate_count in\ncpuidle_remove_state_sysfs().  The values of these two fields may be\ndifferent, in which case a NULL pointer dereference may happen in\ncpuidle_remove_state_sysfs(), for example.  Fix this problem by making\ncpuidle_add_state_sysfs() use device-\u003estate_count too (which restores\nthe original behavior of it).\n\n[rjw: Changelog]\nSigned-off-by: Krzysztof Mazur \u003ckrzysiek@podlesie.net\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "ac34d7c8c87c247db0270285950753da045acaad",
      "tree": "1ce0a154f71f4d812da17865454cf25e7bdedfa5",
      "parents": [
        "17915d582f9fe74efbd1c755f3ea5a5c2d9b3156"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Thu Jan 03 13:03:18 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Jan 03 13:11:06 2013 +0100"
      },
      "message": "cpuidle: fix lock contention in the idle path\n\nCommit bf4d1b5 (cpuidle: support multiple drivers) introduced\nlocking in cpuidle_get_cpu_driver(), which is used in the\nidle_call() function.\n\nThis leads to a contention problem with a large number of CPUs,\nbecause they all try to run the idle routine at the same time.\n\nThe lock can be safely removed because of how is used the cpuidle\nAPI.  Namely, cpuidle_register_driver() is called first, but the\ncpuidle idle function is not entered before cpuidle_register_device()\nis called, because the cpuidle device is not enabled then. Moreover,\ncpuidle_unregister_driver(), which would reset the driver value to\nNULL, is not called before cpuidle_unregister_device().\n\nAll of the cpuidle drivers use the API in the same way.\n\nIn general, a cleanup around the lock is necessary and a proper\nrefcounting mechanism should be used to ensure the consistency in the\nAPI (for example, cpuidle_unregister_driver() should fail if the\ndriver\u0027s refcount is not 0). However, these modifications will require\nsome code reorganization and rewrite which will be too intrusive for\na fix.\n\nFor this reason, fix the contention problem introduced by commit\nbf4d1b5 by simply removing the locking from cpuidle_get_cpu_driver(),\nwhich restores the original behavior of that routine.\n\n[rjw: Changelog.]\nReported-and-tested-by: Russ Anderson \u003crja@sgi.com\u003e\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "92638e2facc5330475c7d558acec77721c3214e4",
      "tree": "121ddcb3c7f9dd13330b5156d385b648c19f35c1",
      "parents": [
        "0e5537b30d3029d784226ab51c2b923d1155b553"
      ],
      "author": {
        "name": "Sivaram Nair",
        "email": "sivaramn@nvidia.com",
        "time": "Tue Dec 18 13:52:54 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Jan 03 13:11:05 2013 +0100"
      },
      "message": "cpuidle / coupled: fix ready counter decrement\n\nThe ready_waiting_counts atomic variable is compared against the wrong\nonline cpu count. The latter is computed incorrectly using logical-OR\ninstead of bit-OR. This patch fixes that.\n\nSigned-off-by: Sivaram Nair \u003csivaramn@nvidia.com\u003e\nAcked-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nAcked-by: Colin Cross \u003cccross@android.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "0e5537b30d3029d784226ab51c2b923d1155b553",
      "tree": "011a828504a97450442738363560804024f54a02",
      "parents": [
        "d1c3ed669a2d452cacfb48c2d171a1f364dae2ed"
      ],
      "author": {
        "name": "Sivaram Nair",
        "email": "sivaramn@nvidia.com",
        "time": "Tue Dec 18 13:52:50 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Jan 03 13:11:05 2013 +0100"
      },
      "message": "cpuidle: Fix finding state with min power_usage\n\nSince cpuidle_state.power_usage is a signed value, use INT_MAX (instead\nof -1) to init the local copies so that functions that tries to find\ncpuidle states with minimum power usage works correctly even if they use\nnon-negative values.\n\nSigned-off-by: Sivaram Nair \u003csivaramn@nvidia.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "d027db132b395dabfac208e52a7e510e441bb9d2",
      "tree": "24b055b2385f9848e77e646ce475991d8675c3c4",
      "parents": [
        "d01e4afdbb65e030fd6f1f96c30a558e2eb0f279",
        "5faf7cbb848da827f6ea1458b5a1c26a44e7510a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 12:05:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 12:05:15 2012 -0800"
      },
      "message": "Merge tag \u0027soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC updates from Olof Johansson:\n \"This contains the bulk of new SoC development for this merge window.\n\n  Two new platforms have been added, the sunxi platforms (Allwinner A1x\n  SoCs) by Maxime Ripard, and a generic Broadcom platform for a new\n  series of ARMv7 platforms from them, where the hope is that we can\n  keep the platform code generic enough to have them all share one mach\n  directory.  The new Broadcom platform is contributed by Christian\n  Daudt.\n\n  Highbank has grown support for Calxeda\u0027s next generation of hardware,\n  ECX-2000.\n\n  clps711x has seen a lot of cleanup from Alexander Shiyan, and he\u0027s\n  also taken on maintainership of the platform.\n\n  Beyond this there has been a bunch of work from a number of people on\n  converting more platforms to IRQ domains, pinctrl conversion, cleanup\n  and general feature enablement across most of the active platforms.\"\n\nFix up trivial conflicts as per Olof.\n\n* tag \u0027soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (174 commits)\n  mfd: vexpress-sysreg: Remove LEDs code\n  irqchip: irq-sunxi: Add terminating entry for sunxi_irq_dt_ids\n  clocksource: sunxi_timer: Add terminating entry for sunxi_timer_dt_ids\n  irq: versatile: delete dangling variable\n  ARM: sunxi: add missing include for mdelay()\n  ARM: EXYNOS: Avoid early use of of_machine_is_compatible()\n  ARM: dts: add node for PL330 MDMA1 controller for exynos4\n  ARM: EXYNOS: Add support for secondary CPU bring-up on Exynos4412\n  ARM: EXYNOS: add UART3 to DEBUG_LL ports\n  ARM: S3C24XX: Add clkdev entry for camif-upll clock\n  ARM: SAMSUNG: Add s3c24xx/s3c64xx CAMIF GPIO setup helpers\n  ARM: sunxi: Add missing sun4i.dtsi file\n  pinctrl: samsung: Do not initialise statics to 0\n  ARM i.MX6: remove gate_mask from pllv3\n  ARM i.MX6: Fix ethernet PLL clocks\n  ARM i.MX6: rename PLLs according to datasheet\n  ARM i.MX6: Add pwm support\n  ARM i.MX51: Add pwm support\n  ARM i.MX53: Add pwm support\n  ARM: mx5: Replace clk_register_clkdev with clock DT lookup\n  ...\n"
    },
    {
      "commit": "a474a515497ef3566cfc17a2cab3d54d6d50ff1c",
      "tree": "377b53565f728dfee5604ae0c8c6879d38a2a3ec",
      "parents": [
        "a093b93ee0e08cd73a07848752bc09ecea68cb13"
      ],
      "author": {
        "name": "Julius Werner",
        "email": "jwerner@chromium.org",
        "time": "Tue Nov 27 14:17:58 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Nov 27 14:17:58 2012 +0100"
      },
      "message": "cpuidle: Measure idle state durations with monotonic clock\n\nMany cpuidle drivers measure their time spent in an idle state by\nreading the wallclock time before and after idling and calculating the\ndifference. This leads to erroneous results when the wallclock time gets\nupdated by another processor in the meantime, adding that clock\nadjustment to the idle state\u0027s time counter.\n\nIf the clock adjustment was negative, the result is even worse due to an\nerroneous cast from int to unsigned long long of the last_residency\nvariable. The negative 32 bit integer will zero-extend and result in a\nforward time jump of roughly four billion milliseconds or 1.3 hours on\nthe idle state residency counter.\n\nThis patch changes all affected cpuidle drivers to either use the\nmonotonic clock for their measurements or make use of the generic time\nmeasurement wrapper in cpuidle.c, which was already working correctly.\nSome superfluous CLIs/STIs in the ACPI code are removed (interrupts\nshould always already be disabled before entering the idle function, and\nnot get reenabled until the generic wrapper has performed its second\nmeasurement). It also removes the erroneous cast, making sure that\nnegative residency values are applied correctly even though they should\nnot appear anymore.\n\nSigned-off-by: Julius Werner \u003cjwerner@chromium.org\u003e\nReviewed-by: Preeti U Murthy \u003cpreeti@linux.vnet.ibm.com\u003e\nTested-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nAcked-by: Len Brown \u003clen.brown@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "a093b93ee0e08cd73a07848752bc09ecea68cb13",
      "tree": "7a59d44658150cf43de771556fc0320505cc82b2",
      "parents": [
        "bf4d1b5ddb78f86078ac6ae0415802d5f0c68f92"
      ],
      "author": {
        "name": "Li Zhong",
        "email": "zhong@linux.vnet.ibm.com",
        "time": "Fri Nov 23 00:05:03 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Nov 23 00:05:03 2012 +0100"
      },
      "message": "cpuidle: fix a suspicious RCU usage in menu governor\n\nI saw this suspicious RCU usage on the next tree of 11/15\n\n[   67.123404] \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[   67.123413] [ INFO: suspicious RCU usage. ]\n[   67.123423] 3.7.0-rc5-next-20121115-dirty #1 Not tainted\n[   67.123434] -------------------------------\n[   67.123444] include/trace/events/timer.h:186 suspicious rcu_dereference_check() usage!\n[   67.123458]\n[   67.123458] other info that might help us debug this:\n[   67.123458]\n[   67.123474]\n[   67.123474] RCU used illegally from idle CPU!\n[   67.123474] rcu_scheduler_active \u003d 1, debug_locks \u003d 0\n[   67.123493] RCU used illegally from extended quiescent state!\n[   67.123507] 1 lock held by swapper/1/0:\n[   67.123516]  #0:  (\u0026cpu_base-\u003elock){-.-...}, at: [\u003cc0000000000979b0\u003e] .__hrtimer_start_range_ns+0x28c/0x524\n[   67.123555]\n[   67.123555] stack backtrace:\n[   67.123566] Call Trace:\n[   67.123576] [c0000001e2ccb920] [c00000000001275c] .show_stack+0x78/0x184 (unreliable)\n[   67.123599] [c0000001e2ccb9d0] [c0000000000c15a0] .lockdep_rcu_suspicious+0x120/0x148\n[   67.123619] [c0000001e2ccba70] [c00000000009601c] .enqueue_hrtimer+0x1c0/0x1c8\n[   67.123639] [c0000001e2ccbb00] [c000000000097aa0] .__hrtimer_start_range_ns+0x37c/0x524\n[   67.123660] [c0000001e2ccbc20] [c0000000005c9698] .menu_select+0x508/0x5bc\n[   67.123678] [c0000001e2ccbd20] [c0000000005c740c] .cpuidle_idle_call+0xa8/0x6e4\n[   67.123699] [c0000001e2ccbdd0] [c0000000000459a0] .pSeries_idle+0x10/0x34\n[   67.123717] [c0000001e2ccbe40] [c000000000014dc8] .cpu_idle+0x130/0x280\n[   67.123738] [c0000001e2ccbee0] [c0000000006ffa8c] .start_secondary+0x378/0x384\n[   67.123758] [c0000001e2ccbf90] [c00000000000936c] .start_secondary_prolog+0x10/0x14\n\nhrtimer_start was added in 198fd638 and ae515197. The patch below tries\nto use RCU_NONIDLE around it to avoid the above report.\n\nSigned-off-by: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "bf4d1b5ddb78f86078ac6ae0415802d5f0c68f92",
      "tree": "36ec1f061372f6a8cfe7b3326036f06aa3a5067c",
      "parents": [
        "13dd52f11a04e616900f565d6a1e5138e58d579f"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Wed Oct 31 16:44:48 2012 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:23 2012 +0100"
      },
      "message": "cpuidle: support multiple drivers\n\nWith the tegra3 and the big.LITTLE [1] new architectures, several cpus\nwith different characteristics (latencies and states) can co-exists on the\nsystem.\n\nThe cpuidle framework has the limitation of handling only identical cpus.\n\nThis patch removes this limitation by introducing the multiple driver support\nfor cpuidle.\n\nThis option is configurable at compile time and should be enabled for the\narchitectures mentioned above. So there is no impact for the other platforms\nif the option is disabled. The option defaults to \u0027n\u0027. Note the multiple drivers\nsupport is also compatible with the existing drivers, even if just one driver is\nneeded, all the cpu will be tied to this driver using an extra small chunk of\nprocessor memory.\n\nThe multiple driver support use a per-cpu driver pointer instead of a global\nvariable and the accessor to this variable are done from a cpu context.\n\nIn order to keep the compatibility with the existing drivers, the function\n\u0027cpuidle_register_driver\u0027 and \u0027cpuidle_unregister_driver\u0027 will register\nthe specified driver for all the cpus.\n\nThe semantic for the output of /sys/devices/system/cpu/cpuidle/current_driver\nremains the same except the driver name will be related to the current cpu.\n\nThe /sys/devices/system/cpu/cpu[0-9]/cpuidle/driver/name files are added\nallowing to read the per cpu driver name.\n\n[1] http://lwn.net/Articles/481055/\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nAcked-by: Peter De Schrijver \u003cpdeschrijver@nvidia.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "13dd52f11a04e616900f565d6a1e5138e58d579f",
      "tree": "e7ce9521c4dbd93d0be9c7acaa1ceb7b7269e1db",
      "parents": [
        "41682032715c2c969357c81391a442a24dd1c2c2"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Wed Oct 31 16:44:47 2012 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:22 2012 +0100"
      },
      "message": "cpuidle: prepare the cpuidle core to handle multiple drivers\n\nThis patch is a preparation for the multiple cpuidle drivers support.\n\nAs the next patch will introduce the multiple drivers with the Kconfig\noption and we want to keep the code clean and understandable, this patch\ndefines a set of functions for encapsulating some common parts and splits\nwhat should be done under a lock from the rest.\n\n[rjw: Modified the subject and changelog slightly.]\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nAcked-by: Peter De Schrijver \u003cpdeschrijver@nvidia.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "41682032715c2c969357c81391a442a24dd1c2c2",
      "tree": "8ffc83dc3ba0a4feea15da36c7f2da604be06513",
      "parents": [
        "42f67f2acab2b7179c0d1ab234869e391448dfa6"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Wed Oct 31 16:44:46 2012 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:22 2012 +0100"
      },
      "message": "cpuidle: move driver checking within the lock section\n\nThe code is racy and the check with cpuidle_curr_driver should be\ndone under the lock.\n\nI don\u0027t find a path in the different drivers where that could happen\nbecause the arch specific drivers are written in such way it is not\npossible to register a driver while it is unregistered, except maybe\nin a very improbable case when \"intel_idle\" and \"processor_idle\" are\ncompeting. One could unregister a driver, while the other one is\nregistering.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nAcked-by: Peter De Schrijver \u003cpdeschrijver@nvidia.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "42f67f2acab2b7179c0d1ab234869e391448dfa6",
      "tree": "2ae9b604adea21b4047228763b77307c50f2574b",
      "parents": [
        "8f3e9953e1e4ae5c11e2e880e7d85c03c0180613"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Wed Oct 31 16:44:45 2012 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:22 2012 +0100"
      },
      "message": "cpuidle: move driver\u0027s refcount to cpuidle\n\nWe want to support different cpuidle drivers co-existing together.\nIn this case we should move the refcount to the cpuidle_driver\nstructure to handle several drivers at a time.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nAcked-by: Peter De Schrijver \u003cpdeschrijver@nvidia.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "8f3e9953e1e4ae5c11e2e880e7d85c03c0180613",
      "tree": "9b1116413c21e9df6caed7de64c36daa49484d2a",
      "parents": [
        "349631e0e411fefa2fed7e0a30b97704562dbd6b"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Wed Oct 31 01:09:02 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:21 2012 +0100"
      },
      "message": "cpuidle: fixup device.h header in cpuidle.h\n\nThe \"struct device\" is only used in sysfs.c.\n\nThe other .c files including the private header \"cpuidle.h\"\ndo not need to pull the entire headers tree from there as they\ndon\u0027t manipulate the \"struct device\".\n\nThis patch fixes this by moving the header inclusion to sysfs.c\nand adding a forward declaration for the struct device.\n\nThe number of lines generated by the preprocesor:\nWithout this patch : 17269 loc\nWith this patch : 16446 loc\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "349631e0e411fefa2fed7e0a30b97704562dbd6b",
      "tree": "782ef6ca2112a53f5ed43bdb3f6a80b7d8e5b2e2",
      "parents": [
        "c96ca4fb76b711279be063da083f09b8d65af5c5"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Wed Oct 31 01:05:16 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:21 2012 +0100"
      },
      "message": "cpuidle / sysfs: move structure declaration into the sysfs.c file\n\nThe structure cpuidle_state_kobj is not used anywhere except\nin the sysfs.c file. The definition of this structure is not\nneeded in the cpuidle header file. This patch moves it to the\nsysfs.c file in order to encapsulate the code a bit more.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "c96ca4fb76b711279be063da083f09b8d65af5c5",
      "tree": "391f775fd069d79bd8aa1586c6b5ed848b7f5ee5",
      "parents": [
        "d73d68dc49e09143e8e3bef10670a021c26ec4a5"
      ],
      "author": {
        "name": "Youquan Song",
        "email": "youquan.song@intel.com",
        "time": "Fri Oct 26 12:27:07 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:20 2012 +0100"
      },
      "message": "cpuidle: Get typical recent sleep interval\n\nThe function detect_repeating_patterns was not very useful for\nworkloads with alternating long and short pauses, for example\nvirtual machines handling network requests for each other (say\na web and database server).\n\nInstead, try to find a recent sleep interval that is somewhere\nbetween the median and the mode sleep time, by discarding outliers\nto the up side and recalculating the average and standard deviation\nuntil that is no longer required.\n\nThis should do something sane with a sleep interval series like:\n\n\t200 180 210 10000 30 1000 170 200\n\nThe current code would simply discard such a series, while the\nnew code will guess a typical sleep interval just shy of 200.\n\nThe original patch come from Rik van Riel \u003criel@redhat.com\u003e.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Youquan Song \u003cyouquan.song@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "d73d68dc49e09143e8e3bef10670a021c26ec4a5",
      "tree": "1efde05ffcfcbe38ac3cb6900c8f01b70d0ec066",
      "parents": [
        "e11538d1f03914eb92af5a1a378375c05ae8520c"
      ],
      "author": {
        "name": "Youquan Song",
        "email": "youquan.song@intel.com",
        "time": "Fri Oct 26 12:26:59 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:20 2012 +0100"
      },
      "message": "cpuidle: Set residency to 0 if target Cstate not enter\n\nWhen cpuidle governor choose a C-state to enter for idle CPU, but it notice that\nthere is tasks request to be executed. So the idle CPU will not really enter\nthe target C-state and go to run task.\n\nIn this situation, it will use the residency of previous really entered target\nC-states. Obviously, it is not reasonable.\n\nSo, this patch fix it by set the target C-state residency to 0.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Youquan Song \u003cyouquan.song@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "e11538d1f03914eb92af5a1a378375c05ae8520c",
      "tree": "c2c750f26f6c4de57da94e8a0a95a7d7e742bcee",
      "parents": [
        "69a37beabf1f0a6705c08e879bdd5d82ff6486c4"
      ],
      "author": {
        "name": "Youquan Song",
        "email": "youquan.song@intel.com",
        "time": "Fri Oct 26 12:26:50 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:20 2012 +0100"
      },
      "message": "cpuidle: Quickly notice prediction failure in general case\n\nThe prediction for future is difficult and when the cpuidle governor prediction\nfails and govenor possibly choose the shallower C-state than it should. How to\nquickly notice and find the failure becomes important for power saving.\n\nThe patch extends to general case that prediction logic get a small predicted\nresidency, so it choose a shallow C-state though the expected residency is large\n. Once the prediction will be fail, the CPU will keep staying at shallow C-state\nfor a long time. Acutally, the CPU has change enter into deep C-state.\nSo when the expected residency is long enough but governor choose a shallow\nC-state, an timer will be added in order to monitor if the prediction failure.\n\nWhen C-state is waken up prior to the adding timer, the timer will be cancelled\ninitiatively. When the timer is triggered and menu governor will quickly notice\nprediction failure and re-evaluates deeper C-states possibility.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Youquan Song \u003cyouquan.song@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "69a37beabf1f0a6705c08e879bdd5d82ff6486c4",
      "tree": "cbe66278435ee12182915832584a12cd1a83b114",
      "parents": [
        "e45a00d679a788217f35ee4214a32d6d1924160b"
      ],
      "author": {
        "name": "Youquan Song",
        "email": "youquan.song@intel.com",
        "time": "Fri Oct 26 12:26:41 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:19 2012 +0100"
      },
      "message": "cpuidle: Quickly notice prediction failure for repeat mode\n\nThe prediction for future is difficult and when the cpuidle governor prediction\nfails and govenor possibly choose the shallower C-state than it should. How to\nquickly notice and find the failure becomes important for power saving.\n\ncpuidle menu governor has a method to predict the repeat pattern if there are 8\nC-states residency which are continuous and the same or very close, so it will\npredict the next C-states residency will keep same residency time.\n\nThere is a real case that turbostat utility (tools/power/x86/turbostat)\nat kernel 3.3 or early. turbostat utility will read 10 registers one by one at\nSandybridge, so it will generate 10 IPIs to wake up idle CPUs. So cpuidle menu\n governor will predict it is repeat mode and there is another IPI wake up idle\n CPU soon, so it keeps idle CPU stay at C1 state even though CPU is totally\nidle. However, in the turbostat, following 10 registers reading is sleep 5\nseconds by default, so the idle CPU will keep at C1 for a long time though it is\n idle until break event occurs.\nIn a idle Sandybridge system, run \"./turbostat -v\", we will notice that deep\nC-state dangles between \"70% ~ 99%\". After patched the kernel, we will notice\ndeep C-state stays at \u003e99.98%.\n\nIn the patch, a timer is added when menu governor detects a repeat mode and\nchoose a shallow C-state. The timer is set to a time out value that greater\nthan predicted time, and we conclude repeat mode prediction failure if timer is\ntriggered. When repeat mode happens as expected, the timer is not triggered\nand CPU waken up from C-states and it will cancel the timer initiatively.\nWhen repeat mode does not happen, the timer will be time out and menu governor\nwill quickly notice that the repeat mode prediction fails and then re-evaluates\ndeeper C-states possibility.\n\nBelow is another case which will clearly show the patch much benefit:\n\n#include \u003cstdlib.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csignal.h\u003e\n#include \u003csys/time.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cpthread.h\u003e\n\nvolatile int * shutdown;\nvolatile long * count;\nint delay \u003d 20;\nint loop \u003d 8;\n\nvoid usage(void)\n{\n\tfprintf(stderr,\n\t\t\"Usage: idle_predict [options]\\n\"\n\t\t\"  --help\t-h  Print this help\\n\"\n\t\t\"  --thread\t-n  Thread number\\n\"\n\t\t\"  --loop     \t-l  Loop times in shallow Cstate\\n\"\n\t\t\"  --delay\t-t  Sleep time (uS)in shallow Cstate\\n\");\n}\n\nvoid *simple_loop() {\n\tint idle_num \u003d 1;\n\twhile (!(*shutdown)) {\n\t\t*count \u003d *count + 1;\n\n\t\tif (idle_num % loop)\n\t\t\tusleep(delay);\n\t\telse {\n\t\t\t/* sleep 1 second */\n\t\t\tusleep(1000000);\n\t\t\tidle_num \u003d 0;\n\t\t}\n\t\tidle_num++;\n\t}\n\n}\n\nstatic void sighand(int sig)\n{\n\t*shutdown \u003d 1;\n}\n\nint main(int argc, char *argv[])\n{\n\tsigset_t sigset;\n\tint signum \u003d SIGALRM;\n\tint i, c, er \u003d 0, thread_num \u003d 8;\n\tpthread_t pt[1024];\n\n\tstatic char optstr[] \u003d \"n:l:t:h:\";\n\n\twhile ((c \u003d getopt(argc, argv, optstr)) !\u003d EOF)\n\t\tswitch (c) {\n\t\t\tcase \u0027n\u0027:\n\t\t\t\tthread_num \u003d atoi(optarg);\n\t\t\t\tbreak;\n\t\t\tcase \u0027l\u0027:\n\t\t\t\tloop \u003d atoi(optarg);\n\t\t\t\tbreak;\n\t\t\tcase \u0027t\u0027:\n\t\t\t\tdelay \u003d atoi(optarg);\n\t\t\t\tbreak;\n\t\t\tcase \u0027h\u0027:\n\t\t\tdefault:\n\t\t\t\tusage();\n\t\t\t\texit(1);\n\t\t}\n\n\tprintf(\"thread\u003d%d,loop\u003d%d,delay\u003d%d\\n\",thread_num,loop,delay);\n\tcount \u003d malloc(sizeof(long));\n\tshutdown \u003d malloc(sizeof(int));\n\t*count \u003d 0;\n\t*shutdown \u003d 0;\n\n\tsigemptyset(\u0026sigset);\n\tsigaddset(\u0026sigset, signum);\n\tsigprocmask (SIG_BLOCK, \u0026sigset, NULL);\n\tsignal(SIGINT, sighand);\n\tsignal(SIGTERM, sighand);\n\n\tfor(i \u003d 0; i \u003c thread_num ; i++)\n\t\tpthread_create(\u0026pt[i], NULL, simple_loop, NULL);\n\n\tfor (i \u003d 0; i \u003c thread_num; i++)\n\t\tpthread_join(pt[i], NULL);\n\n\texit(0);\n}\n\nGet powertop V2 from git://github.com/fenrus75/powertop, build powertop.\nAfter build the above test application, then run it.\nTest plaform can be Intel Sandybridge or other recent platforms.\n#./idle_predict -l 10 \u0026\n#./powertop\n\nWe will find that deep C-state will dangle between 40%~100% and much time spent\non C1 state. It is because menu governor wrongly predict that repeat mode\nis kept, so it will choose the C1 shallow C-state even though it has chance to\nsleep 1 second in deep C-state.\n\nWhile after patched the kernel, we find that deep C-state will keep \u003e99.6%.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Youquan Song \u003cyouquan.song@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "e45a00d679a788217f35ee4214a32d6d1924160b",
      "tree": "fd8e431856bf3df54b5af7352d026997d551d015",
      "parents": [
        "1aef40e288acfb3cc28ff77528b34ef66683bed6"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Fri Oct 26 12:26:32 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:19 2012 +0100"
      },
      "message": "cpuidle / sysfs: move kobj initialization in the syfs file\n\nMove the kobj initialization and completion in the sysfs.c\nand encapsulate the code more.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "1aef40e288acfb3cc28ff77528b34ef66683bed6",
      "tree": "c62a1d0448a07aef5a987dac44135de3c74522b9",
      "parents": [
        "77b67063bb6bce6d475e910d3b886a606d0d91f7"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Fri Oct 26 12:26:24 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:19 2012 +0100"
      },
      "message": "cpuidle / sysfs: change function parameter\n\nThe function needs the cpuidle_device which is initially passed to the\ncaller.\n\nThe current code gets the struct device from the struct cpuidle_device,\npass it the cpuidle_add_sysfs function. This function calls\nper_cpu(cpuidle_devices, cpu) to get the cpuidle_device.\n\nThis patch pass the cpuidle_device instead and simplify the code.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "be6a98d3f00c292d347465d96acbec9d8c2783cf",
      "tree": "0904f11c26daaf11be227060c3afcebeeeea9b79",
      "parents": [
        "8f0d8163b50e01f398b14bcd4dc039ac5ab18d64"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Fri Oct 12 12:45:34 2012 -0500"
      },
      "committer": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Wed Nov 07 17:15:36 2012 -0600"
      },
      "message": "cpuidle: add Calxeda SOC idle support\n\nAdd support for core powergating on Calxeda platforms. Initially, this\nsupports ECX-1000 (highbank), but support will be added for ECX-2000\nlater.\n\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "cf31cd1a0c692a1445c80756055875088fa29982",
      "tree": "7b79ff10b9481539c119dd6fe4659a8b2985a554",
      "parents": [
        "e8b1b59dc8e42a47c4ce541bd1767ffac206b29c"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Mon Oct 08 13:43:08 2012 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Oct 08 22:52:54 2012 -0400"
      },
      "message": "ACPI idle, CPU hotplug: Fix NULL pointer dereference during hotplug\n\nOn a KVM guest, when a CPU is taken offline and brought back online, we hit\nthe following NULL pointer dereference:\n\n[   45.400843] Unregister pv shared memory for cpu 1\n[   45.412331] smpboot: CPU 1 is now offline\n[   45.529894] SMP alternatives: lockdep: fixing up alternatives\n[   45.533472] smpboot: Booting Node 0 Processor 1 APIC 0x1\n[   45.411526] kvm-clock: cpu 1, msr 0:7d14601, secondary cpu clock\n[   45.571370] KVM setup async PF for cpu 1\n[   45.572331] kvm-stealtime: cpu 1, msr 7d0e040\n[   45.575031] BUG: unable to handle kernel NULL pointer dereference at           (null)\n[   45.576017] IP: [\u003cffffffff81519f98\u003e] cpuidle_disable_device+0x18/0x80\n[   45.576017] PGD 5dfb067 PUD 5da8067 PMD 0\n[   45.576017] Oops: 0000 [#1] SMP\n[   45.576017] Modules linked in:\n[   45.576017] CPU 0\n[   45.576017] Pid: 607, comm: stress_cpu_hotp Not tainted 3.6.0-padata-tp-debug #3 Bochs Bochs\n[   45.576017] RIP: 0010:[\u003cffffffff81519f98\u003e]  [\u003cffffffff81519f98\u003e] cpuidle_disable_device+0x18/0x80\n[   45.576017] RSP: 0018:ffff880005d93ce8  EFLAGS: 00010286\n[   45.576017] RAX: ffff880005d93fd8 RBX: 0000000000000000 RCX: 0000000000000006\n[   45.576017] RDX: 0000000000000006 RSI: 2222222222222222 RDI: 0000000000000000\n[   45.576017] RBP: ffff880005d93cf8 R08: 2222222222222222 R09: 2222222222222222\n[   45.576017] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000\n[   45.576017] R13: 0000000000000000 R14: ffffffff81c8cca0 R15: 0000000000000001\n[   45.576017] FS:  00007f91936ae700(0000) GS:ffff880007c00000(0000) knlGS:0000000000000000\n[   45.576017] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n[   45.576017] CR2: 0000000000000000 CR3: 0000000005db3000 CR4: 00000000000006f0\n[   45.576017] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n[   45.576017] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n[   45.576017] Process stress_cpu_hotp (pid: 607, threadinfo ffff880005d92000, task ffff8800066bbf40)\n[   45.576017] Stack:\n[   45.576017]  ffff880007a96400 0000000000000000 ffff880005d93d28 ffffffff813ac689\n[   45.576017]  ffff880007a96400 ffff880007a96400 0000000000000002 ffffffff81cd8d01\n[   45.576017]  ffff880005d93d58 ffffffff813aa498 0000000000000001 00000000ffffffdd\n[   45.576017] Call Trace:\n[   45.576017]  [\u003cffffffff813ac689\u003e] acpi_processor_hotplug+0x55/0x97\n[   45.576017]  [\u003cffffffff813aa498\u003e] acpi_cpu_soft_notify+0x93/0xce\n[   45.576017]  [\u003cffffffff816ae47d\u003e] notifier_call_chain+0x5d/0x110\n[   45.576017]  [\u003cffffffff8109730e\u003e] __raw_notifier_call_chain+0xe/0x10\n[   45.576017]  [\u003cffffffff81069050\u003e] __cpu_notify+0x20/0x40\n[   45.576017]  [\u003cffffffff81069085\u003e] cpu_notify+0x15/0x20\n[   45.576017]  [\u003cffffffff816978f1\u003e] _cpu_up+0xee/0x137\n[   45.576017]  [\u003cffffffff81697983\u003e] cpu_up+0x49/0x59\n[   45.576017]  [\u003cffffffff8168758d\u003e] store_online+0x9d/0xe0\n[   45.576017]  [\u003cffffffff8140a9f8\u003e] dev_attr_store+0x18/0x30\n[   45.576017]  [\u003cffffffff812322c0\u003e] sysfs_write_file+0xe0/0x150\n[   45.576017]  [\u003cffffffff811b389c\u003e] vfs_write+0xac/0x180\n[   45.576017]  [\u003cffffffff811b3be2\u003e] sys_write+0x52/0xa0\n[   45.576017]  [\u003cffffffff816b31e9\u003e] system_call_fastpath+0x16/0x1b\n[   45.576017] Code: 48 c7 c7 40 e5 ca 81 e8 07 d0 18 00 5d c3 0f 1f 44 00 00 0f 1f 44 00 00 55 48 89 e5 48 83 ec 10 48 89 5d f0 4c 89 65 f8 48 89 fb \u003cf6\u003e 07 02 75 13 48 8b 5d f0 4c 8b 65 f8 c9 c3 66 0f 1f 84 00 00\n[   45.576017] RIP  [\u003cffffffff81519f98\u003e] cpuidle_disable_device+0x18/0x80\n[   45.576017]  RSP \u003cffff880005d93ce8\u003e\n[   45.576017] CR2: 0000000000000000\n[   45.656079] ---[ end trace 433d6c9ac0b02cef ]---\n\nAnalysis:\nCommit 3d339dc (cpuidle / ACPI : move cpuidle_device field out of the\nacpi_processor_power structure()) made the allocation of the dev structure\n(struct cpuidle) of a CPU dynamic, whereas previously it was statically\nallocated. And this dynamic allocation occurs in acpi_processor_power_init()\nif pr-\u003eflags.power evaluates to non-zero.\n\nOn KVM guests, pr-\u003eflags.power evaluates to zero, hence dev is never\nallocated. This causes the NULL pointer (dev) dereference in\ncpuidle_disable_device() during a subsequent CPU online operation. Fix this\nby ensuring that dev is non-NULL before dereferencing.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "ed953472d181e1d149f17d85d82de9634db296c3",
      "tree": "f236987a37c2ce04175d3e7c97b88e69ea955ff8",
      "parents": [
        "a77de28662adea391d8ed952e2b9c49b60193e8c"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Sat Sep 22 00:38:32 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Sep 22 00:38:32 2012 +0200"
      },
      "message": "cpuidle: rename function name \"__cpuidle_register_driver\", v2\n\nThe function __cpuidle_register_driver name is confusing because it\nsuggests, conforming to the coding style of the kernel, it registers\nthe driver without taking a lock. Actually, it just fill the different\npower field states with a decresing value if the power has not been\nspecified.\n\nClarify the purpose of the function by changing its name and\nmove the condition out of this function.\n\nThis patch fix nothing and does not change the behavior of the\nfunction. It is just for the sake of clarity.\n\nIHMO, reading in the code:\n\n+       if (!drv-\u003epower_specified)\n+               set_power_states(drv);\n\nis much more explicit than:\n\n-       __cpuidle_register_driver(drv);\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a77de28662adea391d8ed952e2b9c49b60193e8c",
      "tree": "a92f7b8d4e2ed5747d8d0658eb5ee6a5243a0600",
      "parents": [
        "3d339dcbb56d8d70c1b959aff87d74adc3a84eea"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Wed Sep 19 21:59:42 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Sep 19 21:59:42 2012 +0200"
      },
      "message": "cpuidle: remove some empty lines\n\nThis mindless patch is just about removing some trailing\ncarriage returns.\n\n[rjw: Changed the subject.]\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "66804c13f7b79fb26cf4848ebac1e865b9aff65c",
      "tree": "90b00fa59dc08a659435c656e21f41618478e28e",
      "parents": [
        "62d6ae880e3e76098d5e345decd2dce443975889"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Aug 15 20:28:52 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:35:45 2012 +0200"
      },
      "message": "PM / cpuidle: Make ladder governor use the \"disabled\" state flag\n\nFor the mechanism introduced by commit cbc9ef0 (PM / Domains: Add\npreliminary support for cpuidle, v2) to work with the ladder\ngovernor, that governor should respect the \"disabled\" state flag\nadded by that commit.  Change the ladder governor accordingly.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "62d6ae880e3e76098d5e345decd2dce443975889",
      "tree": "5788868e10c08030c5981adae8f5dfd6306b2608",
      "parents": [
        "4cbe5a555fa58a79b6ecbb6c531b8bab0650778d"
      ],
      "author": {
        "name": "Carsten Emde",
        "email": "C.Emde@osadl.org",
        "time": "Thu Jul 19 20:34:10 2012 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:35:44 2012 +0200"
      },
      "message": "Honor state disabling in the cpuidle ladder governor\n\nThere are two cpuidle governors ladder and menu. While the ladder\ngovernor is always available, if CONFIG_CPU_IDLE is selected, the\nmenu governor additionally requires CONFIG_NO_HZ.\n\nA particular C state can be disabled by writing to the sysfs file\n/sys/devices/system/cpu/cpuN/cpuidle/stateN/disable, but this mechanism\nis only implemented in the menu governor. Thus, in a system where\nCONFIG_NO_HZ is not selected, the ladder governor becomes default and\nalways will walk through all sleep states - irrespective of whether the\nC state was disabled via sysfs or not. The only way to select a specific\nC state was to write the related latency to /dev/cpu_dma_latency and\nkeep the file open as long as this setting was required - not very\npractical and not suitable for setting a single core in an SMP system.\n\nWith this patch, the ladder governor only will promote to the next\nC state, if it has not been disabled, and it will demote, if the\ncurrent C state was disabled.\n\nNote that the patch does not make the setting of the sysfs variable\n\"disable\" coherent, i.e. if one is disabling a light state, then all\ndeeper states are disabled as well, but the \"disable\" variable does not\nreflect it. Likewise, if one enables a deep state but a lighter state\nstill is disabled, then this has no effect. A related section has been\nadded to the documentation.\n\nSigned-off-by: Carsten Emde \u003cC.Emde@osadl.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "5fbbb90dfdedb9a258550e4e5debd3013266372e",
      "tree": "86f4ad339e193301a8ac2626cc28e664978089b7",
      "parents": [
        "63c6ba4352009a5f85b32307c001abeb5baebd28"
      ],
      "author": {
        "name": "Jon Medhurst (Tixy)",
        "email": "tixy@linaro.org",
        "time": "Wed Aug 15 22:11:00 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Aug 17 19:37:08 2012 +0200"
      },
      "message": "cpuidle: Prevent null pointer dereference in cpuidle_coupled_cpu_notify\n\nWhen a kernel is built to support multiple hardware types it\u0027s possible\nthat CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is set but the hardware the\nkernel is run on doesn\u0027t support cpuidle and therefore doesn\u0027t load a\ndriver for it. In this case, when the system is shut down,\ncpuidle_coupled_cpu_notify() gets called with cpuidle_devices set to\nNULL. There are quite possibly other circumstances where this\nsituation can also occur and we should check for it.\n\nSigned-off-by: Jon Medhurst \u003ctixy@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "63c6ba4352009a5f85b32307c001abeb5baebd28",
      "tree": "a3cf120e9c5caf74dd4704bc484f0f3930d433fa",
      "parents": [
        "55d7ec4520e86d735d178c15d7df33d507bd43c6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 15 22:10:50 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Aug 17 19:37:01 2012 +0200"
      },
      "message": "cpuidle: coupled: fix sleeping while atomic in cpu notifier\n\nThe cpu hotplug notifier gets called in both atomic and non-atomic\ncontexts, it is not always safe to lock a mutex.  Filter out all events\nexcept the six necessary ones, which are all sleepable, before taking\nthe mutex.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "476525004ac7e2f990b6956efcd44d0780c2ab4c",
      "tree": "158cd2bbfb232b4f4327b6c20a4e14c6b095a438",
      "parents": [
        "bd22dc17e49973d3d4925970260e9e37f7580a9f",
        "ec033d0a02901551346b9f43f8ff9bad51378891"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 14:28:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 14:28:55 2012 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\nPull ACPI \u0026 power management update from Len Brown:\n \"Re-write of the turbostat tool.\n     lower overhead was necessary for measuring very large system when\n     they are very idle.\n\n  IVB support in intel_idle\n     It\u0027s what I run on my IVB, others should be able to also:-)\n\n  ACPICA core update\n     We have found some bugs due to divergence between Linux and the\n     upstream ACPICA base.  Most of these patches are to reduce that\n     divergence to reduce the risk of future bugs.\n\n  Some cpuidle updates, mostly for non-Intel\n     More will be coming, as they depend on this part.\n\n  Some thermal management changes needed by non-ACPI systems.\n\n  Some _OST (OS Status Indication) updates for hot ACPI hot-plug.\"\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (51 commits)\n  Thermal: Documentation update\n  Thermal: Add Hysteresis attributes\n  Thermal: Make Thermal trip points writeable\n  ACPI/AC: prevent OOPS on some boxes due to missing check power_supply_register() return value check\n  tools/power: turbostat: fix large c1% issue\n  tools/power: turbostat v2 - re-write for efficiency\n  ACPICA: Update to version 20120711\n  ACPICA: AcpiSrc: Fix some translation issues for Linux conversion\n  ACPICA: Update header files copyrights to 2012\n  ACPICA: Add new ACPI table load/unload external interfaces\n  ACPICA: Split file: tbxface.c -\u003e tbxfload.c\n  ACPICA: Add PCC address space to space ID decode function\n  ACPICA: Fix some comment fields\n  ACPICA: Table manager: deploy new firmware error/warning interfaces\n  ACPICA: Add new interfaces for BIOS(firmware) errors and warnings\n  ACPICA: Split exception code utilities to a new file, utexcep.c\n  ACPI: acpi_pad: tune round_robin_time\n  ACPICA: Update to version 20120620\n  ACPICA: Add support for implicit notify on multiple devices\n  ACPICA: Update comments; no functional change\n  ...\n"
    },
    {
      "commit": "ec033d0a02901551346b9f43f8ff9bad51378891",
      "tree": "f0ede8b29060a64ccb985be1983535f884fe00a7",
      "parents": [
        "fa7584e13ac8e6a306085bba0a931f3135f1d8c4",
        "819f1a64beb6c962218bd348a6f19aff718cde6c",
        "f712c71f7b2b43b894d1e92e1b77385fcad8815f",
        "a58e1150225cc9e554b76da5519b2bb5bb6e46ff",
        "20ff51a36b2cd25ee7eb3216b6d02b68935435ba",
        "1b0a0e9a15b976d91f3b5ae619c6a8964c2818eb",
        "6edab08c24f9141d69cfa4683a0a027d86ab303e",
        "c2f4191a9c4dbbb5c8bc7f2c0eb5023b97dd2a49",
        "f197ac13f6eeb351b31250b9ab7d0da17434ea36",
        "8eaa8d6ca27788aa23659082362a608c1fabcdfe",
        "b9c7aff481f19dd655ae3ce6513817d625e2d47c",
        "c3ae331d1c2fe25edfbece73fda0bb312445b636"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Jul 26 00:03:58 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Jul 26 00:03:58 2012 -0400"
      },
      "message": "Merge branches \u0027acpi_pad\u0027, \u0027acpica\u0027, \u0027apei-bugzilla-43282\u0027, \u0027battery\u0027, \u0027cpuidle-coupled\u0027, \u0027cpuidle-tweaks\u0027, \u0027intel_idle-ivb\u0027, \u0027ost\u0027, \u0027red-hat-bz-772730\u0027, \u0027thermal\u0027, \u0027thermal-spear\u0027 and \u0027turbostat-v2\u0027 into release\n"
    },
    {
      "commit": "7791bd230c6fe65348456564743f99fa066f00e7",
      "tree": "e9ed6b3e1baea455a65274aa054ebd29d2623b92",
      "parents": [
        "3db0bc97678d7de32f25514b290a0ca028dd4512",
        "8e9afafdad59f5973a5e72e05db9802f82091398"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 00:03:17 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 00:03:17 2012 +0200"
      },
      "message": "Merge branch \u0027pm-domains\u0027\n\n* pm-domains:\n  PM / Domains: Fix build warning for CONFIG_PM_RUNTIME unset\n  PM / Domains: Replace plain integer with NULL pointer in domain.c file\n  PM / Domains: Add missing static storage class specifier in domain.c file\n  PM / Domains: Allow device callbacks to be added at any time\n  PM / Domains: Add device domain data reference counter\n  PM / Domains: Add preliminary support for cpuidle, v2\n  PM / Domains: Do not stop devices after restoring their states\n  PM / Domains: Use subsystem runtime suspend/resume callbacks by default\n"
    },
    {
      "commit": "8651f97bd951d0bb1c10fa24e3fa3455193f3548",
      "tree": "a3bf8f8a4c67a092bbd50018b53f9de567acd687",
      "parents": [
        "25ac77613aa8fca131599705e3d7da2a0eaa06a0"
      ],
      "author": {
        "name": "Preeti U Murthy",
        "email": "preeti@linux.vnet.ibm.com",
        "time": "Mon Jul 09 10:12:56 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 10 21:34:49 2012 +0200"
      },
      "message": "PM / cpuidle: System resume hang fix with cpuidle\n\nOn certain bios, resume hangs if cpus are allowed to enter idle states\nduring suspend [1].\n\nThis was fixed in apci idle driver [2].But intel_idle driver does not\nhave this fix. Thus instead of replicating the fix in both the idle\ndrivers, or in more platform specific idle drivers if needed, the\nmore general cpuidle infrastructure could handle this.\n\nA suspend callback in cpuidle_driver could handle this fix. But\na cpuidle_driver provides only basic functionalities like platform idle\nstate detection capability and mechanisms to support entry and exit\ninto CPU idle states. All other cpuidle functions are found in the\ncpuidle generic infrastructure for good reason that all cpuidle\ndrivers, irrepective of their platforms will support these functions.\n\nOne option therefore would be to register a suspend callback in cpuidle\nwhich handles this fix. This could be called through a PM_SUSPEND_PREPARE\nnotifier. But this is too generic a notfier for a driver to handle.\n\nAlso, ideally the job of cpuidle is not to handle side effects of suspend.\nIt should expose the interfaces which \"handle cpuidle \u0027during\u0027 suspend\"\nor any other operation, which the subsystems call during that respective\noperation.\n\nThe fix demands that during suspend, no cpus should be allowed to enter\ndeep C-states. The interface cpuidle_uninstall_idle_handler() in cpuidle\nensures that. Not just that it also kicks all the cpus which are already\nin idle out of their idle states which was being done during cpu hotplug\nthrough a CPU_DYING_FROZEN callbacks.\n\nNow the question arises about when during suspend should\ncpuidle_uninstall_idle_handler() be called. Since we are dealing with\ndrivers it seems best to call this function during dpm_suspend().\nDelaying the call till dpm_suspend_noirq() does no harm, as long as it is\nbefore cpu_hotplug_begin() to avoid race conditions with cpu hotpulg\noperations. In dpm_suspend_noirq(), it would be wise to place this call\nbefore suspend_device_irqs() to avoid ugly interactions with the same.\n\nAnanlogously, during resume.\n\nReferences:\n[1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/674075.\n[2] http://marc.info/?l\u003dlinux-pm\u0026m\u003d133958534231884\u0026w\u003d2\n\nReported-and-tested-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Preeti U Murthy \u003cpreeti@linux.vnet.ibm.com\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "cbc9ef0287ab764d3da0129efa673808df641fe3",
      "tree": "43f128194beaeeda86dcc962a28af8c03f924404",
      "parents": [
        "e3b8cdd8e4ea51e46d3ff54d7e3568afc24654ec"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 03 19:07:42 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 03 19:07:42 2012 +0200"
      },
      "message": "PM / Domains: Add preliminary support for cpuidle, v2\n\nOn some systems there are CPU cores located in the same power\ndomains as I/O devices.  Then, power can only be removed from the\ndomain if all I/O devices in it are not in use and the CPU core\nis idle.  Add preliminary support for that to the generic PM domains\nframework.\n\nFirst, the platform is expected to provide a cpuidle driver with one\nextra state designated for use with the generic PM domains code.\nThis state should be initially disabled and its exit_latency value\nshould be set to whatever time is needed to bring up the CPU core\nitself after restoring power to it, not including the domain\u0027s\npower on latency.  Its .enter() callback should point to a procedure\nthat will remove power from the domain containing the CPU core at\nthe end of the CPU power transition.\n\nThe remaining characteristics of the extra cpuidle state, referred to\nas the \"domain\" cpuidle state below, (e.g. power usage, target\nresidency) should be populated in accordance with the properties of\nthe hardware.\n\nNext, the platform should execute genpd_attach_cpuidle() on the PM\ndomain containing the CPU core.  That will cause the generic PM\ndomains framework to treat that domain in a special way such that:\n\n * When all devices in the domain have been suspended and it is about\n   to be turned off, the states of the devices will be saved, but\n   power will not be removed from the domain.  Instead, the \"domain\"\n   cpuidle state will be enabled so that power can be removed from\n   the domain when the CPU core is idle and the state has been chosen\n   as the target by the cpuidle governor.\n\n * When the first I/O device in the domain is resumed and\n   __pm_genpd_poweron(() is called for the first time after\n   power has been removed from the domain, the \"domain\" cpuidle\n   state will be disabled to avoid subsequent surprise power removals\n   via cpuidle.\n\nThe effective exit_latency value of the \"domain\" cpuidle state\ndepends on the time needed to bring up the CPU core itself after\nrestoring power to it as well as on the power on latency of the\ndomain containing the CPU core.  Thus the \"domain\" cpuidle state\u0027s\nexit_latency has to be recomputed every time the domain\u0027s power on\nlatency is updated, which may happen every time power is restored\nto the domain, if the measured power on latency is greater than\nthe latency stored in the corresponding generic_pm_domain structure.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "6e797a078824b30afbfae6cc4b1c2b21c51761ef",
      "tree": "7f58824b2c1e62b954683900024a5b97a4d30b4d",
      "parents": [
        "dc7fd275ae60ef8edf952aff2a62462f5d892fd4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jun 16 15:20:11 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 03 19:06:25 2012 +0200"
      },
      "message": "PM / cpuidle: Add driver reference counter\n\nAdd a reference counter for the cpuidle driver, so that it can\u0027t\nbe unregistered when it is in use.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "dc7fd275ae60ef8edf952aff2a62462f5d892fd4",
      "tree": "620ffab8288830c8e8dc03b24e77fe3800d03b7e",
      "parents": [
        "6887a4131da3adaab011613776d865f4bcfb5678"
      ],
      "author": {
        "name": "ShuoX Liu",
        "email": "shuox.liu@intel.com",
        "time": "Tue Jul 03 19:05:31 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 03 19:05:31 2012 +0200"
      },
      "message": "cpuidle: move field disable from per-driver to per-cpu\n\nAndrew J.Schorr raises a question.  When he changes the disable setting on\na single CPU, it affects all the other CPUs.  Basically, currently, the\ndisable field is per-driver instead of per-cpu.  All the C states of the\nsame driver are shared by all CPU in the same machine.\n\nThe patch changes the `disable\u0027 field to per-cpu, so we could set this\nseparately for each cpu.\n\nSigned-off-by: ShuoX Liu \u003cshuox.liu@intel.com\u003e\nReported-by: Andrew J.Schorr \u003caschorr@telemetry-investments.com\u003e\nReviewed-by: Yanmin Zhang \u003cyanmin_zhang@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "20ff51a36b2cd25ee7eb3216b6d02b68935435ba",
      "tree": "3c50651ca3cdc64c409afe9f867c13a8d50200e0",
      "parents": [
        "4126c0197bc8c58a0bb7fcda07b01b596b6fb4c5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 07 17:57:42 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jun 02 00:49:36 2012 -0400"
      },
      "message": "cpuidle: coupled: add parallel barrier function\n\nAdds cpuidle_coupled_parallel_barrier, which can be used by coupled\ncpuidle state enter functions to handle resynchronization after\ndetermining if any cpu needs to abort.  The normal use case will\nbe:\n\nstatic bool abort_flag;\nstatic atomic_t abort_barrier;\n\nint arch_cpuidle_enter(struct cpuidle_device *dev, ...)\n{\n\tif (arch_turn_off_irq_controller()) {\n\t   \t/* returns an error if an irq is pending and would be lost\n\t\t   if idle continued and turned off power */\n\t\tabort_flag \u003d true;\n\t}\n\n\tcpuidle_coupled_parallel_barrier(dev, \u0026abort_barrier);\n\n\tif (abort_flag) {\n\t   \t/* One of the cpus didn\u0027t turn off it\u0027s irq controller */\n\t   \tarch_turn_on_irq_controller();\n\t\treturn -EINTR;\n\t}\n\n\t/* continue with idle */\n\t...\n}\n\nThis will cause all cpus to abort idle together if one of them needs\nto abort.\n\nReviewed-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nTested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nTested-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4126c0197bc8c58a0bb7fcda07b01b596b6fb4c5",
      "tree": "c60aacfbc69627b96dc39dc8dc71ea8f0893c5e5",
      "parents": [
        "3af272ab75c7a0c7fa5ae5507724d961f7e7718b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 07 17:57:41 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jun 02 00:49:09 2012 -0400"
      },
      "message": "cpuidle: add support for states that affect multiple cpus\n\nOn some ARM SMP SoCs (OMAP4460, Tegra 2, and probably more), the\ncpus cannot be independently powered down, either due to\nsequencing restrictions (on Tegra 2, cpu 0 must be the last to\npower down), or due to HW bugs (on OMAP4460, a cpu powering up\nwill corrupt the gic state unless the other cpu runs a work\naround).  Each cpu has a power state that it can enter without\ncoordinating with the other cpu (usually Wait For Interrupt, or\nWFI), and one or more \"coupled\" power states that affect blocks\nshared between the cpus (L2 cache, interrupt controller, and\nsometimes the whole SoC).  Entering a coupled power state must\nbe tightly controlled on both cpus.\n\nThe easiest solution to implementing coupled cpu power states is\nto hotplug all but one cpu whenever possible, usually using a\ncpufreq governor that looks at cpu load to determine when to\nenable the secondary cpus.  This causes problems, as hotplug is an\nexpensive operation, so the number of hotplug transitions must be\nminimized, leading to very slow response to loads, often on the\norder of seconds.\n\nThis file implements an alternative solution, where each cpu will\nwait in the WFI state until all cpus are ready to enter a coupled\nstate, at which point the coupled state function will be called\non all cpus at approximately the same time.\n\nOnce all cpus are ready to enter idle, they are woken by an smp\ncross call.  At this point, there is a chance that one of the\ncpus will find work to do, and choose not to enter idle.  A\nfinal pass is needed to guarantee that all cpus will call the\npower state enter function at the same time.  During this pass,\neach cpu will increment the ready counter, and continue once the\nready counter matches the number of online coupled cpus.  If any\ncpu exits idle, the other cpus will decrement their counter and\nretry.\n\nTo use coupled cpuidle states, a cpuidle driver must:\n\n   Set struct cpuidle_device.coupled_cpus to the mask of all\n   coupled cpus, usually the same as cpu_possible_mask if all cpus\n   are part of the same cluster.  The coupled_cpus mask must be\n   set in the struct cpuidle_device for each cpu.\n\n   Set struct cpuidle_device.safe_state to a state that is not a\n   coupled state.  This is usually WFI.\n\n   Set CPUIDLE_FLAG_COUPLED in struct cpuidle_state.flags for each\n   state that affects multiple cpus.\n\n   Provide a struct cpuidle_state.enter function for each state\n   that affects multiple cpus.  This function is guaranteed to be\n   called on all cpus at approximately the same time.  The driver\n   should ensure that the cpus all abort together if any cpu tries\n   to abort once the function is called.\n\nupdate1:\n\ncpuidle: coupled: fix count of online cpus\n\nonline_count was never incremented on boot, and was also counting\ncpus that were not part of the coupled set.  Fix both issues by\nintroducting a new function that counts online coupled cpus, and\ncall it from register as well as the hotplug notifier.\n\nupdate2:\n\ncpuidle: coupled: fix decrementing ready count\n\ncpuidle_coupled_set_not_ready sometimes refuses to decrement the\nready count in order to prevent a race condition.  This makes it\nunsuitable for use when finished with idle.  Add a new function\ncpuidle_coupled_set_done that decrements both the ready count and\nwaiting count, and call it after idle is complete.\n\nCc: Amit Kucheria \u003camit.kucheria@linaro.org\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nCc: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nReviewed-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nTested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nTested-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "3af272ab75c7a0c7fa5ae5507724d961f7e7718b",
      "tree": "114bbb6881afbefa2108038083cdd6216dc53c6c",
      "parents": [
        "56cfbf74a17c40f3a741398103c9f5d5a6806715"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 07 17:57:40 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jun 02 00:48:49 2012 -0400"
      },
      "message": "cpuidle: fix error handling in __cpuidle_register_device\n\nFix the error handling in __cpuidle_register_device to include\nthe missing list_del.  Move it to a label, which will simplify\nthe error handling when coupled states are added.\n\nReviewed-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nTested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nTested-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nReviewed-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "56cfbf74a17c40f3a741398103c9f5d5a6806715",
      "tree": "80adac252b5c485df28f3469e314a66d562a5d4c",
      "parents": [
        "76e10d158efb6d4516018846f60c2ab5501900bc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 07 17:57:39 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jun 02 00:48:31 2012 -0400"
      },
      "message": "cpuidle: refactor out cpuidle_enter_state\n\nSplit the code to enter a state and update the stats into a helper\nfunction, cpuidle_enter_state, and export it.  This function will\nbe called by the coupled state code to handle entering the safe\nstate and the final coupled state.\n\nReviewed-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nTested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nTested-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nReviewed-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "1b0a0e9a15b976d91f3b5ae619c6a8964c2818eb",
      "tree": "4408c6a983c18ca7c8cc1a9d55008b3dd5d33703",
      "parents": [
        "0aeb9cac6f8a6fc68acfb07d30b62ad6106a6384"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Fri May 04 14:06:02 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jun 01 16:07:23 2012 -0400"
      },
      "message": "cpuidle: add checks to avoid NULL pointer dereference\n\nThe existing check for dev \u003d\u003d NULL in __cpuidle_register_device() is\nrendered useless because dev is dereferenced before the check itself.\nMoreover, correctly speaking, it is the job of the callers of this\nfunction, i.e., cpuidle_register_device() \u0026 cpuidle_enable_device() (which\nalso happen to be exported functions) to ensure that\n__cpuidle_register_device() is called with a non-NULL dev.\n\nSo add the necessary dev \u003d\u003d NULL checks in the two callers and remove the\n(useless) check from __cpuidle_register_device().\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "0aeb9cac6f8a6fc68acfb07d30b62ad6106a6384",
      "tree": "7a06641d75e75558b266ac92833167b94e61cda5",
      "parents": [
        "76e10d158efb6d4516018846f60c2ab5501900bc"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Fri May 04 14:06:02 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jun 01 16:06:48 2012 -0400"
      },
      "message": "cpuidle: remove unused hrtimer_peek_ahead_timers() call\n\n  commit 9a6558371bcd01c2973b7638181db4ccc34eab4f\n  Author: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n  Date:   Sun Nov 9 12:45:10 2008 -0800\n\n     regression: disable timer peek-ahead for 2.6.28\n\n     It\u0027s showing up as regressions; disabling it very likely just papers\n     over an underlying issue, but time is running out for 2.6.28, lets get\n     back to this for 2.6.29\n\n Many years has passed since 2008, so it seems ok to remove whole `#if 0\u0027 block.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nCc: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4a1625133d4faaefcec0dc175941f49b186918d9",
      "tree": "abefd7c7b1332ae9ef6a10ffd77790b2a01aa98e",
      "parents": [
        "f37f435f33717dcf15fd4bb422da739da7fc2052"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 07 17:59:48 2012 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 08 12:35:06 2012 +0200"
      },
      "message": "cpuidle: Use kick_all_cpus_sync()\n\nkick_all_cpus_sync() is the core implementation of cpu_idle_wait()\nwhich is copied all over the arch code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120507175652.119842173@linutronix.de\n"
    },
    {
      "commit": "eeaab2d8af2cf1d36d7086f22e9de42d6dd2995c",
      "tree": "369b9c91a6d808944f07d2290fec6f9fe2731904",
      "parents": [
        "ee01e663373343c63e0e3d364d09f6155378dbcc",
        "aaef292acf3a78d9c0bb6fb72226077d286b45d7"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 06 21:48:59 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 06 21:48:59 2012 -0400"
      },
      "message": "Merge branches \u0027idle-fix\u0027 and \u0027misc\u0027 into release\n"
    },
    {
      "commit": "ee01e663373343c63e0e3d364d09f6155378dbcc",
      "tree": "22448567769278f9af4f8bff9bfc7653be94885c",
      "parents": [
        "54f70077768e9aba37d9c5030b43497b6d5084fb"
      ],
      "author": {
        "name": "Toshi Kani",
        "email": "toshi.kani@hp.com",
        "time": "Sat Mar 31 21:37:02 2012 -0600"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 06 15:01:25 2012 -0400"
      },
      "message": "cpuidle: Fix panic in CPU off-lining with no idle driver\n\nFix a NULL pointer dereference panic in cpuidle_play_dead() during\nCPU off-lining when no cpuidle driver is registered.  A cpuidle\ndriver may be registered at boot-time based on CPU type.  This patch\nallows an off-lined CPU to enter HLT-based idle in this condition.\n\nSigned-off-by: Toshi Kani \u003ctoshi.kani@hp.com\u003e\nCc: Boris Ostrovsky \u003cboris.ostrovsky@amd.com\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nTested-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "a335750b9a039a9d4cd727cdccacfb90fd63c4e8",
      "tree": "8f3198984fb75fe494e771d9431f6799228623c5",
      "parents": [
        "10f3cb41d48ab30f5c754b30eea557371892b4c2",
        "d326f44e5f2204c7a24db69bfc6dd3fe5f86182b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 16:45:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 16:45:39 2012 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\nPull ACPI \u0026 Power Management changes from Len Brown:\n - ACPI 5.0 after-ripples, ACPICA/Linux divergence cleanup\n - cpuidle evolving, more ARM use\n - thermal sub-system evolving, ditto\n - assorted other PM bits\n\nFix up conflicts in various cpuidle implementations due to ARM cpuidle\ncleanups (ARM at91 self-refresh and cpu idle code rewritten into\n\"standby\" in asm conflicting with the consolidation of cpuidle time\nkeeping), trivial SH include file context conflict and RCU tracing fixes\nin generic code.\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (77 commits)\n  ACPI throttling: fix endian bug in acpi_read_throttling_status()\n  Disable MCP limit exceeded messages from Intel IPS driver\n  ACPI video: Don\u0027t start video device until its associated input device has been allocated\n  ACPI video: Harden video bus adding.\n  ACPI: Add support for exposing BGRT data\n  ACPI: export acpi_kobj\n  ACPI: Fix logic for removing mappings in \u0027acpi_unmap\u0027\n  CPER failed to handle generic error records with multiple sections\n  ACPI: Clean redundant codes in scan.c\n  ACPI: Fix unprotected smp_processor_id() in acpi_processor_cst_has_changed()\n  ACPI: consistently use should_use_kmap()\n  PNPACPI: Fix device ref leaking in acpi_pnp_match\n  ACPI: Fix use-after-free in acpi_map_lsapic\n  ACPI: processor_driver: add missing kfree\n  ACPI, APEI: Fix incorrect APEI register bit width check and usage\n  Update documentation for parameter *notrigger* in einj.txt\n  ACPI, APEI, EINJ, new parameter to control trigger action\n  ACPI, APEI, EINJ, limit the range of einj_param\n  ACPI, APEI, Fix ERST header length check\n  cpuidle: power_usage should be declared signed integer\n  ...\n"
    },
    {
      "commit": "02401c06b7f6bec65f314e3cec7894502c973501",
      "tree": "3dd8ec58dc23c93b5dd50ce628953669883e33ef",
      "parents": [
        "1a022e3f1be11730bd8747b1af96a0274bf6356e"
      ],
      "author": {
        "name": "Boris Ostrovsky",
        "email": "boris.ostrovsky@amd.com",
        "time": "Tue Mar 13 19:55:10 2012 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 03:23:30 2012 -0400"
      },
      "message": "cpuidle: power_usage should be declared signed integer\n\npower_usage is always assigned a negative value and should be declared\na signed integer\n\nSigned-off-by: Boris Ostrovsky \u003cboris.ostrovsky@amd.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "1a022e3f1be11730bd8747b1af96a0274bf6356e",
      "tree": "d3c95b68626ac7d963ac3a85a07dae1cfc011906",
      "parents": [
        "e07510585a88c0f6c6c728e2e006aa913496d4ae"
      ],
      "author": {
        "name": "Boris Ostrovsky",
        "email": "boris.ostrovsky@amd.com",
        "time": "Tue Mar 13 19:55:09 2012 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 03:23:01 2012 -0400"
      },
      "message": "idle, x86: Allow off-lined CPU to enter deeper C states\n\nCurrently when a CPU is off-lined it enters either MWAIT-based idle or,\nif MWAIT is not desired or supported, HLT-based idle (which places the\nprocessor in C1 state). This patch allows processors without MWAIT\nsupport to stay in states deeper than C1.\n\nSigned-off-by: Boris Ostrovsky \u003cboris.ostrovsky@amd.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "fc850f39ea54c760ce438a601cfea8ab80c4898e",
      "tree": "3f413ea8c13cc12f7f6af16bc198a17914695f1b",
      "parents": [
        "3a53396b0381ec9d5180fd8fe7a681c8ce95fd9a"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Mon Mar 26 14:51:26 2012 +0200"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 01:55:04 2012 -0400"
      },
      "message": "cpuidle: use the driver\u0027s state_count as default\n\nIf the state_count is not initialized for the device use\nthe driver\u0027s state count as the default. That will prevent\nto add it manually in the cpuidle driver initialization\nroutine and will save us from duplicate line of code.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "3a53396b0381ec9d5180fd8fe7a681c8ce95fd9a",
      "tree": "60a0770554c64250900ccf827ff868b483ae92fe",
      "parents": [
        "6a6ea0acc9375571a13aa8c4e105a0807e1c16a4"
      ],
      "author": {
        "name": "ShuoX Liu",
        "email": "shuox.liu@intel.com",
        "time": "Wed Mar 28 15:19:11 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 01:52:58 2012 -0400"
      },
      "message": "cpuidle: add a sysfs entry to disable specific C state for debug purpose.\n\nSome C states of new CPU might be not good.  One reason is BIOS might\nconfigure them incorrectly.  To help developers root cause it quickly, the\npatch adds a new sysfs entry, so developers could disable specific C state\nmanually.\n\nIn addition, C state might have much impact on performance tuning, as it\ntakes much time to enter/exit C states, which might delay interrupt\nprocessing.  With the new debug option, developers could check if a deep C\nstate could impact performance and how much impact it could cause.\n\nAlso add this option in Documentation/cpuidle/sysfs.txt.\n\n[akpm@linux-foundation.org: check kstrtol return value]\nSigned-off-by: ShuoX Liu \u003cshuox.liu@intel.com\u003e\nReviewed-by: Yanmin Zhang \u003cyanmin_zhang@intel.com\u003e\nReviewed-and-Tested-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "e1689795a784a7c41ac4cf9032794986b095a133",
      "tree": "19619c24579875e344af337c86c6a604425627b5",
      "parents": [
        "c16fa4f2ad19908a47c63d8fa436a1178438c7e7"
      ],
      "author": {
        "name": "Robert Lee",
        "email": "rob.lee@linaro.org",
        "time": "Tue Mar 20 15:22:42 2012 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Mar 21 01:59:40 2012 -0400"
      },
      "message": "cpuidle: Add common time keeping and irq enabling\n\nMake necessary changes to implement time keeping and irq enabling\nin the core cpuidle code.  This will allow the removal of these\nfunctionalities from various platform cpuidle implementations whose\ntimekeeping and irq enabling follows the form in this common code.\n\nSigned-off-by: Robert Lee \u003crob.lee@linaro.org\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nTested-by: Amit Daniel \u003camit.kachhap@linaro.org\u003e\nTested-by: Robert Lee \u003crob.lee@linaro.org\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nReviewed-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nReviewed-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nAcked-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "737f24bda723fdf89ecaacb99fa2bf5683c32799",
      "tree": "35495fff3e9956679cb5468e74e6814c8e44ee66",
      "parents": [
        "8eedce996556d7d06522cd3a0e6069141c8dffe0",
        "b7c924274c456499264d1cfa3d44063bb11eb5db"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 09:20:08 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 05 09:20:08 2012 +0100"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nConflicts:\n\ttools/perf/builtin-record.c\n\ttools/perf/builtin-top.c\n\ttools/perf/perf.h\n\ttools/perf/util/top.h\n\nMerge reason: resolve these cherry-picking conflicts.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa491ad3d4bf3c7994a419b3bb1c91b9b4fd2a8a",
      "tree": "568ff773f9fb3725b538b63967b3099a4b8bdea8",
      "parents": [
        "922b9f86a020258d3ea3bfed27251efaed7a03a3"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Feb 22 16:04:24 2012 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Feb 22 16:48:51 2012 +1100"
      },
      "message": "cpuidle: Default y on powerpc pSeries\n\nWe moved all our pSeries idle loops to the cpu idle framework\nso we really want it to come up by default.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "76027ea863fc02698da536b4970784eed3caa635",
      "tree": "aef940211f8e9e78b13df1be92517ad51a76089e",
      "parents": [
        "484546509ce5d49d43ec0a6eb2141c6bf3362bfc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 07 09:46:01 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Feb 13 09:14:46 2012 -0500"
      },
      "message": "cpuidle/tracing: Denote the tracepoints as being in rcu_idle_exit() section\n\nAs the tracepoints in the cpuidle code are called when rcu_idle_exit() is in\neffect, the _rcuidle() version must be used, otherwise the rcu_read_lock()s\nthat protect the tracepoint will not be honored.\n\nCc: Len Brown \u003clen.brown@intel.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8a25a2fd126c621f44f3aeaef80d51f00fc11639",
      "tree": "41694ab1a9c82a7a02d9cd33c929fd039c98c815",
      "parents": [
        "cb0c05c5fae12eeb7c85c205578df277bd706155"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Dec 21 14:29:42 2011 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 21 14:29:42 2011 -0800"
      },
      "message": "cpu: convert \u0027cpu\u0027 and \u0027machinecheck\u0027 sysdev_class to a regular subsystem\n\nThis moves the \u0027cpu sysdev_class\u0027 over to a regular \u0027cpu\u0027 subsystem\nand converts the devices to regular devices. The sysdev drivers are\nimplemented as subsystem interfaces now.\n\nAfter all sysdev classes are ported to regular driver core entities, the\nsysdev implementation will be entirely removed from the kernel.\n\nUserspace relies on events and generic sysfs subsystem infrastructure\nfrom sysdev devices, which are made available with this conversion.\n\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Borislav Petkov \u003cbp@amd64.org\u003e\nCc: Tigran Aivazian \u003ctigran@aivazian.fsnet.co.uk\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Zhang Rui \u003crui.zhang@intel.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: \"Srivatsa S. Bhat\" \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "3c00303206c3a1ccd86579efdc90bc35f140962e",
      "tree": "66170c84b5ddaeb102aea3530517a26657b6ea29",
      "parents": [
        "83dbb15e9cd78a3619e3db36777e2f81d09b2914",
        "efb90582c575084723cc14302c1300cb26c7e01f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:13:52 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:13:52 2011 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:\n  cpuidle: Single/Global registration of idle states\n  cpuidle: Split cpuidle_state structure and move per-cpu statistics fields\n  cpuidle: Remove CPUIDLE_FLAG_IGNORE and dev-\u003eprepare()\n  cpuidle: Move dev-\u003elast_residency update to driver enter routine; remove dev-\u003elast_state\n  ACPI: Fix CONFIG_ACPI_DOCK\u003dn compiler warning\n  ACPI: Export FADT pm_profile integer value to userspace\n  thermal: Prevent polling from happening during system suspend\n  ACPI: Drop ACPI_NO_HARDWARE_INIT\n  ACPI atomicio: Convert width in bits to bytes in __acpi_ioremap_fast()\n  PNPACPI: Simplify disabled resource registration\n  ACPI: Fix possible recursive locking in hwregs.c\n  ACPI: use kstrdup()\n  mrst pmu: update comment\n  tools/power turbostat: less verbose debugging\n"
    },
    {
      "commit": "46bcfad7a819bd17ac4e831b04405152d59784ab",
      "tree": "20041e788154d103edff2699f88d4a30320e3ee2",
      "parents": [
        "4202735e8ab6ecfb0381631a0d0b58fefe0bd4e2"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:42 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:58 2011 -0500"
      },
      "message": "cpuidle: Single/Global registration of idle states\n\nThis patch makes the cpuidle_states structure global (single copy)\ninstead of per-cpu. The statistics needed on per-cpu basis\nby the governor are kept per-cpu. This simplifies the cpuidle\nsubsystem as state registration is done by single cpu only.\nHaving single copy of cpuidle_states saves memory. Rare case\nof asymmetric C-states can be handled within the cpuidle driver\nand architectures such as POWER do not have asymmetric C-states.\n\nHaving single/global registration of all the idle states,\ndynamic C-state transitions on x86 are handled by\nthe boot cpu. Here, the boot cpu  would disable all the devices,\nre-populate the states and later enable all the devices,\nirrespective of the cpu that would receive the notification first.\n\nReference:\nhttps://lkml.org/lkml/2011/4/25/83\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4202735e8ab6ecfb0381631a0d0b58fefe0bd4e2",
      "tree": "189e5aab466995128c5a9d5a2a4075a5db530674",
      "parents": [
        "b25edc42bfb9602f0503474b2c94701d5536ce60"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:33 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:49 2011 -0500"
      },
      "message": "cpuidle: Split cpuidle_state structure and move per-cpu statistics fields\n\nThis is the first step towards global registration of cpuidle\nstates. The statistics used primarily by the governor are per-cpu\nand have to be split from rest of the fields inside cpuidle_state,\nwhich would be made global i.e. single copy. The driver_data field\nis also per-cpu and moved.\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "b25edc42bfb9602f0503474b2c94701d5536ce60",
      "tree": "5d3b8634606daa99fe5dc86ade108400ecf3a5fd",
      "parents": [
        "e978aa7d7d57d04eb5f88a7507c4fb98577def77"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:24 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:43 2011 -0500"
      },
      "message": "cpuidle: Remove CPUIDLE_FLAG_IGNORE and dev-\u003eprepare()\n\nThe cpuidle_device-\u003eprepare() mechanism causes updates to the\ncpuidle_state[].flags, setting and clearing CPUIDLE_FLAG_IGNORE\nto tell the governor not to chose a state on a per-cpu basis at\nrun-time. State demotion is now handled by the driver and it returns\nthe actual state entered. Hence, this mechanism is not required.\nAlso this removes per-cpu flags from cpuidle_state enabling\nit to be made global.\n\nReference:\nhttps://lkml.org/lkml/2011/3/25/52\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "e978aa7d7d57d04eb5f88a7507c4fb98577def77",
      "tree": "d6d6dfe1dba4d4749c7eafe348351aa499c3c5eb",
      "parents": [
        "c3b92c8787367a8bb53d57d9789b558f1295cc96"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:09 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:30 2011 -0500"
      },
      "message": "cpuidle: Move dev-\u003elast_residency update to driver enter routine; remove dev-\u003elast_state\n\nCpuidle governor only suggests the state to enter using the\ngovernor-\u003eselect() interface, but allows the low level driver to\noverride the recommended state. The actual entered state\nmay be different because of software or hardware demotion. Software\ndemotion is done by the back-end cpuidle driver and can be accounted\ncorrectly. Current cpuidle code uses last_state field to capture the\nactual state entered and based on that updates the statistics for the\nstate entered.\n\nIdeally the driver enter routine should update the counters,\nand it should return the state actually entered rather than the time\nspent there. The generic cpuidle code should simply handle where\nthe counters live in the sysfs namespace, not updating the counters.\n\nReference:\nhttps://lkml.org/lkml/2011/3/25/52\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "70e522a02838e52ca007d3f183171fd9324eceb4",
      "tree": "e889f61014e95da2ac41185a7686d911e0f70b66",
      "parents": [
        "884b17e109d61e95ee4c652cf6873341bf1dca63"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Aug 29 17:52:39 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:31 2011 -0400"
      },
      "message": "cpuidle: ladder.c needs module.h and not just moduleparam.h\n\nThis file has module_init/exit and MODULE_LICENSE, and so it\nneeds the full module.h header.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "884b17e109d61e95ee4c652cf6873341bf1dca63",
      "tree": "3d78863d2c13a61551ecd4fc498645ed2a3a0c95",
      "parents": [
        "93cf5d75b9d0b703ca8f4f8f98303ad77ab20d26"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Aug 29 17:52:39 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:30 2011 -0400"
      },
      "message": "cpuidle: Add module.h to drivers/cpuidle files as required.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "e8db0be1245de16a6cc6365506abc392c3c212d4",
      "tree": "01cf446568080c06c8797262554f3b0f758ae137",
      "parents": [
        "b5e8d269d814763d597ccc0108d1fa6639ad35a1"
      ],
      "author": {
        "name": "Jean Pihet",
        "email": "j-pihet@ti.com",
        "time": "Thu Aug 25 15:35:03 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:35:03 2011 +0200"
      },
      "message": "PM QoS: Move and rename the implementation files\n\nThe PM QoS implementation files are better named\nkernel/power/qos.c and include/linux/pm_qos.h.\n\nThe PM QoS support is compiled under the CONFIG_PM option.\n\nSigned-off-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nAcked-by: markgross \u003cmarkgross@thegnar.org\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a0bfa1373859e9d11dc92561a8667588803e42d8",
      "tree": "ef5768a313ac16a211830efc3edb9ca95487cb6a",
      "parents": [
        "4bfc8288bc4a64529c5547d17349a2a1f4675507"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 01 19:34:59 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 19:06:37 2011 -0400"
      },
      "message": "cpuidle: stop depending on pm_idle\n\ncpuidle users should call cpuidle_call_idle() directly\nrather than via (pm_idle)() function pointer.\n\nArchitecture may choose to continue using (pm_idle)(),\nbut cpuidle need not depend on it:\n\n  my_arch_cpu_idle()\n\t...\n\tif(cpuidle_call_idle())\n\t\tpm_idle();\n\ncc: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\ncc: Paul Mundt \u003clethal@linux-sh.org\u003e\ncc: x86@kernel.org\nAcked-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d91ee5863b71e8c90eaf6035bff3078a85e2e7b5",
      "tree": "7c4972d8d6f614f656720ec686a6288de68f4af3",
      "parents": [
        "62027aea23fcd14478abdddd3b74a4e0f5fb2984"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 01 18:28:35 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 19:06:36 2011 -0400"
      },
      "message": "cpuidle: replace xen access to x86 pm_idle and default_idle\n\nWhen a Xen Dom0 kernel boots on a hypervisor, it gets access\nto the raw-hardware ACPI tables.  While it parses the idle tables\nfor the hypervisor\u0027s beneift, it uses HLT for its own idle.\n\nRather than have xen scribble on pm_idle and access default_idle,\nhave it simply disable_cpuidle() so acpi_idle will not load and\narchitecture default HLT will be used.\n\ncc: xen-devel@lists.xensource.com\nTested-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "62027aea23fcd14478abdddd3b74a4e0f5fb2984",
      "tree": "1aaa5c1872e296f3448ae6c126175ac9d998e3b4",
      "parents": [
        "6dccf9c508d5d773859df1cc2dce75c5b19e35a0"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 01 18:13:10 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 19:06:36 2011 -0400"
      },
      "message": "cpuidle: create bootparam \"cpuidle.off\u003d1\"\n\nuseful for disabling cpuidle to fall back\nto architecture-default idle loop\n\ncpuidle drivers and governors will fail to register.\non x86 they\u0027ll say so:\n\nintel_idle: intel_idle yielding to (null)\nACPI: acpi_idle yielding to (null)\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "f310642123e0d32d919c60ca3fab5acd130c4ba3",
      "tree": "f3844152e2e8c0fdd01621a400f84c8a159252a0",
      "parents": [
        "ef1d57599dc904fdb31b8e9b5336350d21a1fde1",
        "5d4c47e0195b989f284907358bd5c268a44b91c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "message": "Merge branch \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6\n\n* \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:\n  x86 idle: deprecate mwait_idle() and \"idle\u003dmwait\" cmdline param\n  x86 idle: deprecate \"no-hlt\" cmdline param\n  x86 idle APM: deprecate CONFIG_APM_CPU_IDLE\n  x86 idle floppy: deprecate disable_hlt()\n  x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it\n  x86 idle: clarify AMD erratum 400 workaround\n  idle governor: Avoid lock acquisition to read pm_qos before entering idle\n  cpuidle: menu: fixed wrapping timers at 4.294 seconds\n"
    },
    {
      "commit": "7467571f4480b273007517b26297c07154c73924",
      "tree": "e933b8cff072f5ec389cd5e20c85e756e49cafeb",
      "parents": [
        "521cb40b0c44418a4fd36dc633f575813d59a43d"
      ],
      "author": {
        "name": "Tero Kristo",
        "email": "tero.kristo@nokia.com",
        "time": "Thu Feb 24 17:19:23 2011 +0200"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun May 29 00:35:47 2011 -0400"
      },
      "message": "cpuidle: menu: fixed wrapping timers at 4.294 seconds\n\nCpuidle menu governor is using u32 as a temporary datatype for storing\nnanosecond values which wrap around at 4.294 seconds. This causes errors\nin predicted sleep times resulting in higher than should be C state\nselection and increased power consumption. This also breaks cpuidle\nstate residency statistics.\n\ncc: stable@kernel.org # .32.x through .39.x\nSigned-off-by: Tero Kristo \u003ctero.kristo@nokia.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "0a9d59a2461477bd9ed143c01af9df3f8f00fa81",
      "tree": "df997d1cfb0786427a0df1fbd6f0640fa4248cf4",
      "parents": [
        "a23ce6da9677d245aa0aadc99f4197030350ab54",
        "795abaf1e4e188c4171e3cd3dbb11a9fcacaf505"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 15 10:24:31 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 15 10:24:31 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "42b16b3fbb5ee4555f5dee6220f3ccaa6e1ebe47",
      "tree": "966c1266afca5dd0e59cace37f7cd49577bdf0e2",
      "parents": [
        "f0940cee222790e6e995a23f25c4ffb23f939a24"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Jan 17 00:09:38 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jan 19 15:43:08 2011 +0100"
      },
      "message": "Kill off warning: ‘inline’ is not at beginning of declaration\n\nFix a bunch of\n\twarning: ‘inline’ is not at beginning of declaration\nmessages when building a \u0027make allyesconfig\u0027 kernel with -Wextra.\n\nThese warnings are trivial to kill, yet rather annoying when building with\n-Wextra.\nThe more we can cut down on pointless crap like this the better (IMHO).\n\nA previous patch to do this for a \u0027allnoconfig\u0027 build has already been\nmerged. This just takes the cleanup a little further.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "43952886f0b8b3c344c3392b88de067d5fa5419a",
      "tree": "c1a738f11a479246c09976902be5b73aaf731722",
      "parents": [
        "56dbed129df3fdd4caf9018b6e7599ee258a5420",
        "f77cfe4ea21760268c0277fa3e4b02dfd2a2c2f4"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 18:06:19 2011 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 18:06:19 2011 -0500"
      },
      "message": "Merge branch \u0027cpuidle-perf-events\u0027 into idle-test\n"
    },
    {
      "commit": "56dbed129df3fdd4caf9018b6e7599ee258a5420",
      "tree": "b902491aef3a99efe0d9d49edd0f6e414dba654f",
      "parents": [
        "2a2d31c8dc6f1ebcf5eab1d93a0cb0fb4ed57c7c",
        "f878133bf022717b880d0e0995b8f91436fd605c"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 18:06:06 2011 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 18:06:06 2011 -0500"
      },
      "message": "Merge branch \u0027linus\u0027 into idle-test\n"
    },
    {
      "commit": "f77cfe4ea21760268c0277fa3e4b02dfd2a2c2f4",
      "tree": "ffd83ee874d1cbe062cd70cade50c017725ba586",
      "parents": [
        "f878133bf022717b880d0e0995b8f91436fd605c"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Jan 07 11:29:44 2011 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 18:05:16 2011 -0500"
      },
      "message": "cpuidle/x86/perf: fix power:cpu_idle double end events and throw cpu_idle events from the cpuidle layer\n\nCurrently intel_idle and acpi_idle driver show double cpu_idle \"exit idle\"\nevents -\u003e this patch fixes it and makes cpu_idle events throwing less complex.\n\nIt also introduces cpu_idle events for all architectures which use\nthe cpuidle subsystem, namely:\n  - arch/arm/mach-at91/cpuidle.c\n  - arch/arm/mach-davinci/cpuidle.c\n  - arch/arm/mach-kirkwood/cpuidle.c\n  - arch/arm/mach-omap2/cpuidle34xx.c\n  - arch/drivers/acpi/processor_idle.c (for all cases, not only mwait)\n  - arch/x86/kernel/process.c (did throw events before, but was a mess)\n  - drivers/idle/intel_idle.c (did throw events before)\n\nConvention should be:\nFire cpu_idle events inside the current pm_idle function (not somewhere\ndown the the callee tree) to keep things easy.\n\nCurrent possible pm_idle functions in X86:\nc1e_idle, poll_idle, cpuidle_idle_call, mwait_idle, default_idle\n-\u003e this is really easy is now.\n\nThis affects userspace:\nThe type field of the cpu_idle power event can now direclty get\nmapped to:\n/sys/devices/system/cpu/cpuX/cpuidle/stateX/{name,desc,usage,time,...}\ninstead of throwing very CPU/mwait specific values.\nThis change is not visible for the intel_idle driver.\nFor the acpi_idle driver it should only be visible if the vendor\nmisses out C-states in his BIOS.\nAnother (perf timechart) patch reads out cpuidle info of cpu_idle\nevents from:\n/sys/.../cpuidle/stateX/*, then the cpuidle events are mapped\nto the correct C-/cpuidle state again, even if e.g. vendors miss\nout C-states in their BIOS and for example only export C1 and C3.\n-\u003e everything is fine.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nCC: Robert Schoene \u003crobert.schoene@tu-dresden.de\u003e\nCC: Jean Pihet \u003cj-pihet@ti.com\u003e\nCC: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCC: linux-pm@lists.linux-foundation.org\nCC: linux-acpi@vger.kernel.org\nCC: linux-kernel@vger.kernel.org\nCC: linux-perf-users@vger.kernel.org\nCC: linux-omap@vger.kernel.org\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d247632c08c674864d438733280422ddb7130ff8",
      "tree": "d9c759480147cd867b72ceb8625554b2e7b550ed",
      "parents": [
        "0aae9f923bcc476a8e4725dd3ac37547b9816ee5"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 02:34:59 2011 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 12:47:31 2011 -0500"
      },
      "message": "cpuidle: delete NOP CPUIDLE_FLAG_POLL\n\nit serves no purpose\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "720f1c3010db6a411358b962a2007969117840bc",
      "tree": "aee96003008b8cb5873d2e0adc4188bdebef2cfa",
      "parents": [
        "d18960494f65ca4fa0d67c865aaca99452070d15"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Jan 07 11:29:43 2011 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 12:47:31 2011 -0500"
      },
      "message": "cpuidle: Rename X86 specific idle poll state[0] from C0 to POLL\n\nC0 means and is well know as \"not idle\".\nAll documentation out there uses this term as \"running\"/\"not idle\"\nstate. Also Linux userspace tools (e.g. cpufreq-aperf and turbostat)\nshow C0 residency which there is correct, but means something totally\nelse than cpuidle \"POLL\" state.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d8c216cfa57e8a579f41729cbb88c97835d9ac8d",
      "tree": "0085ebf22bf3a05607e512102a3dab065c5514a9",
      "parents": [
        "ddbd550d503c9cdefcd6674a0ef168d57d3f0917"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 08 00:29:20 2011 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 12:47:30 2011 -0500"
      },
      "message": "cpuidle: Make cpuidle_enable_device() call poll_idle_init()\n\nThe following scenario is possible with the current cpuidle code and\nthe ACPI cpuidle driver:\n(1) acpi_processor_cst_has_changed() is called,\n(2) cpuidle_disable_device() is called,\n(3) cpuidle_remove_state_sysfs() is called to remove the (presumably\n    outdated) states info from sysfs,\n(3) acpi_processor_get_power_info() is called, the first entry in the\n    pr-\u003epower.states[] table is filled with zeros,\n(4) acpi_processor_setup_cpuidle() is called and it doesn\u0027t fill the\n    first entry in pr-\u003epower.states[],\n(5) cpuidle_enable_device() is called,\n(6) __cpuidle_register_device() is _not_ called, since the device has\n    already been registered,\n(7) Consequently, poll_idle_init() is _not_ called either,\n(8) cpuidle_add_state_sysfs() is called to create the sysfs attributes\n    for the new states and it uses the bogus first table entry from\n    acpi_processor_get_power_info() for creating state0.\n\nThis problem is avoided if cpuidle_enable_device()\nunconditionally calls poll_idle_init().\n\nReported-by: Len Brown \u003clen.brown@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\ncc: stable@kernel.org\n"
    },
    {
      "commit": "72eb6a791459c87a0340318840bb3bd9252b627b",
      "tree": "3bfb8ad99f9c7e511f37f72d57b56a2cea06d753",
      "parents": [
        "23d69b09b78c4876e134f104a3814c30747c53f1",
        "55ee4ef30241a62b700f79517e6d5ef2ddbefa67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (30 commits)\n  gameport: use this_cpu_read instead of lookup\n  x86: udelay: Use this_cpu_read to avoid address calculation\n  x86: Use this_cpu_inc_return for nmi counter\n  x86: Replace uses of current_cpu_data with this_cpu ops\n  x86: Use this_cpu_ops to optimize code\n  vmstat: User per cpu atomics to avoid interrupt disable / enable\n  irq_work: Use per cpu atomics instead of regular atomics\n  cpuops: Use cmpxchg for xchg to avoid lock semantics\n  x86: this_cpu_cmpxchg and this_cpu_xchg operations\n  percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support\n  percpu,x86: relocate this_cpu_add_return() and friends\n  connector: Use this_cpu operations\n  xen: Use this_cpu_inc_return\n  taskstats: Use this_cpu_ops\n  random: Use this_cpu_inc_return\n  fs: Use this_cpu_inc_return in buffer.c\n  highmem: Use this_cpu_xx_return() operations\n  vmstat: Use this_cpu_inc_return for vm statistics\n  x86: Support for this_cpu_add, sub, dec, inc_return\n  percpu: Generic support for this_cpu_add, sub, dec, inc_return\n  ...\n\nFixed up conflicts: in arch/x86/kernel/{apic/nmi.c, apic/x2apic_uv_x.c, process.c}\nas per Tejun.\n"
    },
    {
      "commit": "25e41933b58777f2d020c3b0186b430ea004ec28",
      "tree": "a4ea8bb52509139b52c35d540928c12b33098f40",
      "parents": [
        "61a0d49c33c7fd57c14895e5b0760bd02b65ac1f"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Mon Jan 03 17:50:44 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 04 08:16:54 2011 +0100"
      },
      "message": "perf: Clean up power events by introducing new, more generic ones\n\nAdd these new power trace events:\n\n power:cpu_idle\n power:cpu_frequency\n power:machine_suspend\n\nThe old C-state/idle accounting events:\n  power:power_start\n  power:power_end\n\nHave now a replacement (but we are still keeping the old\ntracepoints for compatibility):\n\n  power:cpu_idle\n\nand\n  power:power_frequency\n\nis replaced with:\n  power:cpu_frequency\n\npower:machine_suspend is newly introduced.\n\nJean Pihet has a patch integrated into the generic layer\n(kernel/power/suspend.c) which will make use of it.\n\nthe type\u003d field got removed from both, it was never\nused and the type is differed by the event type itself.\n\nperf timechart userspace tool gets adjusted in a separate patch.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Jean Pihet \u003cjean.pihet@newoldbits.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: rjw@sisk.pl\nLKML-Reference: \u003c1294073445-14812-3-git-send-email-trenn@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c1290072314-31155-2-git-send-email-trenn@suse.de\u003e\n"
    },
    {
      "commit": "4a6f4fe8377720e5a279fdbb769946c242e936d3",
      "tree": "9684b9d39fe8b3aa620465ca0a51e4aacbfdd633",
      "parents": [
        "12938a9220a38d555e38dc9b40021e664b99a1f1"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Mon Dec 06 11:16:24 2010 -0600"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Dec 17 15:07:18 2010 +0100"
      },
      "message": "drivers: 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 single\nread instruction with implied address calculation to access the correct per cpu\ninstance.\n\nHowever, the address of a per cpu variable passed to __this_cpu_read() cannot be\ndetermed (since its an implied address conversion through segment prefixes).\nTherefore apply this only to uses of __get_cpu_var where the addres of the\nvariable is not used.\n\nV3-\u003eV4:\n\t- Move one instance of this_cpu_inc_return to a later patch\n\t  so that this one can go in without percpu infrastructrure\n\t  changes.\n\nSedat: fixed compile failure caused by an extra \u0027)\u0027.\n\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Sedat Dilek \u003csedat.dilek@gmail.com\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": "20e3341bb138bc9860adea4d76707470357b76ab",
      "tree": "0f04ac94442c3049960c35a34983728a57412185",
      "parents": [
        "899611ee7d373e5eeda08e9a8632684e1ebbbf00"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Sep 07 12:53:49 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Sep 28 23:30:38 2010 -0400"
      },
      "message": "cpuidle: Fix typos\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "71abbbf856a0e70ca478782505c800891260ba84",
      "tree": "00ae494afd2868056753984035e1bfc0c2040257",
      "parents": [
        "d2997b1042ec150616c1963b5e5e919ffd0b0ebf"
      ],
      "author": {
        "name": "Ai Li",
        "email": "aili@codeaurora.org",
        "time": "Mon Aug 09 17:20:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:04 2010 -0700"
      },
      "message": "cpuidle: extend cpuidle and menu governor to handle dynamic states\n\nOn some SoC chips, HW resources may be in use during any particular idle\nperiod.  As a consequence, the cpuidle states that the SoC is safe to\nenter can change from idle period to idle period.  In addition, the\nlatency and threshold of each cpuidle state can vary, depending on the\noperating condition when the CPU becomes idle, e.g.  the current cpu\nfrequency, the current state of the HW blocks, etc.\n\ncpuidle core and the menu governor, in the current form, are geared\ntowards cpuidle states that are static, i.e.  the availabiltiy of the\nstates, their latencies, their thresholds are non-changing during run\ntime.  cpuidle does not provide any hook that cpuidle drivers can use to\nadjust those values on the fly for the current idle period before the menu\ngovernor selects the target cpuidle state.\n\nThis patch extends cpuidle core and the menu governor to handle states\nthat are dynamic.  There are three additions in the patch and the patch\nmaintains backwards-compatibility with existing cpuidle drivers.\n\n1) add prepare() to struct cpuidle_device.  A cpuidle driver can hook\n   into the callback and cpuidle will call prepare() before calling the\n   governor\u0027s select function.  The callback gives the cpuidle driver a\n   chance to update the dynamic information of the cpuidle states for the\n   current idle period, e.g.  state availability, latencies, thresholds,\n   power values, etc.\n\n2) add CPUIDLE_FLAG_IGNORE as one of the state flags.  In the prepare()\n   function, a cpuidle driver can set/clear the flag to indicate to the\n   menu governor whether a cpuidle state should be ignored, i.e.  not\n   available, during the current idle period.\n\n3) add power_specified bit to struct cpuidle_device.  The menu governor\n   currently assumes that the cpuidle states are arranged in the order of\n   increasing latency, threshold, and power savings.  This is true or can\n   be made true for static states.  Once the state parameters are dynamic,\n   the latencies, thresholds, and power savings for the cpuidle states can\n   increase or decrease by different amounts from idle period to idle\n   period.  So the assumption of increasing latency, threshold, and power\n   savings from Cn to C(n+1) can no longer be guaranteed.\n\nIt can be straightforward to calculate the power consumption of each\navailable state and to specify it in power_usage for the idle period.\nUsing the power_usage fields, the menu governor then selects the state\nthat has the lowest power consumption and that still satisfies all other\ncritieria.  The power_specified bit defaults to 0.  For existing cpuidle\ndrivers, cpuidle detects that power_specified is 0 and fills in a dummy\nset of power_usage values.\n\nSigned-off-by: Ai Li \u003caili@codeaurora.org\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f4f2723d08534fd4e407e1ef8500b0f4d12c30c",
      "tree": "3422ba34e7c6bde7e8d4ca1f1f1ed772efc5cc4c",
      "parents": [
        "6b72e3934b42930fd40fc42fe762d21be413301c"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Tue Apr 20 13:17:36 2010 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 03 13:47:05 2010 -0400"
      },
      "message": "[CPUFREQ] x86 cpufreq: Make trace_power_frequency cpufreq driver independent\n\nand fix the broken case if a core\u0027s frequency depends on others.\n\ntrace_power_frequency was only implemented in a rather ungeneric way\nin acpi-cpufreq driver\u0027s target() function only.\n-\u003e Move the call to trace_power_frequency to\n   cpufreq.c:cpufreq_notify_transition() where CPUFREQ_POSTCHANGE\n   notifier is triggered.\n   This will support power frequency tracing by all cpufreq drivers\n\ntrace_power_frequency did not trace frequency changes correctly when\nthe userspace governor was used or when CPU cores\u0027 frequency depend\non each other.\n-\u003e Moving this into the CPUFREQ_POSTCHANGE notifier and pass the cpu\n   which gets switched automatically fixes this.\n\nRobert Schoene provided some important fixes on top of my initial\nquick shot version which are integrated in this patch:\n- Forgot some changes in power_end trace (TP_printk/variable names)\n- Variable dummy in power_end must now be cpu_id\n- Use static 64 bit variable instead of unsigned int for cpu_id\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nCC: davej@redhat.com\nCC: arjan@infradead.org\nCC: linux-kernel@vger.kernel.org\nCC: robert.schoene@tu-dresden.de\nTested-by: robert.schoene@tu-dresden.de\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "8c215bd3890c347dfb6a2db4779755f8b9c298a9",
      "tree": "e6bd5de8a028babe9ec75f744977bd1424df106c",
      "parents": [
        "9715856922bf8475f5428c29b6f4a9eebc97d391"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jul 01 09:07:17 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 01 09:39:48 2010 +0200"
      },
      "message": "sched: Cure nr_iowait_cpu() users\n\nCommit 0224cf4c5e (sched: Intoduce get_cpu_iowait_time_us())\nbroke things by not making sure preemption was indeed disabled\nby the callers of nr_iowait_cpu() which took the iowait value of\nthe current cpu.\n\nThis resulted in a heap of preempt warnings. Cure this by making\nnr_iowait_cpu() take a cpu number and fix up the callers to pass\nin the right number.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: linux-pm@lists.linux-foundation.org\nLKML-Reference: \u003c1277968037.1868.120.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e4f2e5eaac8f5f903ca4a8cc944d26e68745d6bb",
      "tree": "1a8d89561fa5b231202d5287acc2683eccadee7f",
      "parents": [
        "9a90e09854a3c7cc603ab8fc9163f77bb1f66cfa",
        "2671717265ae6e720a9ba5f13fbec3a718983b65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 28 16:14:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 28 16:14:17 2010 -0700"
      },
      "message": "Merge branch \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6\n\n* \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:\n  intel_idle: native hardware cpuidle driver for latest Intel processors\n  ACPI: acpi_idle: touch TS_POLLING only in the non-MWAIT case\n  acpi_pad: uses MONITOR/MWAIT, so it doesn\u0027t need to clear TS_POLLING\n  sched: clarify commment for TS_POLLING\n  ACPI: allow a native cpuidle driver to displace ACPI\n  cpuidle: make cpuidle_curr_driver static\n  cpuidle: add cpuidle_unregister_driver() error check\n  cpuidle: fail to register if !CONFIG_CPU_IDLE\n"
    },
    {
      "commit": "752138df0dc2daaae09379c754caeb08c97905dc",
      "tree": "4908627df11ccb42570fc3525c560f89c444781c",
      "parents": [
        "c0d64cb031c21f163a0ec15cf10844bcf0ceedcf"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat May 22 16:57:26 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu May 27 21:06:58 2010 -0400"
      },
      "message": "cpuidle: make cpuidle_curr_driver static\n\ncpuidle_register_driver() sets cpuidle_curr_driver\ncpuidle_unregister_driver() clears cpuidle_curr_driver\n\nWe should\u0027t expose cpuidle_curr_driver to\npotential modification except via these interfaces.\nSo make it static and create cpuidle_get_driver() to observe it.\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "c0d64cb031c21f163a0ec15cf10844bcf0ceedcf",
      "tree": "ce65dc6b8cbda91e8c1f1c69753265618e8d9ae6",
      "parents": [
        "6b2c676bf32be91f43215d5874c07c1becaba013"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat May 22 16:34:10 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu May 27 13:04:04 2010 -0400"
      },
      "message": "cpuidle: add cpuidle_unregister_driver() error check\n\nAssure that cpuidle_unregister_driver() will not clobber\nthe registered driver if unregistered by somebody else.\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "1f85f87d4f81d1e5a2d502d48316a1bdc5acac0b",
      "tree": "ef9254e52665274ae4d0fd1381cc2ae5a48791f6",
      "parents": [
        "6cdafaae41d52e6ef9a5c5be23602ef083e4d0f9"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon May 24 14:32:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "cpuidle: add a repeating pattern detector to the menu governor\n\nCurrently, the menu governor uses the (corrected) next timer as key item\nfor predicting the idle duration.\n\nIt turns out that there are specific cases where this breaks down: There\nare cases where we have a very repetitive pattern of idle durations, where\nthe idle period is pretty much the same, for reasons completely unrelated\nto the next timer event.  Examples of such repeating patterns are network\nloads with irq mitigation, the mouse moving but in theory also the wifi\nbeacons.\n\nThis patch adds a relatively simple detector for such repeating patterns,\nwhere the standard deviation of the last 8 idle periods is compared to a\nthreshold.\n\nWith this extra predictor in place, measurements show that the DECAY\nfactor can now be increased (the decaying average will now decay slower)\nto get an even more stable result.\n\n[arjan@infradead.org: fix bug identified by Frank]\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nCc: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed77134bfccf5e75b6cbadab268e559dbe6a4ebb",
      "tree": "dae087a617ab3d9af8673d1905dbca3bcd57e89e",
      "parents": [
        "0fef8b1e83c4ab08cf1304dbebcfd749caf4f187"
      ],
      "author": {
        "name": "Mark Gross",
        "email": "mgross@linux.intel.com",
        "time": "Thu May 06 01:59:26 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon May 10 23:08:19 2010 +0200"
      },
      "message": "PM QOS update\n\nThis patch changes the string based list management to a handle base\nimplementation to help with the hot path use of pm-qos, it also renames\nmuch of the API to use \"request\" as opposed to \"requirement\" that was\nused in the initial implementation.  I did this because request more\naccurately represents what it actually does.\n\nAlso, I added a string based ABI for users wanting to use a string\ninterface.  So if the user writes 0xDDDDDDDD formatted hex it will be\naccepted by the interface.  (someone asked me for it and I don\u0027t think\nit hurts anything.)\n\nThis patch updates some documentation input I got from Randy.\n\nSigned-off-by: markgross \u003cmgross@linux.intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "1c6fe0364fa7bf28248488753ee0afb6b759cd04",
      "tree": "8bb0caf5efc652c18354a8694fc1e235f216d6ab",
      "parents": [
        "f1c448e0a9e99c76f4ece368714fb35a40a8daba"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat May 08 15:47:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 09 18:35:36 2010 -0700"
      },
      "message": "cpuidle: Fix incorrect optimization\n\ncommit 672917dcc78 (\"cpuidle: menu governor: reduce latency on exit\")\nadded an optimization, where the analysis on the past idle period moved\nfrom the end of idle, to the beginning of the new idle.\n\nUnfortunately, this optimization had a bug where it zeroed one key\nvariable for new use, that is needed for the analysis.  The fix is\nsimple, zero the variable after doing the work from the previous idle.\n\nDuring the audit of the code that found this issue, another issue was\nalso found; the -\u003emeasured_us data structure member is never set, a\nlocal variable is always used instead.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "52cf25d0ab7f78eeecc59ac652ed5090f69b619e",
      "tree": "031d1ffb3890bd69c0260c864c512e0be62ac05c",
      "parents": [
        "6c1733aca0b48db4d0e660d54976a1cca25b5eaf"
      ],
      "author": {
        "name": "Emese Revfy",
        "email": "re.emese@gmail.com",
        "time": "Tue Jan 19 02:58:23 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:49 2010 -0800"
      },
      "message": "Driver core: Constify struct sysfs_ops in struct kobj_type\n\nConstify struct sysfs_ops.\n\nThis is part of the ops structure constification\neffort started by Arjan van de Ven et al.\n\nBenefits of this constification:\n\n * prevents modification of data that is shared\n   (referenced) by many other structure instances\n   at runtime\n\n * detects/prevents accidental (but not intentional)\n   modification attempts on archs that enforce\n   read-only kernel data at runtime\n\n * potentially better optimized code as the compiler\n   can assume that the const data cannot be changed\n\n * the compiler/linker move const data into .rodata\n   and therefore exclude them from false sharing\n\nSigned-off-by: Emese Revfy \u003cre.emese@gmail.com\u003e\nAcked-by: David Teigland \u003cteigland@redhat.com\u003e\nAcked-by: Matt Domsch \u003cMatt_Domsch@dell.com\u003e\nAcked-by: Maciej Sosnowski \u003cmaciej.sosnowski@intel.com\u003e\nAcked-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c9be0a36f9bf392a7984473124a67a12964df11f",
      "tree": "23fcf49f277d9a093b2b29831811219410ad7b05",
      "parents": [
        "3d03ba4d1dd2246adff5a9ff1194a539b3bc05a7"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Tue Jan 05 12:47:58 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:47 2010 -0800"
      },
      "message": "sysdev: Pass attribute in sysdev_class attributes show/store\n\nPassing the attribute to the low level IO functions allows all kinds\nof cleanups, by sharing low level IO code without requiring\nan own function for every piece of data.\n\nAlso drivers can extend the attributes with own data fields\nand use that in the low level function.\n\nSimilar to sysdev_attributes and normal attributes.\n\nThis is a tree-wide sweep, converting everything in one go.\n\nNo functional changes in this patch other than passing the new\nargument everywhere.\n\nTested on x86, the non x86 parts are uncompiled.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "56e6943b41468826c26155139629c9a5379550ab",
      "tree": "a108d6fc93c34ebe205734a5775be5b77a4ff0b6",
      "parents": [
        "77079dbec721a282bf0931385ae10d77cdbac5af"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Fri Mar 05 13:42:30 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:28 2010 -0800"
      },
      "message": "cpuidle menu: remove 8 bytes of padding on 64 bit builds\n\nReorder struct menu_device to remove 8 bytes of padding on 64 bit builds.\nSize drops from 136 to 128 bytes, so possibly needing one fewer cache\nlines.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5787536edf18e33d06e2bf038bfd0910f4def213",
      "tree": "6d1874d02111cebc83fa1a6d1de3dedc0963ff53",
      "parents": [
        "006b4298f26984d514546fe4e53371761f66b643"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Fri Jan 08 14:43:08 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:34:07 2010 -0800"
      },
      "message": "drivers/cpuidle/governors/menu.c: fix undefined reference to `__udivdi3\u0027\n\nmenu: use proper 64 bit math\n\nThe new menu governor is incorrectly doing a 64 bit divide.  Compile\ntested only\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.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": "faa7b7ddca14887ac037f585d2fac7ca6c57037e",
      "tree": "a44e7785a83a9f778fe3acec2f6aa07630292b23",
      "parents": [
        "471452104b8520337ae2fb48c4e61cd4896e025d"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Dec 14 18:00:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:25 2009 -0800"
      },
      "message": "drivers/cpuidle: Move dereference after NULL test\n\nIt does not seem possible that ldev can be NULL, so drop the unnecessary\ntest.  If ldev can somehow be NULL, then the initialization of last_idx\nshould be moved below the test.\n\nA simplified version of the semantic match that detects this problem is as\nfollows (http://coccinelle.lip6.fr/):\n\n// \u003csmpl\u003e\n@match exists@\nexpression x, E;\nidentifier fld;\n@@\n\n* x-\u003efld\n  ... when !\u003d \\(x \u003d E\\|\u0026x\\)\n* x \u003d\u003d NULL\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "21ae2956ce289f61f11863cc67080f9a28101ae0",
      "tree": "c6f66176b5f151a1326879de334a94201eeb0f26",
      "parents": [
        "0e6779bbcb78b434efdc84fff1809e342684d6b3"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Wed Oct 07 15:21:09 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Nov 09 09:40:57 2009 +0100"
      },
      "message": "tree-wide: fix typos \"aquire\" -\u003e \"acquire\", \"cumsumed\" -\u003e \"consumed\"\n\nThis patch was generated by\n\n\tgit grep -E -i -l \u0027[Aa]quire\u0027 | xargs -r perl -p -i -e \u0027s/([Aa])quire/$1cquire/\u0027\n\nand the cumsumed was found by checking the diff for aquire.\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "246eb7f0ed1a8aeddec5313137767658f378949b",
      "tree": "25cfbdab4d133ebb1539b3c8b4e302f1ca7866b3",
      "parents": [
        "5e8d8f6f2844d4a663415c660ab5cc92e2e2477d"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@deeprootsystems.com",
        "time": "Mon Oct 26 16:50:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 29 07:39:31 2009 -0700"
      },
      "message": "cpuidle: always return with interrupts enabled\n\nIn the case where cpuidle_idle_call() returns before changing state due to\na need_resched(), it was returning with IRQs disabled.\n\nThe idle path assumes that the platform specific idle code returns with\ninterrupts enabled (although this too is undocumented AFAICT) and on ARM\nwe have a WARN_ON(!(irqs_disabled()) when returning from the idle loop, so\nthe user-visible effects were only a warning since interrupts were\neventually re-enabled later.\n\nOn x86, this same problem exists, but there is no WARN_ON() to detect it.\nAs on ARM, the interrupts are eventually re-enabled, so I\u0027m not sure of\nany actual bugs triggered by this.  It\u0027s primarily a\ncorrectness/consistency fix.\n\nThis patch ensures IRQs are (re)enabled before returning.\n\nReported-by: Hemanth V \u003chemanthv@ti.com\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nTested-by: Martin Michlmayr \u003ctbm@cyrius.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.31.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "672917dcc781ead7652a8b11b1fba14e38ac15b8",
      "tree": "c504b7f60737ba8d82eabfa662585d463ae5ea66",
      "parents": [
        "69d25870f20c4b2563304f2b79c5300dd60a067e"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Mon Sep 21 17:04:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:45 2009 -0700"
      },
      "message": "cpuidle: menu governor: reduce latency on exit\n\nMove the state residency accounting and statistics computation off the hot\nexit path.\n\nOn exit, the need to recompute statistics is recorded, and new statistics\nwill be computed when menu_select is called again.\n\nThe expected effect is to reduce processor wakeup latency from sleep\n(C-states).  We are speaking of few hundreds of cycles reduction out of a\nseveral microseconds latency (determined by the hardware transition), so\nit is difficult to measure.\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Adam Belay \u003cabelay@novell.com\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "69d25870f20c4b2563304f2b79c5300dd60a067e"
}
