)]}'
{
  "commit": "c61afb181c649754ea221f104e268cbacfc993e3",
  "tree": "870917b3f9175cf1663a2620d989856913cfb5f8",
  "parents": [
    "101a50019ae5e370d73984ee05d56dd3b08f330a"
  ],
  "author": {
    "name": "Paul Jackson",
    "email": "pj@sgi.com",
    "time": "Fri Mar 24 03:16:08 2006 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Fri Mar 24 07:33:23 2006 -0800"
  },
  "message": "[PATCH] cpuset memory spread slab cache optimizations\n\nThe hooks in the slab cache allocator code path for support of NUMA\nmempolicies and cpuset memory spreading are in an important code path.  Many\nsystems will use neither feature.\n\nThis patch optimizes those hooks down to a single check of some bits in the\ncurrent tasks task_struct flags.  For non NUMA systems, this hook and related\ncode is already ifdef\u0027d out.\n\nThe optimization is done by using another task flag, set if the task is using\na non-default NUMA mempolicy.  Taking this flag bit along with the\nPF_SPREAD_PAGE and PF_SPREAD_SLAB flag bits added earlier in this \u0027cpuset\nmemory spreading\u0027 patch set, one can check for the combination of any of these\nspecial case memory placement mechanisms with a single test of the current\ntasks task_struct flags.\n\nThis patch also tightens up the code, to save a few bytes of kernel text\nspace, and moves some of it out of line.  Due to the nested inlines called\nfrom multiple places, we were ending up with three copies of this code, which\nonce we get off the main code path (for local node allocation) seems a bit\nwasteful of instruction memory.\n\nSigned-off-by: Paul Jackson \u003cpj@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": "bbd2221923c3a274dae0d13d1425942108831d6d",
      "old_mode": 33188,
      "old_path": "include/linux/mempolicy.h",
      "new_id": "6a7621b2b12b0061c9edc3daf3a8dbede1a1451c",
      "new_mode": 33188,
      "new_path": "include/linux/mempolicy.h"
    },
    {
      "type": "modify",
      "old_id": "b0e37cfa09f51ad0cc881ca2425644037dcf028f",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "2cda439ece436c3e03e3a02172ff18914b4a59b1",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "c21bae8c93b94bd8cfe60129af508a64ddb67c33",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "a02063903aaabffcad69de5b662183f7ca5b1c97",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    },
    {
      "type": "modify",
      "old_id": "e93cc740c22b4e24caf5c0ba531126b34f300b00",
      "old_mode": 33188,
      "old_path": "mm/mempolicy.c",
      "new_id": "4f71cfd29c6fa4859c151442176434f48aec748d",
      "new_mode": 33188,
      "new_path": "mm/mempolicy.c"
    },
    {
      "type": "modify",
      "old_id": "de516658d3d868ec0b1ca40d1314b9420f0ceba2",
      "old_mode": 33188,
      "old_path": "mm/slab.c",
      "new_id": "f80b52388a12260cbb4a3f86dc5af91b199acbf0",
      "new_mode": 33188,
      "new_path": "mm/slab.c"
    }
  ]
}
