diff mbox series

[v2] drm/i915/mtl: Don't set PIPE_CONTROL_FLUSH_L3

Message ID 20231017195309.2476088-1-vinay.belgaumkar@intel.com (mailing list archive)
State New, archived
Headers show
Series [v2] drm/i915/mtl: Don't set PIPE_CONTROL_FLUSH_L3 | expand

Commit Message

Vinay Belgaumkar Oct. 17, 2023, 7:53 p.m. UTC
This bit does not cause an explicit L3 flush. We already use
PIPE_CONTROL_DC_FLUSH_ENABLE for that purpose.

v2: Use FLUSH_L3 only pre-MTL since spec will likely remain
the same going forward.

Cc: Nirmoy Das <nirmoy.das@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
---
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Andi Shyti Oct. 18, 2023, 4:02 a.m. UTC | #1
Hi Vinay,

On Tue, Oct 17, 2023 at 12:53:09PM -0700, Vinay Belgaumkar wrote:
> This bit does not cause an explicit L3 flush. We already use
> PIPE_CONTROL_DC_FLUSH_ENABLE for that purpose.
> 
> v2: Use FLUSH_L3 only pre-MTL since spec will likely remain
> the same going forward.
> 
> Cc: Nirmoy Das <nirmoy.das@intel.com>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>

Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> 

Andi
Andi Shyti Oct. 18, 2023, 4:43 p.m. UTC | #2
Hi Vinay,

> Possible regressions
> 
>   • igt@gem_exec_nop@basic-series:
> 
>       □ shard-glk: PASS -> INCOMPLETE +1 other test incomplete
>   • igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
> 
>       □ shard-dg2: PASS -> TIMEOUT
>   • igt@kms_cursor_crc@cursor-onscreen-64x21@pipe-d-hdmi-a-1:
> 
>       □ shard-tglu: PASS -> INCOMPLETE
>   • igt@kms_psr@psr2_suspend:
> 
>       □ shard-mtlp: NOTRUN -> FAIL

these failures look unrelated and besides they are not related to
MTL.

Andi
Andi Shyti Oct. 18, 2023, 5:43 p.m. UTC | #3
Hi Vinay,

On Tue, Oct 17, 2023 at 12:53:09PM -0700, Vinay Belgaumkar wrote:
> This bit does not cause an explicit L3 flush. We already use
> PIPE_CONTROL_DC_FLUSH_ENABLE for that purpose.
> 
> v2: Use FLUSH_L3 only pre-MTL since spec will likely remain
> the same going forward.
> 
> Cc: Nirmoy Das <nirmoy.das@intel.com>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>

pushed to drm-intel-gt-next.

Thanks,
Andi
Tvrtko Ursulin Oct. 19, 2023, 8:14 a.m. UTC | #4
On 18/10/2023 17:43, Andi Shyti wrote:
> Hi Vinay,
> 
>> Possible regressions
>>
>>    • igt@gem_exec_nop@basic-series:
>>
>>        □ shard-glk: PASS -> INCOMPLETE +1 other test incomplete
>>    • igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
>>
>>        □ shard-dg2: PASS -> TIMEOUT
>>    • igt@kms_cursor_crc@cursor-onscreen-64x21@pipe-d-hdmi-a-1:
>>
>>        □ shard-tglu: PASS -> INCOMPLETE
>>    • igt@kms_psr@psr2_suspend:
>>
>>        □ shard-mtlp: NOTRUN -> FAIL
> 
> these failures look unrelated and besides they are not related to
> MTL.

There is something new on the shards which _seems_ to be implicating this patch.

This previously all green test started failing in a bad way:

https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13775/shard-mtlp-6/igt@sysfs_preempt_timeout@timeout@vecs0.html

