)]}'
{
  "commit": "dfde5d62ed9b28b0bda676c16e8cb635df244ef2",
  "tree": "12c690189fcc7155389860beae554199456b7d3e",
  "parents": [
    "a6f6e6e6ab464c9d1dff66570b78be2f66d8ba3d"
  ],
  "author": {
    "name": "Venkatesh Pallipadi",
    "email": "venkatesh.pallipadi@intel.com",
    "time": "Tue Oct 03 12:38:45 2006 -0700"
  },
  "committer": {
    "name": "Dave Jones",
    "email": "davej@redhat.com",
    "time": "Sun Oct 15 19:57:11 2006 -0400"
  },
  "message": "[CPUFREQ][8/8] acpi-cpufreq: Add support for freq feedback from hardware\n\nEnable ondemand governor and acpi-cpufreq to use IA32_APERF and IA32_MPERF MSR\nto get active frequency feedback for the last sampling interval. This will\nmake ondemand take right frequency decisions when hardware coordination of\nfrequency is going on.\n\nWithout APERF/MPERF, ondemand can take wrong decision at times due\nto underlying hardware coordination or TM2.\nExample:\n* CPU 0 and CPU 1 are hardware cooridnated.\n* CPU 1 running at highest frequency.\n* CPU 0 was running at highest freq. Now ondemand reduces it to\n  some intermediate frequency based on utilization.\n* Due to underlying hardware coordination with other CPU 1, CPU 0 continues to\n  run at highest frequency (as long as other CPU is at highest).\n* When ondemand samples CPU 0 again next time, without actual frequency\n  feedback from APERF/MPERF, it will think that previous frequency change\n  was successful and can go to wrong target frequency. This is because it\n  thinks that utilization it has got this sampling interval is when running at\n  intermediate frequency, rather than actual highest frequency.\n\nMore information about IA32_APERF IA32_MPERF MSR:\nRefer to IA-32 Intel® Architecture Software Developer\u0027s Manual at\nhttp://developer.intel.com\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8b0c7db85a474bd45f62a52fb05357b33fe4608f",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c",
      "new_id": "f8a8e46acb78b0cc895d3d4ca715e87ad57f1cea",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c"
    },
    {
      "type": "modify",
      "old_id": "86e69b7f9122d3639e834307c5a1662e33ee8986",
      "old_mode": 33188,
      "old_path": "drivers/cpufreq/cpufreq.c",
      "new_id": "56c433e64d586a03288cfb34cd4c6987e490286e",
      "new_mode": 33188,
      "new_path": "drivers/cpufreq/cpufreq.c"
    },
    {
      "type": "modify",
      "old_id": "bf8aa45d4f019cccd866103d278fa9e7bd4f669d",
      "old_mode": 33188,
      "old_path": "drivers/cpufreq/cpufreq_ondemand.c",
      "new_id": "291cfe9400a1f612c3c4c4bf60171cd2931bfd49",
      "new_mode": 33188,
      "new_path": "drivers/cpufreq/cpufreq_ondemand.c"
    },
    {
      "type": "modify",
      "old_id": "62b76cd96957da8ddfca0a0d1a1508b373be8ab5",
      "old_mode": 33188,
      "old_path": "include/asm-i386/msr.h",
      "new_id": "0aa15fc8d918e94f9f66494ddf1c2e31f3a1dfe7",
      "new_mode": 33188,
      "new_path": "include/asm-i386/msr.h"
    },
    {
      "type": "modify",
      "old_id": "37e194169fac2f2793894331eb9ec34d81401dfa",
      "old_mode": 33188,
      "old_path": "include/asm-x86_64/msr.h",
      "new_id": "e615822887373f5c6089b9cd3139161823fb25ab",
      "new_mode": 33188,
      "new_path": "include/asm-x86_64/msr.h"
    },
    {
      "type": "modify",
      "old_id": "4ea39fee99c7938e4bd9dfec951773b025ada1a7",
      "old_mode": 33188,
      "old_path": "include/linux/cpufreq.h",
      "new_id": "7f008f6bfdc36e2d1b430bf2b13bd876f43de1ff",
      "new_mode": 33188,
      "new_path": "include/linux/cpufreq.h"
    }
  ]
}
