diff options
author | Eric Anholt <eric@anholt.net> | 2009-11-21 21:49:37 -0500 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-11-25 09:36:21 -0500 |
commit | c8e0f93a381d1d76135e567f13a4418fce66fd95 (patch) | |
tree | efa286f2e381d60b514c897cd148e5a824cce667 /drivers | |
parent | 5b8f0be0dce012d190a53d55240fe3fde6306476 (diff) |
drm/i915: Replace a calloc followed by copying data over it with malloc.
Execbufs involve quite a bit of payload, to the extent that cache misses
show up in the profiles here, and a suspicion that some of those cachelines
may get evicted and then reloaded in the subsequent copy.
This is still abstracted like drm_calloc_large since we want to check for
size overflow, and because we want to choose between kmalloc and vmalloc
on the fly. cairo's interface for malloc-with-calloc's-args was used as
the model.
Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 2065b8f7e875..481c0ab888c8 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -3563,8 +3563,8 @@ i915_gem_execbuffer(struct drm_device *dev, void *data, | |||
3563 | return -EINVAL; | 3563 | return -EINVAL; |
3564 | } | 3564 | } |
3565 | /* Copy in the exec list from userland */ | 3565 | /* Copy in the exec list from userland */ |
3566 | exec_list = drm_calloc_large(sizeof(*exec_list), args->buffer_count); | 3566 | exec_list = drm_malloc_ab(sizeof(*exec_list), args->buffer_count); |
3567 | object_list = drm_calloc_large(sizeof(*object_list), args->buffer_count); | 3567 | object_list = drm_malloc_ab(sizeof(*object_list), args->buffer_count); |
3568 | if (exec_list == NULL || object_list == NULL) { | 3568 | if (exec_list == NULL || object_list == NULL) { |
3569 | DRM_ERROR("Failed to allocate exec or object list " | 3569 | DRM_ERROR("Failed to allocate exec or object list " |
3570 | "for %d buffers\n", | 3570 | "for %d buffers\n", |