• T
    drm/i915: Trim the object sg table · 0c40ce13
    Tvrtko Ursulin 提交于
    At the moment we allocate enough sg table entries assuming we
    will not be able to do any coalescing. But since in practice
    we most often can, and more so very effectively, this ends up
    wasting a lot of memory.
    
    A simple and effective way of trimming the over-allocated
    entries is to copy the table over to a new one allocated to the
    exact size.
    
    Experiments on my freshly logged and idle desktop (KDE) showed
    that by doing this we can save approximately 1 MiB of RAM, or
    when running a typical benchmark like gl_manhattan I have
    even seen a 6 MiB saving.
    
    More complicated techniques such as only copying the last used
    page and freeing the rest are left to the reader.
    
    v2:
     * Update commit message.
     * Use temporary sg_table on stack. (Chris Wilson)
    
    v3:
     * Commit message update.
     * Comment added.
     * Replace memcpy with copy assignment.
       (Chris Wilson)
    Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
    Link: http://patchwork.freedesktop.org/patch/msgid/1478704423-7447-1-git-send-email-tvrtko.ursulin@linux.intel.com
    0c40ce13
i915_gem.c 137.3 KB