diff mbox series

drm/i915: opportunistically apply ALLOC_CONTIGIOUS

Message ID 20220202173154.3758970-1-matthew.auld@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915: opportunistically apply ALLOC_CONTIGIOUS | expand

Commit Message

Matthew Auld Feb. 2, 2022, 5:31 p.m. UTC
It looks like this code was accidentally dropped at some point(in a
slightly different form), so add it back. The gist is that if we know
the allocation will be one single chunk, then we can just annotate the
BO with I915_BO_ALLOC_CONTIGUOUS, even if the user doesn't bother. In
the future this might prove to be potentially useful.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_region.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Thomas Hellstrom Feb. 3, 2022, 8:01 a.m. UTC | #1
On 2/2/22 18:31, Matthew Auld wrote:
> It looks like this code was accidentally dropped at some point(in a
> slightly different form), so add it back. The gist is that if we know
> the allocation will be one single chunk, then we can just annotate the
> BO with I915_BO_ALLOC_CONTIGUOUS, even if the user doesn't bother. In
> the future this might prove to be potentially useful.
Perhaps be more clear that this allows us to avoid using vmap in 
upcoming patches.
>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/gem/i915_gem_region.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_region.c b/drivers/gpu/drm/i915/gem/i915_gem_region.c
> index a4350227e9ae..dd414a2bcb06 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_region.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_region.c
> @@ -57,6 +57,9 @@ i915_gem_object_create_region(struct intel_memory_region *mem,
>   
>   	size = round_up(size, default_page_size);
>   
> +	if (default_page_size == size)
> +		flags |= I915_BO_ALLOC_CONTIGUOUS;
> +
>   	GEM_BUG_ON(!size);
>   	GEM_BUG_ON(!IS_ALIGNED(size, I915_GTT_MIN_ALIGNMENT));
>   

Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_region.c b/drivers/gpu/drm/i915/gem/i915_gem_region.c
index a4350227e9ae..dd414a2bcb06 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_region.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_region.c
@@ -57,6 +57,9 @@  i915_gem_object_create_region(struct intel_memory_region *mem,
 
 	size = round_up(size, default_page_size);
 
+	if (default_page_size == size)
+		flags |= I915_BO_ALLOC_CONTIGUOUS;
+
 	GEM_BUG_ON(!size);
 	GEM_BUG_ON(!IS_ALIGNED(size, I915_GTT_MIN_ALIGNMENT));