)]}'
{
  "log": [
    {
      "commit": "650a37f32d2bc16fa802075be579802bc4ec4132",
      "tree": "c4535bf1a5a16b8dc6ae528fd8c8a9845ed1a6f9",
      "parents": [
        "d15cf7c129fa4ec4b44c52521e49ffafb9749029"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Jun 03 23:34:44 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Jun 03 23:47:49 2012 -0400"
      },
      "message": "tools/power turbostat: fix IVB support\n\nInitial IVB support went into turbostat in Linux-3.1:\n553575f1ae048aa44682b46b3c51929a0b3ad337\n(tools turbostat: recognize and run properly on IVB)\n\nHowever, when running on IVB, turbostat would fail\nto report the new couters added with SNB, c7, pc2 and pc7.\nSo in scenarios where these counters are non-zero on IVB,\nturbostat would report erroneous residencey results.\n\nIn particular c7 time would be added to c1 time,\nsince c1 time is calculated as \"that which is left over\".\n\nAlso, turbostat reports MHz capabilities when passed\nthe \"-v\" option, and it would incorrectly report 133MHz\nbclk instead of 100MHz bclk for IVB, which would inflate\nGHz reported with that option.\n\nThis patch is a backport of a fix already included in turbostat v2.\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d15cf7c129fa4ec4b44c52521e49ffafb9749029",
      "tree": "03c323fe9623f7e82400bdfabdd3711a45596a53",
      "parents": [
        "f8f5701bdaf9134b1f90e5044a82c66324d2073f"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Jun 03 23:24:00 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Jun 03 23:24:00 2012 -0400"
      },
      "message": "tools/power turbostat: fix un-intended affinity of forked program\n\nLinux 3.4 included a modification to turbostat to\nlower cross-call overhead by using scheduler affinity:\n\n15aaa34654831e98dd76f7738b6c7f5d05a66430\n(tools turbostat: reduce measurement overhead due to IPIs)\n\nIn the use-case where turbostat forks a child program,\nthat change had the un-intended side-effect of binding\nthe child to the last cpu in the system.\n\nThis change removed the binding before forking the child.\n\nThis is a back-port of a fix already included in turbostat v2.\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "15aaa34654831e98dd76f7738b6c7f5d05a66430",
      "tree": "d4c4449fdba32e04f791bdc92fbd4042abb18d17",
      "parents": [
        "88c3281f7ba449992f7a33bd2452a8c6fa5503cb"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Mar 29 22:19:58 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Mar 29 22:27:19 2012 -0400"
      },
      "message": "tools turbostat: harden against cpu online/offline\n\nSometimes users have turbostat running in interval mode\nwhen they take processors offline/online.\n\nPreviously, turbostat would survive, but not gracefully.\n\nTighten up the error checking so turbostat notices\nchangesn sooner, and print just 1 line on change:\n\nturbostat: re-initialized with num_cpus %d\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "88c3281f7ba449992f7a33bd2452a8c6fa5503cb",
      "tree": "09199b6751bbff93feb014c23fa48c736c5c6a59",
      "parents": [
        "e23da0370f80834e971142e50253f5b79be83631"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Mar 29 21:44:40 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Mar 29 22:04:58 2012 -0400"
      },
      "message": "tools turbostat: reduce measurement overhead due to IPIs\n\nturbostat uses /dev/cpu/*/msr interface to read MSRs.\nFor modern systems, it reads 10 MSR/CPU.  This can\nbe observed as 10 \"Function Call Interrupts\"\nper CPU per sample added to /proc/interrupts.\n\nThis overhead is measurable on large idle systems,\nand as Yoquan Song pointed out, it can even trick\ncpuidle into thinking the system is busy.\n\nHere turbostat re-schedules itself in-turn to each\nCPU so that its MSR reads will always be local.\nThis replaces the 10 \"Function Call Interrupts\"\nwith a single \"Rescheduling interrupt\" per sample\nper CPU.\n\nOn an idle 32-CPU system, this shifts some residency from\nthe shallow c1 state to the deeper c7 state:\n\n # ./turbostat.old -s\n   %c0  GHz  TSC    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7\n  0.27 1.29 2.29   0.95   0.02   0.00  98.77  20.23   0.00  77.41   0.00\n  0.25 1.24 2.29   0.98   0.02   0.00  98.75  20.34   0.03  77.74   0.00\n  0.27 1.22 2.29   0.54   0.00   0.00  99.18  20.64   0.00  77.70   0.00\n  0.26 1.22 2.29   1.22   0.00   0.00  98.52  20.22   0.00  77.74   0.00\n  0.26 1.38 2.29   0.78   0.02   0.00  98.95  20.51   0.05  77.56   0.00\n^C\n i# ./turbostat.new -s\n   %c0  GHz  TSC    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7\n  0.27 1.20 2.29   0.24   0.01   0.00  99.49  20.58   0.00  78.20   0.00\n  0.27 1.22 2.29   0.25   0.00   0.00  99.48  20.79   0.00  77.85   0.00\n  0.27 1.20 2.29   0.25   0.02   0.00  99.46  20.71   0.03  77.89   0.00\n  0.28 1.26 2.29   0.25   0.01   0.00  99.46  20.89   0.02  77.67   0.00\n  0.27 1.20 2.29   0.24   0.01   0.00  99.48  20.65   0.00  78.04   0.00\n\ncc: Youquan Song \u003cyouquan.song@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "e23da0370f80834e971142e50253f5b79be83631",
      "tree": "be64cb44ace74106e1515eef2e8dbdc88940d7d6",
      "parents": [
        "c16fa4f2ad19908a47c63d8fa436a1178438c7e7"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Feb 06 18:37:16 2012 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Mar 29 13:22:06 2012 -0400"
      },
      "message": "tools turbostat: add summary option\n\nturbostat -s\ncuts down on the amount of output, per user request.\n\nalso treak some output whitespace and the man page.\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "507a03c1cba0e32309223d23d19a1bfc0916c140",
      "tree": "8da15f9c635733948a73bfe35cb50e1195702952",
      "parents": [
        "be405411f712489f2f780ab085e1069e8fb85f19",
        "79ba0db69c5887f1ad4ed51d58894e7e889084b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 15:51:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 18 15:51:48 2012 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\nThis includes initial support for the recently published ACPI 5.0 spec.\nIn particular, support for the \"hardware-reduced\" bit that eliminates\nthe dependency on legacy hardware.\n\nAPEI has patches resulting from testing on real hardware.\n\nPlus other random fixes.\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (52 commits)\n  acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec\n  intel_idle: Split up and provide per CPU initialization func\n  ACPI processor: Remove unneeded variable passed by acpi_processor_hotadd_init V2\n  ACPI processor: Remove unneeded cpuidle_unregister_driver call\n  intel idle: Make idle driver more robust\n  intel_idle: Fix a cast to pointer from integer of different size warning in intel_idle\n  ACPI: kernel-parameters.txt : Add intel_idle.max_cstate\n  intel_idle: remove redundant local_irq_disable() call\n  ACPI processor: Fix error path, also remove sysdev link\n  ACPI: processor: fix acpi_get_cpuid for UP processor\n  intel_idle: fix API misuse\n  ACPI APEI: Convert atomicio routines\n  ACPI: Export interfaces for ioremapping/iounmapping ACPI registers\n  ACPI: Fix possible alignment issues with GAS \u0027address\u0027 references\n  ACPI, ia64: Use SRAT table rev to use 8bit or 16/32bit PXM fields (ia64)\n  ACPI, x86: Use SRAT table rev to use 8bit or 32bit PXM fields (x86/x86-64)\n  ACPI: Store SRAT table revision\n  ACPI, APEI, Resolve false conflict between ACPI NVS and APEI\n  ACPI, Record ACPI NVS regions\n  ACPI, APEI, EINJ, Refine the fix of resource conflict\n  ...\n"
    },
    {
      "commit": "79ba0db69c5887f1ad4ed51d58894e7e889084b0",
      "tree": "72948278c60e0997ad2e7cc0181d469c61b62fa8",
      "parents": [
        "cb7971756b901abd61d47f6eb1011066abfb348d",
        "c130bd6f82e5dda28b1a19741c4c2fe269713199",
        "5c2a9f06a9cd7194f884cdc88144866235dec07d",
        "65b7f839ceecc0a36c7969c0c9151d5748cd4242",
        "9f10f6a520deb3639fac78d81151a3ade88b4e7f",
        "553575f1ae048aa44682b46b3c51929a0b3ad337"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 18 01:15:54 2012 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 18 01:15:54 2012 -0500"
      },
      "message": "Merge branches \u0027einj\u0027, \u0027intel_idle\u0027, \u0027misc\u0027, \u0027srat\u0027 and \u0027turbostat-ivb\u0027 into release\n"
    },
    {
      "commit": "9b6cf1a0120a80ec342f10c297efaa0ba79f7ab7",
      "tree": "f1bf93a327ccd4233c4c71882e0777dd5e10aef9",
      "parents": [
        "3f865490698871bf77eebce05208fd08e9b45aeb"
      ],
      "author": {
        "name": "Arun Thomas",
        "email": "arun.thomas@gmail.com",
        "time": "Wed Aug 17 00:34:14 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Dec 15 16:34:20 2011 +0100"
      },
      "message": "tools/power turbostat: update fields in manpage\n\nField names were shortened: \"pkg\" is now \"pk\", \"core\" is now \"cr\"\n\nSigned-off-by: Arun Thomas \u003carun.thomas@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "553575f1ae048aa44682b46b3c51929a0b3ad337",
      "tree": "14275aec6b879ac1619d18f2462cd67387329ca7",
      "parents": [
        "31555213f03bca37d2c02e10946296052f4ecfcd"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Nov 18 03:32:01 2011 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Nov 18 03:32:01 2011 -0500"
      },
      "message": "tools turbostat: recognize and run properly on IVB\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "efb90582c575084723cc14302c1300cb26c7e01f",
      "tree": "25af70a2c40e7e404215acd9aadfa42e71e716ae",
      "parents": [
        "e751b759e82629798c4a5e4a87eb3a30c0510154",
        "46bcfad7a819bd17ac4e831b04405152d59784ab",
        "22f4521d664030e417f41953e922f61c65f2e189",
        "aeae1e92daec5a38b40ad12598b97501b675a381"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 22:14:50 2011 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 22:14:50 2011 -0500"
      },
      "message": "Merge branches \u0027acpi\u0027, \u0027idle\u0027, \u0027mrst-pmu\u0027 and \u0027pm-tools\u0027 into next\n"
    },
    {
      "commit": "d30c4b7a87e8b19583d5ef1402d9b38f51e30f44",
      "tree": "6b23107235dece94092d0042618b56e6f9f392cf",
      "parents": [
        "e4c0d0e22ce5cf84b3993b5af6c2dac08d52f06b"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Jul 31 18:19:33 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Aug 02 18:33:31 2011 -0400"
      },
      "message": "tools/power turbostat: fit output into 80 columns on snb-ep\n\nReduce columns for package number to 1.\nIf you can afford more than 9 packages,\nyou can also afford a terminal with more than 80 columns:-)\n\nAlso shave a column also off the package C-states\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "e4c0d0e22ce5cf84b3993b5af6c2dac08d52f06b",
      "tree": "92634c8de7967149fe1ba904f2cac5fd5b0aae1b",
      "parents": [
        "1765a367a3b5d5e9692949b0c5ec933eff2c0701"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jul 15 23:39:00 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jul 15 23:39:00 2011 -0400"
      },
      "message": "tools/power x86_energy_perf_policy: fix print of uninitialized string\n\nLooks like I was going to stick the brand string\nin the verbose ouput, but didn\u0027t get around to it.\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "aeae1e92daec5a38b40ad12598b97501b675a381",
      "tree": "16a9d210321b5bf55fe68f8f624f07a5552a3bca",
      "parents": [
        "9508d80530add1281ac4d5032ab650eaf0b41aa4"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Jul 03 21:41:33 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Jul 03 21:41:33 2011 -0400"
      },
      "message": "tools/power turbostat: less verbose debugging\n\ndump only the counters which are active\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "07f9479a40cc778bc1462ada11f95b01360ae4ff",
      "tree": "0676cf38df3844004bb3ebfd99dfa67a4a8998f5",
      "parents": [
        "9d5e6bdb3013acfb311ab407eeca0b6a6a3dedbf",
        "cd2e49e90f1cae7726c9a2c54488d881d7f1cd1c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Apr 26 10:22:15 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Apr 26 10:22:59 2011 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nFast-forwarded to current state of Linus\u0027 tree as there are patches to be\napplied for files that didn\u0027t exist on the old branch.\n"
    },
    {
      "commit": "6eab04a87677a37cf15b52e2b4b4fd57917102ad",
      "tree": "dc92e25473e7e5c9183312d7feeeaeabb2157baf",
      "parents": [
        "9f0af69b2dd34d2c21817d599db7bdb3c972a759"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Fri Apr 08 19:49:08 2011 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Apr 10 17:01:05 2011 +0200"
      },
      "message": "treewide: remove extra semicolons\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "a829eb4d7e08b316e2d48880ecab3630497f300f",
      "tree": "8aeeea451922975cc0a4d4b36e472464c3e17321",
      "parents": [
        "8209e054b6bd0805a25b8c4af971160fa146bf22"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 10 23:36:34 2011 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 10 23:58:13 2011 -0500"
      },
      "message": "tools: turbostat: style updates\n\nFollow kernel coding style traditions more closely.\nDelete typedef, re-name \"per cpu counters\" to\nsimply be counters etc.\n\nThis patch changes no functionality.\n\nSuggested-by: Thiago Farina \u003ctfransosi@gmail.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "8209e054b6bd0805a25b8c4af971160fa146bf22",
      "tree": "29706b992f75b98266a1f12ffcc760ec7b00ec06",
      "parents": [
        "6148a47ac3872092d4bc4888838bec6dff16654d"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Jan 21 15:11:19 2011 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 10 23:58:11 2011 -0500"
      },
      "message": "tools: turbostat: fix bitwise and operand\n\nbug could cause false positive on indicating\npresence of invarient TSC or APERF support.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "eca0bdd326d2cf9127bbb6ac602bfbcbf169c10d",
      "tree": "511cd500eed55693dca3086f7cb3d5072d203232",
      "parents": [
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5",
        "103a8fea9b420d5faef43bb87332a28e2129816a",
        "d5532ee7b40b4a64e605e543b0387694430ecb79"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 11 23:06:28 2011 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 11 23:06:28 2011 -0500"
      },
      "message": "Merge branches \u0027turbostat\u0027 and \u0027x86_energy_perf_policy\u0027 into tools\n"
    },
    {
      "commit": "d5532ee7b40b4a64e605e543b0387694430ecb79",
      "tree": "1411d02a42ca83156d37ce6d62c031afc465a5e1",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Oct 22 23:53:03 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 11 23:02:21 2011 -0500"
      },
      "message": "tools: create power/x86/x86_energy_perf_policy\n\nMSR_IA32_ENERGY_PERF_BIAS first became available on Westmere Xeon.\nIt is implemented in all Sandy Bridge processors -- mobile, desktop and server.\nIt is expected to become increasingly important in subsequent generations.\n\nx86_energy_perf_policy is a user-space utility to set the\nhardware energy vs performance policy hint in the processor.\nMost systems would benefit from \"x86_energy_perf_policy normal\"\nat system startup, as the hardware default is maximum performance\nat the expense of energy efficiency.\n\nSee x86_energy_perf_policy.8 man page for more information.\n\nBackground:\n\nLinux-2.6.36 added \"epb\" to /proc/cpuinfo to indicate\nif an x86 processor supports MSR_IA32_ENERGY_PERF_BIAS,\nwithout actually modifying the MSR.\n\nIn March, 2010, Venkatesh Pallipadi proposed a small driver\nthat programmed MSR_IA32_ENERGY_PERF_BIAS, based on\nthe cpufreq governor in use.  It also offered\na boot-time cmdline option to override.\nhttp://lkml.org/lkml/2010/3/4/457\nBut hiding the hardware policy behind the\ngovernor choice was deemed \"kinda icky\".\n\nIn June, 2010, I proposed a generic user/kernel API to\ngeneralize the power/performance policy trade-off.\n\"RFC: /sys/power/policy_preference\"\nhttp://lkml.org/lkml/2010/6/16/399\nThat is my preference for implementing this capability,\nbut I received no support on the list.\n\nSo in September, 2010, I sent x86_energy_perf_policy.c to LKML,\na user-space utility that scribbles directly to the MSR.\nhttp://lkml.org/lkml/2010/9/28/246\n\nHere is that same utility, after responding to some review feedback,\nto live in tools/power/, where it is easily found.\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "103a8fea9b420d5faef43bb87332a28e2129816a",
      "tree": "93dace0be03172408d1b841dbe644708cf0e69ba",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Oct 22 23:53:03 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Jan 11 22:46:02 2011 -0500"
      },
      "message": "tools: create power/x86/turbostat\n\nturbostat is a Linux tool to observe proper operation\nof Intel(R) Turbo Boost Technology.\n\nturbostat displays the actual processor frequency\non x86 processors that include APERF and MPERF MSRs.\n\nNote that turbostat is of limited utility on Linux\nkernels 2.6.29 and older, as acpi_cpufreq cleared\nAPERF/MPERF up through that release.\n\nOn Intel Core i3/i5/i7 (Nehalem) and newer processors,\nturbostat also displays residency in idle power saving states,\nwhich are necessary for diagnosing any cpuidle issues\nthat may have an effect on turbo-mode.\n\nSee the turbostat.8 man page for example usage.\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    }
  ]
}