<5> [97.816201] Fence expiration time out i915-0000:00:02.0:sysfs_preempt_t[1166]:2!
<3> [187.682308] INFO: task kworker/0:3:165 blocked for more than 61 seconds.
<3> [187.689294]       Tainted: G        W          6.6.0-rc6-CI_DRM_13775-ge69e078f7bef+ #1
<3> [187.697375] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
<6> [187.705354] task:kworker/0:3     state:D stack:13504 pid:165   ppid:2      flags:0x00004000
<6> [187.705375] Workqueue: i915-unordered intel_gt_watchdog_work [i915]
<6> [187.705671] Call Trace:
<6> [187.705675]  <TASK>
<6> [187.705683]  __schedule+0x3a0/0xd70
<6> [187.705704]  schedule+0x5c/0xd0
<6> [187.705713]  guc_context_cancel_request+0x45e/0x9f0 [i915]
<6> [187.706078]  ? __pfx_autoremove_wake_function+0x10/0x10
<6> [187.706091]  ? intel_gt_watchdog_work+0x20/0x260 [i915]
<6> [187.706377]  intel_gt_watchdog_work+0xd1/0x260 [i915]
<6> [187.706624]  ? process_scheduled_works+0x264/0x530
<6> [187.706635]  process_scheduled_works+0x2db/0x530
<6> [187.706650]  ? __pfx_worker_thread+0x10/0x10
<6> [187.706656]  worker_thread+0x18c/0x350
<6> [187.706664]  ? __pfx_worker_thread+0x10/0x10
<6> [187.706670]  kthread+0xfe/0x130
<6> [187.706678]  ? __pfx_kthread+0x10/0x10
<6> [187.706687]  ret_from_fork+0x2c/0x50
<6> [187.706696]  ? __pfx_kthread+0x10/0x10
<6> [187.706704]  ret_from_fork_asm+0x1b/0x30
<6> [187.706724]  </TASK>

I am not claiming it is at fault but the transition from green to timing out looks clear.

Regards,

Tvrtko
Andi Shyti Oct. 19, 2023, 2:49 p.m. UTC | #5
On Thu, Oct 19, 2023 at 09:14:13AM +0100, Tvrtko Ursulin wrote:
> 
> On 18/10/2023 17:43, Andi Shyti wrote:
> > Hi Vinay,
> > 
> > > Possible regressions
> > > 
> > >    • igt@gem_exec_nop@basic-series:
> > > 
> > >        □ shard-glk: PASS -> INCOMPLETE +1 other test incomplete
> > >    • igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
> > > 
> > >        □ shard-dg2: PASS -> TIMEOUT
> > >    • igt@kms_cursor_crc@cursor-onscreen-64x21@pipe-d-hdmi-a-1:
> > > 
> > >        □ shard-tglu: PASS -> INCOMPLETE
> > >    • igt@kms_psr@psr2_suspend:
> > > 
> > >        □ shard-mtlp: NOTRUN -> FAIL
> > 
> > these failures look unrelated and besides they are not related to
> > MTL.
> 
> There is something new on the shards which _seems_ to be implicating this patch.
> 
> This previously all green test started failing in a bad way:
> 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13775/shard-mtlp-6/igt@sysfs_preempt_timeout@timeout@vecs0.html
> 
> <5> [97.816201] Fence expiration time out i915-0000:00:02.0:sysfs_preempt_t[1166]:2!
> <3> [187.682308] INFO: task kworker/0:3:165 blocked for more than 61 seconds.
> <3> [187.689294]       Tainted: G        W          6.6.0-rc6-CI_DRM_13775-ge69e078f7bef+ #1
> <3> [187.697375] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> <6> [187.705354] task:kworker/0:3     state:D stack:13504 pid:165   ppid:2      flags:0x00004000
> <6> [187.705375] Workqueue: i915-unordered intel_gt_watchdog_work [i915]
> <6> [187.705671] Call Trace:
> <6> [187.705675]  <TASK>
> <6> [187.705683]  __schedule+0x3a0/0xd70
> <6> [187.705704]  schedule+0x5c/0xd0
> <6> [187.705713]  guc_context_cancel_request+0x45e/0x9f0 [i915]
> <6> [187.706078]  ? __pfx_autoremove_wake_function+0x10/0x10
> <6> [187.706091]  ? intel_gt_watchdog_work+0x20/0x260 [i915]
> <6> [187.706377]  intel_gt_watchdog_work+0xd1/0x260 [i915]
> <6> [187.706624]  ? process_scheduled_works+0x264/0x530
> <6> [187.706635]  process_scheduled_works+0x2db/0x530
> <6> [187.706650]  ? __pfx_worker_thread+0x10/0x10
> <6> [187.706656]  worker_thread+0x18c/0x350
> <6> [187.706664]  ? __pfx_worker_thread+0x10/0x10
> <6> [187.706670]  kthread+0xfe/0x130
> <6> [187.706678]  ? __pfx_kthread+0x10/0x10
> <6> [187.706687]  ret_from_fork+0x2c/0x50
> <6> [187.706696]  ? __pfx_kthread+0x10/0x10
> <6> [187.706704]  ret_from_fork_asm+0x1b/0x30
> <6> [187.706724]  </TASK>
> 
> I am not claiming it is at fault but the transition from green to timing out looks clear.

This looks an unrelated failure to me... Before merging this
patch I did consult with Vinay.

