All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms
@ 2026-09-09  7:25 tilak.tirumalesh.tangudu
  2026-09-09  7:25 ` [PATCH 1/2] drm/xe: harden adjust_idledly() against divide-by-zero and overflow tilak.tirumalesh.tangudu
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: tilak.tirumalesh.tangudu @ 2026-09-09  7:25 UTC (permalink / raw)
  To: tilak.tirumalesh.tangudu, vinay.belgaumkar, tejas.upadhyay,
	gustavo.sousa, intel-xe

From: Tangudu Tilak Tirumalesh <tilak.tirumalesh.tangudu@intel.com>

This series adds Wa_14025941587 (minimum IDLEDLY floor) for Xe2, Xe3 and
Xe3p and hardens the shared adjust_idledly() helper it builds on.

Patch 1 fixes three pre-existing corner cases in adjust_idledly() that
can panic or misprogram RING_IDLEDLY.
(timestamp_base == 0 divide-by-zero, IDLE_WAIT_TIME == 0 underflow, and
u32 overflow in the tick<->ns conversions).

Patch 2 applies Wa_14025941587 on top of the hardened helper.

Tangudu Tilak Tirumalesh (2):
  drm/xe: harden adjust_idledly() against divide-by-zero and overflow
  drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms

 drivers/gpu/drm/xe/xe_guc_ads.c    |  2 +-
 drivers/gpu/drm/xe/xe_hw_engine.c  | 65 +++++++++++++++++++++++++-----
 drivers/gpu/drm/xe/xe_wa_oob.rules |  2 +
 3 files changed, 57 insertions(+), 12 deletions(-)

-- 
2.46.0


^ permalink raw reply	[flat|nested] 17+ messages in thread
* [PATCH 0/2] drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms
@ 2026-09-09 16:18 tilak.tirumalesh.tangudu
  2026-09-09 16:18 ` [PATCH 2/2] " tilak.tirumalesh.tangudu
  0 siblings, 1 reply; 17+ messages in thread
From: tilak.tirumalesh.tangudu @ 2026-09-09 16:18 UTC (permalink / raw)
  To: tilak.tirumalesh.tangudu, vinay.belgaumkar, tejas.upadhyay,
	gustavo.sousa, intel-xe

From: Tangudu Tilak Tirumalesh <tilak.tirumalesh.tangudu@intel.com>

This series adds Wa_14025941587 (minimum IDLEDLY floor) for Xe2, Xe3 and
Xe3p and hardens the shared adjust_idledly() helper it builds on.

Patch 1 fixes three pre-existing corner cases in adjust_idledly() that
can panic or misprogram RING_IDLEDLY.
(timestamp_base == 0 divide-by-zero, IDLE_WAIT_TIME == 0 underflow, and
u32 overflow in the tick<->ns conversions).

Patch 2 applies Wa_14025941587 on top of the hardened helper.

Patch1 v2:
Fix fourth issue by clamp with a floor (DIV_ROUND_DOWN_ULL) so the 
programmed delay stays strictly below maxcnt.

Patch2 v8:
Round up (DIV_ROUND_UP_ULL) the Wa_14025941587 minimum conversion instead,
so the tick-quantized delay cannot round back below 5 us.

Tangudu Tilak Tirumalesh (2):
  drm/xe: harden adjust_idledly() against divide-by-zero and overflow
  drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms

 drivers/gpu/drm/xe/xe_guc_ads.c    |  2 +-
 drivers/gpu/drm/xe/xe_hw_engine.c  | 75 +++++++++++++++++++++++++-----
 drivers/gpu/drm/xe/xe_wa_oob.rules |  2 +
 3 files changed, 67 insertions(+), 12 deletions(-)

-- 
2.46.0


^ permalink raw reply	[flat|nested] 17+ messages in thread
* [PATCH 0/2] drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms
@ 2026-09-15 11:13 tilak.tirumalesh.tangudu
  2026-09-15 11:13 ` [PATCH 2/2] " tilak.tirumalesh.tangudu
  0 siblings, 1 reply; 17+ messages in thread
From: tilak.tirumalesh.tangudu @ 2026-09-15 11:13 UTC (permalink / raw)
  To: tilak.tirumalesh.tangudu, vinay.belgaumkar, intel-xe

From: Tangudu Tilak Tirumalesh <tilak.tirumalesh.tangudu@intel.com>

This series adds Wa_14025941587 (minimum IDLEDLY floor) for Xe2, Xe3 and
Xe3p and hardens the shared adjust_idledly() helper it builds on.

Patch 1 fixes three pre-existing corner cases in adjust_idledly() that
can panic or misprogram RING_IDLEDLY.
(timestamp_base == 0 divide-by-zero, IDLE_WAIT_TIME == 0 underflow, and
u32 overflow in the tick<->ns conversions).

Patch 2 applies Wa_14025941587 on top of the hardened helper.

Patch1 v2:
Avoid redundant warn for unknown crystal clock.

Patch2 v8:
Round up (DIV_ROUND_UP_ULL) the Wa_14025941587 minimum conversion instead,
so the tick-quantized delay cannot round back below 5 us.

Tangudu Tilak Tirumalesh (2):
  drm/xe: harden adjust_idledly() against divide-by-zero and overflow
  drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms

 drivers/gpu/drm/xe/xe_guc_ads.c    |  2 +-
 drivers/gpu/drm/xe/xe_hw_engine.c  | 73 +++++++++++++++++++++++++-----
 drivers/gpu/drm/xe/xe_wa_oob.rules |  2 +
 3 files changed, 65 insertions(+), 12 deletions(-)

-- 
2.46.0


^ permalink raw reply	[flat|nested] 17+ messages in thread
* [PATCH 0/2] drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms
@ 2026-09-16 10:05 tilak.tirumalesh.tangudu
  2026-09-16 10:05 ` [PATCH 2/2] " tilak.tirumalesh.tangudu
  0 siblings, 1 reply; 17+ messages in thread
