)]}'
{
  "commit": "39743889aaf76725152f16aa90ca3c45f6d52da3",
  "tree": "2a6f658d03dbbd9428934c5e030230a4acb6d5e0",
  "parents": [
    "dc9aa5b9d65fd11b1f5246b46ec610ee8b83c6dd"
  ],
  "author": {
    "name": "Christoph Lameter",
    "email": "clameter@sgi.com",
    "time": "Sun Jan 08 01:00:51 2006 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Sun Jan 08 20:12:42 2006 -0800"
  },
  "message": "[PATCH] Swap Migration V5: sys_migrate_pages interface\n\nsys_migrate_pages implementation using swap based page migration\n\nThis is the original API proposed by Ray Bryant in his posts during the first\nhalf of 2005 on linux-mm@kvack.org and linux-kernel@vger.kernel.org.\n\nThe intent of sys_migrate is to migrate memory of a process.  A process may\nhave migrated to another node.  Memory was allocated optimally for the prior\ncontext.  sys_migrate_pages allows to shift the memory to the new node.\n\nsys_migrate_pages is also useful if the processes available memory nodes have\nchanged through cpuset operations to manually move the processes memory.  Paul\nJackson is working on an automated mechanism that will allow an automatic\nmigration if the cpuset of a process is changed.  However, a user may decide\nto manually control the migration.\n\nThis implementation is put into the policy layer since it uses concepts and\nfunctions that are also needed for mbind and friends.  The patch also provides\na do_migrate_pages function that may be useful for cpusets to automatically\nmove memory.  sys_migrate_pages does not modify policies in contrast to Ray\u0027s\nimplementation.\n\nThe current code here is based on the swap based page migration capability and\nthus is not able to preserve the physical layout relative to it containing\nnodeset (which may be a cpuset).  When direct page migration becomes available\nthen the implementation needs to be changed to do a isomorphic move of pages\nbetween different nodesets.  The current implementation simply evicts all\npages in source nodeset that are not in the target nodeset.\n\nPatch supports ia64, i386 and x86_64.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f7ba4acc20ec3d7049d77b8d417e95e49e94787a",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/syscall_table.S",
      "new_id": "6ff3e524322672a9e0c8b90935a1b439f6c2375a",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/syscall_table.S"
    },
    {
      "type": "modify",
      "old_id": "0741b066b98fd92af00131bc170b47bbcf6264de",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/entry.S",
      "new_id": "7a6ffd6137895f2abd629ecc936f107251ef6b96",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/entry.S"
    },
    {
      "type": "modify",
      "old_id": "df0773c9bdbe70337e236bd6c267e91bedcaf465",
      "old_mode": 33188,
      "old_path": "arch/x86_64/ia32/ia32entry.S",
      "new_id": "1f0ff5adc80e1b0babda930850aa29eb16e4bab0",
      "new_mode": 33188,
      "new_path": "arch/x86_64/ia32/ia32entry.S"
    },
    {
      "type": "modify",
      "old_id": "fe38b9a96233f86fb47f34d0920802f23b3f0542",
      "old_mode": 33188,
      "old_path": "include/asm-i386/unistd.h",
      "new_id": "481c3c0ea720d32c1570a3588ef31da4ac81247b",
      "new_mode": 33188,
      "new_path": "include/asm-i386/unistd.h"
    },
    {
      "type": "modify",
      "old_id": "2bf543493cb86675d7b3ec43bd58b8f684e6196b",
      "old_mode": 33188,
      "old_path": "include/asm-ia64/unistd.h",
      "new_id": "962f9bd1bdff71c81f6810c9cc144a0086ab2022",
      "new_mode": 33188,
      "new_path": "include/asm-ia64/unistd.h"
    },
    {
      "type": "modify",
      "old_id": "d5166ec3868dd143dbe211fc35aa29402be7b831",
      "old_mode": 33188,
      "old_path": "include/asm-x86_64/ia32_unistd.h",
      "new_id": "e8843362a6ccda6011d5ca607ebde4193eab540d",
      "new_mode": 33188,
      "new_path": "include/asm-x86_64/ia32_unistd.h"
    },
    {
      "type": "modify",
      "old_id": "2c42150bce0c372e651f6736ae14f3cf70829ccb",
      "old_mode": 33188,
      "old_path": "include/asm-x86_64/unistd.h",
      "new_id": "e6f896161c1193d60043db9ff6ffebb372e63385",
      "new_mode": 33188,
      "new_path": "include/asm-x86_64/unistd.h"
    },
    {
      "type": "modify",
      "old_id": "05443a766cb8a7d4f150866a74b30c469d3ee957",
      "old_mode": 33188,
      "old_path": "include/linux/mempolicy.h",
      "new_id": "3e61e829681dbb3817be224002498c0765f22848",
      "new_mode": 33188,
      "new_path": "include/linux/mempolicy.h"
    },
    {
      "type": "modify",
      "old_id": "c7007b1db91d6beece5fd0143c0f519304e629c4",
      "old_mode": 33188,
      "old_path": "include/linux/syscalls.h",
      "new_id": "e910d1a481df6d37b6b4f12ee0f99657fe8c1db5",
      "new_mode": 33188,
      "new_path": "include/linux/syscalls.h"
    },
    {
      "type": "modify",
      "old_id": "1ab2370e2efaee04f62334ae98a778ed3bbf9398",
      "old_mode": 33188,
      "old_path": "kernel/sys_ni.c",
      "new_id": "7a8bc7f60d914e8a2e3bb5581e3667048a85d33e",
      "new_mode": 33188,
      "new_path": "kernel/sys_ni.c"
    },
    {
      "type": "modify",
      "old_id": "9cc6d962831dd362c0f22c2a2588a4a907f51f64",
      "old_mode": 33188,
      "old_path": "mm/mempolicy.c",
      "new_id": "20d5ad39fa411052a2f9554cf293b58ba926ddfd",
      "new_mode": 33188,
      "new_path": "mm/mempolicy.c"
    }
  ]
}
