[Intel-gfx] [PATCH 1/2] drm/i915: Clean up pinned bo capture
Chris Wilson
chris at chris-wilson.co.uk
Tue Dec 2 08:46:38 PST 2014
On Tue, Dec 02, 2014 at 04:19:43PM +0100, Daniel Vetter wrote:
> /* Generate a semi-unique error code. The code is not meant to have meaning, The
> @@ -1085,7 +1083,6 @@ static void i915_gem_capture_vm(struct drm_i915_private *dev_priv,
> const int ndx)
> {
> struct drm_i915_error_buffer *active_bo = NULL, *pinned_bo = NULL;
> - struct drm_i915_gem_object *obj;
> struct i915_vma *vma;
> int i;
>
> @@ -1094,12 +1091,12 @@ static void i915_gem_capture_vm(struct drm_i915_private *dev_priv,
> i++;
> error->active_bo_count[ndx] = i;
>
> - list_for_each_entry(obj, &dev_priv->mm.bound_list, global_list) {
> - list_for_each_entry(vma, &obj->vma_list, vma_link)
> - if (vma->vm == vm && vma->pin_count > 0) {
> - i++;
> + if (i915_is_ggtt(vm)) {
> + list_for_each_entry(vma, &vm->inactive_list, mm_list) {
> + if (vma->pin_count == 0)
> break;
> - }
> + i++;
> + }
> }
> error->pinned_bo_count[ndx] = i - error->active_bo_count[ndx];
>
> @@ -1119,7 +1116,7 @@ static void i915_gem_capture_vm(struct drm_i915_private *dev_priv,
> error->pinned_bo_count[ndx] =
> capture_pinned_bo(pinned_bo,
> error->pinned_bo_count[ndx],
> - &dev_priv->mm.bound_list, vm);
> + &vm->inactive_list);
I much prefer this to be an iteraction over the bound_list and check if
the object has a ggtt bound vma. Combined with the request to only print
out the pinned bo in the GGTT, it becomes much clearer and doesn't need
to result in the confusing "active + pinned for GGTT".
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list