From: tilak.tirumalesh.tangudu @ 2026-09-16 10:05 UTC (permalink / raw)
  To: tilak.tirumalesh.tangudu, vinay.belgaumkar, shuicheng.lin,
	intel-xe

From: Tangudu Tilak Tirumalesh <tilak.tirumalesh.tangudu@intel.com>

This series adds Wa_14025941587 (minimum IDLEDLY floor) for Xe2, Xe3 and
Xe3p and hardens the shared adjust_idledly() helper it builds on.

Patch 1 fixes three pre-existing corner cases in adjust_idledly() that
can panic or misprogram RING_IDLEDLY.
(timestamp_base == 0 divide-by-zero, IDLE_WAIT_TIME == 0 underflow, and
u32 overflow in the tick<->ns conversions).

Patch 2 applies Wa_14025941587 on top of the hardened helper.

Patch1 v2:
Avoid redundant warn for unknown crystal clock.

Patch1 v3:
Field-mask the RING_IDLEDLY write with REG_FIELD_PREP(IDLE_DELAY, ...)
instead of writing the raw tick count, which could clobber
INHIBIT_SWITCH_UNTIL_PREEMPTED and reserved bits. Split the
inhibit-switch clear from the maxcnt clamp so a set inhibit bit no
longer forces a needless delay overwrite when the delay itself is
already valid. Use gt_to_xe(gt) instead of gt_to_xe(hwe->gt).

Patch2 v8:
Round up (DIV_ROUND_UP_ULL) the Wa_14025941587 minimum conversion instead,
so the tick-quantized delay cannot round back below 5 us.

Patch2 v9:
Evaluate the Wa_16023105232 xe_gt_WARN_ON() against the value
read from hardware instead of the Wa_14025941587-bumped value,
so it no longer fires on the driver's own floor. Re-check the      
rounded-up tick value against maxcnt and floor it if tick
quantization pushed it back to/above maxcnt, logging via
xe_gt_dbg since this is the driver's own value, not a hardware
anomaly.

Tangudu Tilak Tirumalesh (2):
  drm/xe: harden adjust_idledly() against divide-by-zero and overflow
  drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms

 drivers/gpu/drm/xe/xe_guc_ads.c    |  2 +-
 drivers/gpu/drm/xe/xe_hw_engine.c  | 96 ++++++++++++++++++++++++++----
 drivers/gpu/drm/xe/xe_wa_oob.rules |  2 +
 3 files changed, 88 insertions(+), 12 deletions(-)

-- 
2.46.0


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2026-09-21 22:59 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-09  7:25 [PATCH 0/2] drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms tilak.tirumalesh.tangudu
2026-09-09  7:25 ` [PATCH 1/2] drm/xe: harden adjust_idledly() against divide-by-zero and overflow tilak.tirumalesh.tangudu
2026-09-09  7:38   ` sashiko-bot
2026-09-09  7:25 ` [PATCH 2/2] drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms tilak.tirumalesh.tangudu
2026-09-09  7:39   ` sashiko-bot
2026-09-09  8:23 ` ✓ CI.KUnit: success for drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms (rev8) Patchwork
2026-09-09  9:33 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-09 14:15 ` ✗ Xe.CI.FULL: failure " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2026-09-09 16:18 [PATCH 0/2] drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms tilak.tirumalesh.tangudu
2026-09-09 16:18 ` [PATCH 2/2] " tilak.tirumalesh.tangudu
2026-09-09 16:33   ` sashiko-bot
2026-09-09 17:06     ` Tangudu, Tilak Tirumalesh
2026-09-11 21:32   ` Belgaumkar, Vinay
2026-09-15 11:13 [PATCH 0/2] " tilak.tirumalesh.tangudu
2026-09-15 11:13 ` [PATCH 2/2] " tilak.tirumalesh.tangudu
2026-09-15 11:25   ` sashiko-bot
2026-09-15 11:56     ` Tangudu, Tilak Tirumalesh
2026-09-16 10:05 [PATCH 0/2] " tilak.tirumalesh.tangudu
2026-09-16 10:05 ` [PATCH 2/2] " tilak.tirumalesh.tangudu
2026-09-21 22:58   ` Belgaumkar, Vinay

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.