)]}'
{
  "commit": "8e7d2b2c6ecd3c21a54b877eae3d5be48292e6b5",
  "tree": "704b3affc3b617be2bcd63ddd9865e9adceeb031",
  "parents": [
    "1406de8e11eb043681297adf86d6892ff8efc27a"
  ],
  "author": {
    "name": "Jesse Barnes",
    "email": "jbarnes@virtuousgeek.org",
    "time": "Fri May 08 16:13:25 2009 -0700"
  },
  "committer": {
    "name": "Eric Anholt",
    "email": "eric@anholt.net",
    "time": "Tue May 19 10:07:14 2009 -0700"
  },
  "message": "drm/i915: allocate large pointer arrays with vmalloc\n\nFor awhile now, many of the GEM code paths have allocated page or\nobject arrays with the slab allocator.  This is nice and fast, but\nwon\u0027t work well if memory is fragmented, since the slab allocator works\nwith physically contiguous memory (i.e. order \u003e 2 allocations are\nlikely to fail fairly early after booting and doing some work).\n\nThis patch works around the issue by falling back to vmalloc for\n\u003ePAGE_SIZE allocations.  This is ugly, but much less work than chaining\na bunch of pages together by hand (suprisingly there\u0027s not a bunch of\ngeneric kernel helpers for this yet afaik).  vmalloc space is somewhat\nprecious on 32 bit kernels, but our allocations shouldn\u0027t be big enough\nto cause problems, though they\u0027re routinely more than a page.\n\nNote that this patch doesn\u0027t address the unchecked\nalloc-based-on-ioctl-args in GEM; that needs to be fixed in a separate\npatch.\n\nAlso, I\u0027ve deliberately ignored the DRM\u0027s \"area\" junk.  I don\u0027t think\nanyone actually uses it anymore and I\u0027m hoping it gets ripped out soon.\n\n[Updated: removed size arg to new free function.  We could unify the\nfree functions as well once the DRM mem tracking is ripped out.]\n\nfd.o bug #20152 (part 1/3)\n\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Eric Anholt \u003ceric@anholt.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b189b49c7602e338b87070aec7aa42d9e32acdb3",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/i915/i915_gem.c",
      "new_id": "4a24c90fb940d0d96e9937588e2437bcf3f51960",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/i915/i915_gem.c"
    },
    {
      "type": "modify",
      "old_id": "c8c42215143158ef6eed2d5bcb9a00f42f29a857",
      "old_mode": 33188,
      "old_path": "include/drm/drmP.h",
      "new_id": "b84d8ae35e6f4a8fd9f5cb6d4df08ba8d274d3e6",
      "new_mode": 33188,
      "new_path": "include/drm/drmP.h"
    }
  ]
}
