)]}'
{
  "commit": "8e0af5141ab950b78b3ebbfaded5439dcf8b3a8d",
  "tree": "e5935fb5e4fe6bc03123f5734ba80ca2230f13e2",
  "parents": [
    "4be3bd7849165e7efa6b0b35a23d6a3598d97465"
  ],
  "author": {
    "name": "Shaohua Li",
    "email": "shaohua.li@intel.com",
    "time": "Mon Jul 27 18:11:02 2009 -0400"
  },
  "committer": {
    "name": "Len Brown",
    "email": "len.brown@intel.com",
    "time": "Fri Jul 31 18:23:34 2009 -0400"
  },
  "message": "ACPI: create Processor Aggregator Device driver\n\nACPI 4.0 created the logical \"processor aggregator device\" as\na mechinism for platforms to ask the OS to force otherwise busy\nprocessors to enter (power saving) idle.\n\nThe intent is to lower power consumption to ride-out\ntransient electrical and thermal emergencies,\nrather than powering off the server.\n\nOn platforms that can save more power/performance via P-states,\nthe platform will first exhaust P-states before forcing idle.\nHowever, the relative benefit of P-states vs. idle states\nis platform dependent, and thus this driver need not know\nor care about it.\n\nThis driver does not use the kernel\u0027s CPU hot-plug mechanism\nbecause after the transient emergency is over, the system must\nbe returned to its normal state, and hotplug would permanently\nbreak both cpusets and binding.\n\nSo to force idle, the driver creates a power saving thread.\nThe scheduler will migrate the thread to the preferred CPU.\nThe thread has max priority and has SCHED_RR policy,\nso it can occupy one CPU.  To save power, the thread will\ninvoke the deep C-state entry instructions.\n\nTo avoid starvation, the thread will sleep 5% of the time\ntime for every second (current RT scheduler has threshold\nto avoid starvation, but if other CPUs are idle,\nthe CPU can borrow CPU timer from other,\nwhich makes the mechanism not work here)\n\nVaidyanathan Srinivasan has proposed scheduler enhancements\nto allow injecting idle time into the system.  This driver doesn\u0027t\ndepend on those enhancements, but could cut over to them\nwhen they are available.\n\nPeter Z. does not favor upstreaming this driver until\nthe those scheduler enhancements are in place.  However,\nwe favor upstreaming this driver now because it is useful\nnow, and can be enhanced over time.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nNACKed-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ebc269152faf78f5136cb45432f29c39f8c67abe",
      "old_mode": 33188,
      "old_path": "MAINTAINERS",
      "new_id": "082df56d5b9acdf262bd8263c746049cbddcc030",
      "new_mode": 33188,
      "new_path": "MAINTAINERS"
    },
    {
      "type": "modify",
      "old_id": "7ec7d88c5999573d169233bbf3c82232f6003dbd",
      "old_mode": 33188,
      "old_path": "drivers/acpi/Kconfig",
      "new_id": "13531ed3cbd3658b98dcfc85c69dc0aef89efeb5",
      "new_mode": 33188,
      "new_path": "drivers/acpi/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "03a985be3fe3c6554c13b6549fa7b56aac474e49",
      "old_mode": 33188,
      "old_path": "drivers/acpi/Makefile",
      "new_id": "8dae61c8a176f5c3e4622b4f6e0afec05c7eee91",
      "new_mode": 33188,
      "new_path": "drivers/acpi/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0d2cdb86158bec0c024436b7feba922a88a71844",
      "new_mode": 33188,
      "new_path": "drivers/acpi/acpi_pad.c"
    }
  ]
}
