[Intel-gfx] [PATCH] drm/i915/mtl: Increase guard pages when vt-d is enabled

Gustavo Sousa gustavo.sousa at intel.com
Thu Nov 2 18:01:06 UTC 2023


Quoting Gustavo Sousa (2023-11-02 13:35:53-03:00)
>Quoting Radhakrishna Sripada (2023-11-02 13:06:44-03:00)
>>Experiments were conducted with different multipliers to VTD_GUARD macro
>>with multiplier of 185 we were observing occasional pipe faults when
>>running kms_cursor_legacy --run-subtest single-bo
>>
>>There could possibly be an underlying issue that is being investigated, for
>>now bump the guard pages for MTL.
>>
>>Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2017
>>Cc: Gustavo Sousa <gustavo.sousa at intel.com>
>>Cc: Chris Wilson <chris.p.wilson at linux.intel.com>
>>Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada at intel.com>
>>---
>> drivers/gpu/drm/i915/gem/i915_gem_domain.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>>diff --git a/drivers/gpu/drm/i915/gem/i915_gem_domain.c b/drivers/gpu/drm/i915/gem/i915_gem_domain.c
>>index 3770828f2eaf..b65f84c6bb3f 100644
>>--- a/drivers/gpu/drm/i915/gem/i915_gem_domain.c
>>+++ b/drivers/gpu/drm/i915/gem/i915_gem_domain.c
>>@@ -456,6 +456,9 @@ i915_gem_object_pin_to_display_plane(struct drm_i915_gem_object *obj,
>>         if (intel_scanout_needs_vtd_wa(i915)) {
>>                 unsigned int guard = VTD_GUARD;
>> 
>
>I remember trying increasing the guard, but with a much smaller multiplier. So
>it turns out that using a much higher value did the "trick".
>
>I would add a FIXME comment here to remind us that this is a hack.
>
>With the FIXME in place,
>
>Reviewed-by: Gustavo Sousa <gustavo.sousa at intel.com>

Oops. I was too hasty on providing an r-b and did not really pay attention to
the resulting size of the padding and its implications as highlighted by the
other replies here. My bad, sorry about that. Please dismiss the r-b.

--
Gustavo Sousa

>
>>+                if (IS_METEORLAKE(i915))
>>+                        guard *= 200;
>>+
>>                 if (i915_gem_object_is_tiled(obj))
>>                         guard = max(guard,
>>                                     i915_gem_object_get_tile_row_size(obj));
>>-- 
>>2.34.1
>>


More information about the Intel-gfx mailing list