)]}'
{
  "commit": "b3fba8da653999c67d7517050f196e92da6f8d3b",
  "tree": "12ee00ca91ceafe4fa9bb75d62debaf1feebb7b9",
  "parents": [
    "8e65d24c7caf2a4c69b3ae0ce170bf3082ba359f"
  ],
  "author": {
    "name": "Christoph Lameter",
    "email": "clameter@sgi.com",
    "time": "Tue Oct 16 01:26:06 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Tue Oct 16 09:43:01 2007 -0700"
  },
  "message": "SLUB: Move page-\u003eoffset to kmem_cache_cpu-\u003eoffset\n\nWe need the offset from the page struct during slab_alloc and slab_free. In\nboth cases we also reference the cacheline of the kmem_cache_cpu structure.\nWe can therefore move the offset field into the kmem_cache_cpu structure\nfreeing up 16 bits in the page struct.\n\nMoving the offset allows an allocation from slab_alloc() without touching the\npage struct in the hot path.\n\nThe only thing left in slab_free() that touches the page struct cacheline for\nper cpu freeing is the checking of SlabDebug(page). The next patch deals with\nthat.\n\nUse the available 16 bits to broaden page-\u003einuse. More than 64k objects per\nslab become possible and we can get rid of the checks for that limitation.\n\nNo need anymore to shrink the order of slabs if we boot with 2M sized slabs\n(slub_min_order\u003d9).\n\nNo need anymore to switch off the offset calculation for very large slabs\nsince the field in the kmem_cache_cpu structure is 32 bits and so the offset\nfield can now handle slab sizes of up to 8GB.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.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": "0cdc8fbf64310c48c53c61761702c24c2cbdef7c",
      "old_mode": 33188,
      "old_path": "include/linux/mm_types.h",
      "new_id": "877667918452f8c752714c6f6d5905b8352eae30",
      "new_mode": 33188,
      "new_path": "include/linux/mm_types.h"
    },
    {
      "type": "modify",
      "old_id": "0a7ae25f7e8de16f7186e6b71255d5cad3ba3354",
      "old_mode": 33188,
      "old_path": "include/linux/slub_def.h",
      "new_id": "92e10cf6d0e848ef39379fd38f4a3e52503bf3a5",
      "new_mode": 33188,
      "new_path": "include/linux/slub_def.h"
    },
    {
      "type": "modify",
      "old_id": "aa8bb072651b86aa5ea3ffefac8525d30aa1c202",
      "old_mode": 33188,
      "old_path": "mm/slub.c",
      "new_id": "5d895d44c327f5544b290c8dffd48eb9ff1cde11",
      "new_mode": 33188,
      "new_path": "mm/slub.c"
    }
  ]
}
