[Intel-gfx] i915_gem_evict_something in sysprof trace using VBOs

Chris Wilson chris at chris-wilson.co.uk
Fri Nov 5 11:35:55 CET 2010


On Fri, 05 Nov 2010 10:21:07 +0000, Peter Clifton <pcjc2 at cam.ac.uk> wrote:
> I was playing with my VBO code, and noticed this sysprof trace
> (non-interesting stuff pruned):
> 
> drm_ioctl                                         0.13%  56.08%
>   i915_gem_execbuffer2                            0.00%  32.50%
>     i915_gem_do_execbuffer                        0.08%  32.50%
>       i915_gem_object_pin                         0.00%  17.47%
>         i915_gem_object_bind_to_gtt               0.03%  17.44%
>           i915_gem_evict_something                0.00%  15.54%
>             i915_gem_object_unbind                0.00%  15.31%
>               i915_gem_object_set_to_cpu_domain   0.00%  13.33%
>                 i915_gem_clflush_object           0.00%  13.33%
>       i915_gem_clflush_object                     0.00%  14.29%
>   i915_gem_mmap_gtt_ioctl                         0.00%  10.74%
>   i915_gem_set_domain_ioctl                       0.00%   4.98%
> 
> 
> The i915_gem_evict_something has me curious. Presumably I have too many
> pages of data actively being used by the GPU (or mapped).

Yes, you are suffering from aperture thrashing. There are a few ways to
workaround this (1) decrease the size of your working set (reduce texture
sizes, reuse as many buffers within the aperture as possible), (2)
increase the size of the aperture (check your BIOS AGP size and apply
drm-intel-next to get the benefit of the full-GTT), (3) add an uncached
page cache to avoid those costly clflushes.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list