Re: [PATCH] drm/i915: Explicitly mark Global GTT address spaces

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Tvrtko Ursulin (2018-08-31 15:36:43)
> From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>
> 
> So far we have been relying on vm->file pointer being NULL to declare
> something GGTT.
> 
> This has the unfortunate consequence that the default kernel context is
> also declared GGTT and interferes with the following patch which wants to
> instantiate VMA's and execute requests against the kernel context.
> 
> Change the is_ggtt test to use an explicit flag in struct address_space to
> solve this issue.
> 
> Note that the bit used is free since there is an alignment hole in the
> struct.
> 
> v2:
>  * Mark mock ggtt.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>
> Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c       | 2 ++
>  drivers/gpu/drm/i915/i915_gem_gtt.h       | 5 ++++-
>  drivers/gpu/drm/i915/selftests/mock_gtt.c | 2 ++
>  3 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index d9d44639ba26..eb0e446d6482 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -3604,6 +3604,8 @@ int i915_ggtt_init_hw(struct drm_i915_private *dev_priv)
>         mutex_lock(&dev_priv->drm.struct_mutex);
>         i915_address_space_init(&ggtt->vm, dev_priv);
>  
> +       ggtt->vm.is_ggtt = true;
> +
>         /* Only VLV supports read-only GGTT mappings */
>         ggtt->vm.has_read_only = IS_VALLEYVIEW(dev_priv);
>  
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h
> index 01d83a943142..7e2af5f4f39b 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.h
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
> @@ -324,6 +324,9 @@ struct i915_address_space {
>  
>         struct pagestash free_pages;
>  
> +       /* Global GTT */
> +       bool is_ggtt:1;
> +
>         /* Some systems require uncached updates of the page directories */
>         bool pt_kmap_wc:1;
>  
> @@ -357,7 +360,7 @@ struct i915_address_space {
>         I915_SELFTEST_DECLARE(bool scrub_64K);
>  };
>  
> -#define i915_is_ggtt(V) (!(V)->file)
> +#define i915_is_ggtt(vm) ((vm)->is_ggtt)

But it's so explicit!
Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux