)]}'
{
  "commit": "511c2aba8f07fc45bdcba548cb63f7b8a450c6dc",
  "tree": "6a1a853e60e0004f5895d78231ed1bea33fecaac",
  "parents": [
    "fcf07d22f089856631b52a75c35ba3c33b70a1b4"
  ],
  "author": {
    "name": "Lai Jiangshan",
    "email": "laijs@cn.fujitsu.com",
    "time": "Tue Dec 11 16:03:16 2012 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Dec 11 17:22:28 2012 -0800"
  },
  "message": "mm, memory-hotplug: dynamic configure movable memory and portion memory\n\nAdd online_movable and online_kernel for logic memory hotplug.  This is\nthe dynamic version of \"movablecore\" \u0026 \"kernelcore\".\n\nWe have the same reason to introduce it as to introduce \"movablecore\" \u0026\n\"kernelcore\".  It has the same motive as \"movablecore\" \u0026 \"kernelcore\", but\nit is dynamic/running-time:\n\no We can configure memory as kernelcore or movablecore after boot.\n\n  Userspace workload is increased, we need more hugepage, we can\u0027t use\n  \"online_movable\" to add memory and allow the system use more\n  THP(transparent-huge-page), vice-verse when kernel workload is increase.\n\n  Also help for virtualization to dynamic configure host/guest\u0027s memory,\n  to save/(reduce waste) memory.\n\n  Memory capacity on Demand\n\no When a new node is physically online after boot, we need to use\n  \"online_movable\" or \"online_kernel\" to configure/portion it as we\n  expected when we logic-online it.\n\n  This configuration also helps for physically-memory-migrate.\n\no all benefit as the same as existed \"movablecore\" \u0026 \"kernelcore\".\n\no Preparing for movable-node, which is very important for power-saving,\n  hardware partitioning and high-available-system(hardware fault\n  management).\n\n(Note, we don\u0027t introduce movable-node here.)\n\nAction behavior:\nWhen a memoryblock/memorysection is onlined by \"online_movable\", the kernel\nwill not have directly reference to the page of the memoryblock,\nthus we can remove that memory any time when needed.\n\nWhen it is online by \"online_kernel\", the kernel can use it.\nWhen it is online by \"online\", the zone type doesn\u0027t changed.\n\nCurrent constraints:\nOnly the memoryblock which is adjacent to the ZONE_MOVABLE\ncan be online from ZONE_NORMAL to ZONE_MOVABLE.\n\n[akpm@linux-foundation.org: use min_t, cleanups]\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6e6cbc78f329493def769e5509896772f2fcd496",
      "old_mode": 33188,
      "old_path": "Documentation/memory-hotplug.txt",
      "new_id": "c6f993d491b51982bbd4e8029dc8ff55a229d2af",
      "new_mode": 33188,
      "new_path": "Documentation/memory-hotplug.txt"
    },
    {
      "type": "modify",
      "old_id": "7eb1211ab6881f0117f35f5e46b28f4dde86b2d3",
      "old_mode": 33188,
      "old_path": "drivers/base/memory.c",
      "new_id": "987604d56c83009cf94c63235d10841bdbf5bd94",
      "new_mode": 33188,
      "new_path": "drivers/base/memory.c"
    },
    {
      "type": "modify",
      "old_id": "95573ec4ee6ce5cd0c2d343d8aab6021106f9c0c",
      "old_mode": 33188,
      "old_path": "include/linux/memory_hotplug.h",
      "new_id": "4a45c4e500253a68c4b7f1dc59f0f31e9a26eeae",
      "new_mode": 33188,
      "new_path": "include/linux/memory_hotplug.h"
    },
    {
      "type": "modify",
      "old_id": "571130ee66d79fc8de5a313db6b0067a365846e4",
      "old_mode": 33188,
      "old_path": "mm/memory_hotplug.c",
      "new_id": "5c1f4959e6b4cd292614559aca27701d53c6b2a2",
      "new_mode": 33188,
      "new_path": "mm/memory_hotplug.c"
    }
  ]
}