Vinay, could you please double check here?

Andi
Nirmoy Das Oct. 19, 2023, 3:05 p.m. UTC | #6
On 10/19/2023 10:14 AM, Tvrtko Ursulin wrote:
>
> On 18/10/2023 17:43, Andi Shyti wrote:
>> Hi Vinay,
>>
>>> Possible regressions
>>>
>>>    • igt@gem_exec_nop@basic-series:
>>>
>>>        □ shard-glk: PASS -> INCOMPLETE +1 other test incomplete
>>>    • 
>>> igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
>>>
>>>        □ shard-dg2: PASS -> TIMEOUT
>>>    • igt@kms_cursor_crc@cursor-onscreen-64x21@pipe-d-hdmi-a-1:
>>>
>>>        □ shard-tglu: PASS -> INCOMPLETE
>>>    • igt@kms_psr@psr2_suspend:
>>>
>>>        □ shard-mtlp: NOTRUN -> FAIL
>>
>> these failures look unrelated and besides they are not related to
>> MTL.
>
> There is something new on the shards which _seems_ to be implicating 
> this patch.
>
> This previously all green test started failing in a bad way:
>
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13775/shard-mtlp-6/igt@sysfs_preempt_timeout@timeout@vecs0.html 
>
>
> <5> [97.816201] Fence expiration time out 
> i915-0000:00:02.0:sysfs_preempt_t[1166]:2!
> <3> [187.682308] INFO: task kworker/0:3:165 blocked for more than 61 
> seconds.
> <3> [187.689294]       Tainted: G        W 
> 6.6.0-rc6-CI_DRM_13775-ge69e078f7bef+ #1
> <3> [187.697375] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" 
> disables this message.
> <6> [187.705354] task:kworker/0:3     state:D stack:13504 pid:165   
> ppid:2      flags:0x00004000
> <6> [187.705375] Workqueue: i915-unordered intel_gt_watchdog_work [i915]
> <6> [187.705671] Call Trace:
> <6> [187.705675]  <TASK>
> <6> [187.705683]  __schedule+0x3a0/0xd70
> <6> [187.705704]  schedule+0x5c/0xd0
> <6> [187.705713]  guc_context_cancel_request+0x45e/0x9f0 [i915]
> <6> [187.706078]  ? __pfx_autoremove_wake_function+0x10/0x10
> <6> [187.706091]  ? intel_gt_watchdog_work+0x20/0x260 [i915]
> <6> [187.706377]  intel_gt_watchdog_work+0xd1/0x260 [i915]
> <6> [187.706624]  ? process_scheduled_works+0x264/0x530
> <6> [187.706635]  process_scheduled_works+0x2db/0x530
> <6> [187.706650]  ? __pfx_worker_thread+0x10/0x10
> <6> [187.706656]  worker_thread+0x18c/0x350
> <6> [187.706664]  ? __pfx_worker_thread+0x10/0x10
> <6> [187.706670]  kthread+0xfe/0x130
> <6> [187.706678]  ? __pfx_kthread+0x10/0x10
> <6> [187.706687]  ret_from_fork+0x2c/0x50
> <6> [187.706696]  ? __pfx_kthread+0x10/0x10
> <6> [187.706704]  ret_from_fork_asm+0x1b/0x30
> <6> [187.706724]  </TASK>
>
> I am not claiming it is at fault but the transition from green to 
> timing out looks clear.

https://jira.devtools.intel.com/browse/VLK-52300 This happening for a 
while as per the filter.

(machines are broken so cibuglog will not work till Tuesday)

>
> Regards,
>
> Tvrtko
Andi Shyti Oct. 19, 2023, 3:44 p.m. UTC | #7
Hi Nirmoy,

