)]}'
{
  "commit": "aa276e1cafb3ce9d01d1e837bcd67e92616013ac",
  "tree": "d0ecb8fe8ae70fdaed8d97d317199180882671b5",
  "parents": [
    "00dba56465228825ea806e3a7fc0aa6bba7bdc6c"
  ],
  "author": {
    "name": "Thomas Gleixner",
    "email": "tglx@linutronix.de",
    "time": "Mon Jun 09 19:15:00 2008 +0200"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Tue Jul 08 07:47:18 2008 +0200"
  },
  "message": "x86, clockevents: add C1E aware idle function\n\nC1E on AMD machines is like C3 but without control from the OS. Up to\nnow we disabled the local apic timer for those machines as it stops\nwhen the CPU goes into C1E. This excludes those machines from high\nresolution timers / dynamic ticks, which hurts especially X2 based\nlaptops.\n\nThe current boot time C1E detection has another, more serious flaw\nas well: some BIOSes do not enable C1E until the ACPI processor module\nis loaded. This causes systems to stop working after that point.\n\nTo work nicely with C1E enabled machines we use a separate idle\nfunction, which checks on idle entry whether C1E was enabled in the\nInterrupt Pending Message MSR. This allows us to do timer broadcasting\nfor C1E and covers the late enablement of C1E as well.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4b99b1bdeb6cbb090e5868138922b259da7d98fe",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/apic_32.c",
      "new_id": "c44206e731d4345c60e9dc06a46dd23002fd23ce",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/apic_32.c"
    },
    {
      "type": "modify",
      "old_id": "0633cfd0dc291a1310f0632e1012cf663b5e89a9",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/apic_64.c",
      "new_id": "a5cc8447cf4dde3cde1ea58bbb3620e828833e26",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/apic_64.c"
    },
    {
      "type": "modify",
      "old_id": "e76b49e7a916cf6f183769586c2e3a415774a853",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/amd.c",
      "new_id": "acc891ae590185b5392ed9cf59988bfd4576aee9",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/amd.c"
    },
    {
      "type": "modify",
      "old_id": "f5fc161d8f2a48979782ad78ee25227830094059",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/amd_64.c",
      "new_id": "f8d20588bde98b53b645833973f357166658468e",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/amd_64.c"
    },
    {
      "type": "modify",
      "old_id": "9fea14607dfea0f37ca968a2476fbe6d3c3b9d9f",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/process.c",
      "new_id": "68ad3539b143a57051d2b8b8f5939a474dac9917",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/process.c"
    },
    {
      "type": "modify",
      "old_id": "be9639a9a186244fef74318f901172415a7e9343",
      "old_mode": 33188,
      "old_path": "include/asm-x86/apic.h",
      "new_id": "3c387cda95fa2188051b8669b4ff3ea2825838a2",
      "new_mode": 33188,
      "new_path": "include/asm-x86/apic.h"
    },
    {
      "type": "modify",
      "old_id": "57a1f02e5ec07fc20a6715d40d7fe41855449727",
      "old_mode": 33188,
      "old_path": "kernel/time/tick-broadcast.c",
      "new_id": "67f80c2617096454a1d0b1f520825034f7c87dfc",
      "new_mode": 33188,
      "new_path": "kernel/time/tick-broadcast.c"
    }
  ]
}