> > > > Possible regressions
> > > > 
> > > >    • igt@gem_exec_nop@basic-series:
> > > > 
> > > >        □ shard-glk: PASS -> INCOMPLETE +1 other test incomplete
> > > >    •
> > > > igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
> > > > 
> > > >        □ shard-dg2: PASS -> TIMEOUT
> > > >    • igt@kms_cursor_crc@cursor-onscreen-64x21@pipe-d-hdmi-a-1:
> > > > 
> > > >        □ shard-tglu: PASS -> INCOMPLETE
> > > >    • igt@kms_psr@psr2_suspend:
> > > > 
> > > >        □ shard-mtlp: NOTRUN -> FAIL
> > > 
> > > these failures look unrelated and besides they are not related to
> > > MTL.
> > 
> > There is something new on the shards which _seems_ to be implicating
> > this patch.
> > 
> > This previously all green test started failing in a bad way:
> > 
> > https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13775/shard-mtlp-6/igt@sysfs_preempt_timeout@timeout@vecs0.html
> > 
> > 
> > <5> [97.816201] Fence expiration time out
> > i915-0000:00:02.0:sysfs_preempt_t[1166]:2!
> > <3> [187.682308] INFO: task kworker/0:3:165 blocked for more than 61
> > seconds.
> > <3> [187.689294]       Tainted: G        W
> > 6.6.0-rc6-CI_DRM_13775-ge69e078f7bef+ #1
> > <3> [187.697375] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
> > disables this message.
> > <6> [187.705354] task:kworker/0:3     state:D stack:13504 pid:165  
> > ppid:2      flags:0x00004000
> > <6> [187.705375] Workqueue: i915-unordered intel_gt_watchdog_work [i915]
> > <6> [187.705671] Call Trace:
> > <6> [187.705675]  <TASK>
> > <6> [187.705683]  __schedule+0x3a0/0xd70
> > <6> [187.705704]  schedule+0x5c/0xd0
> > <6> [187.705713]  guc_context_cancel_request+0x45e/0x9f0 [i915]
> > <6> [187.706078]  ? __pfx_autoremove_wake_function+0x10/0x10
> > <6> [187.706091]  ? intel_gt_watchdog_work+0x20/0x260 [i915]
> > <6> [187.706377]  intel_gt_watchdog_work+0xd1/0x260 [i915]
> > <6> [187.706624]  ? process_scheduled_works+0x264/0x530
> > <6> [187.706635]  process_scheduled_works+0x2db/0x530
> > <6> [187.706650]  ? __pfx_worker_thread+0x10/0x10
> > <6> [187.706656]  worker_thread+0x18c/0x350
> > <6> [187.706664]  ? __pfx_worker_thread+0x10/0x10
> > <6> [187.706670]  kthread+0xfe/0x130
> > <6> [187.706678]  ? __pfx_kthread+0x10/0x10
> > <6> [187.706687]  ret_from_fork+0x2c/0x50
> > <6> [187.706696]  ? __pfx_kthread+0x10/0x10
> > <6> [187.706704]  ret_from_fork_asm+0x1b/0x30
> > <6> [187.706724]  </TASK>
> > 
> > I am not claiming it is at fault but the transition from green to timing
> > out looks clear.
> 
> https://jira.devtools.intel.com/browse/VLK-52300 This happening for a while
> as per the filter.
> 
> (machines are broken so cibuglog will not work till Tuesday)

Thanks, that's what I thought, but I haven't had the chance to
verify it.

Andi
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
index ba4c2422b340..86a04afff64b 100644
--- a/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/gen8_engine_cs.c
@@ -278,7 +278,8 @@  int gen12_emit_flush_rcs(struct i915_request *rq, u32 mode)
 		 * deals with Protected Memory which is not needed for
 		 * AUX CCS invalidation and lead to unwanted side effects.
 		 */
-		if (mode & EMIT_FLUSH)
+		if ((mode & EMIT_FLUSH) &&
+		    GRAPHICS_VER_FULL(rq->i915) < IP_VER(12, 70))
 			bit_group_1 |= PIPE_CONTROL_FLUSH_L3;
 
 		bit_group_1 |= PIPE_CONTROL_TILE_CACHE_FLUSH;
@@ -812,12 +813,14 @@  u32 *gen12_emit_fini_breadcrumb_rcs(struct i915_request *rq, u32 *cs)
 	u32 flags = (PIPE_CONTROL_CS_STALL |
 		     PIPE_CONTROL_TLB_INVALIDATE |
 		     PIPE_CONTROL_TILE_CACHE_FLUSH |
-		     PIPE_CONTROL_FLUSH_L3 |
 		     PIPE_CONTROL_RENDER_TARGET_CACHE_FLUSH |
 		     PIPE_CONTROL_DEPTH_CACHE_FLUSH |
 		     PIPE_CONTROL_DC_FLUSH_ENABLE |
 		     PIPE_CONTROL_FLUSH_ENABLE);
 
+	if (GRAPHICS_VER_FULL(rq->i915) < IP_VER(12, 70))
+		flags |= PIPE_CONTROL_FLUSH_L3;
+
 	/* Wa_14016712196 */
 	if (IS_GFX_GT_IP_RANGE(gt, IP_VER(12, 70), IP_VER(12, 71)) || IS_DG2(i915))
 		/* dummy PIPE_CONTROL + depth flush */