From: sashiko-bot@kernel.org
To: "Raag Jadav" <raag.jadav@intel.com>
Cc: intel-xe@lists.freedesktop.org
Subject: Re: [PATCH v3 5/5] drm/xe/ras: Move xe_ras_process_errors() to xe_ras
Date: Mon, 07 Sep 2026 08:55:56 +0000 [thread overview]
Message-ID: <20260907085556.EE0D81F00A3A@smtp.kernel.org> (raw)
In-Reply-To: <20260907083541.2194747-6-raag.jadav@intel.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Moving xe_ras_process_errors() earlier in the probe sequence causes WEDGED uevents to be silently dropped and GT-level wedging to be skipped.
- [Medium] Moving xe_ras_process_errors() to xe_ras_init() behind the xe->info.has_sysctrl check breaks fault injection for non-sysctrl platforms.
--
commit 09bf5945b56af88ea485174674cf6523adc4c2a4
Author: Raag Jadav <raag.jadav@intel.com>
drm/xe/ras: Move xe_ras_process_errors() to xe_ras
This commit moves the execution of xe_ras_process_errors() from the end
of xe_device_probe() into xe_ras_init().
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 12279ed276297..8b0ea8a48d57b 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
[ ... ]
> @@ -1148,13 +1148,6 @@ int xe_device_probe(struct xe_device *xe)
>
> detect_preproduction_hw(xe);
>
> - /*
> - * Process and log any errors detected by hardware. Possible results can
> - * include declaring the device as wedged, which must be done only after
> - * xe_wedge_fini() is registered.
> - */
> - xe_ras_process_errors(xe);
> -
> err = devm_add_action_or_reset(xe->drm.dev, xe_device_sanitize, xe);
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> index 2e8eb8856f97b..abf4800ff1e36 100644
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
[ ... ]
> @@ -933,6 +933,13 @@ void xe_ras_init(struct xe_device *xe)
> if (IS_ENABLED(CONFIG_PCIEAER))
> ras_usp_aer_init(xe);
>
> + /*
> + * During probe, process and log any errors detected by firmware while the driver was not
> + * loaded. Critical errors such as Punit and CSC are reported through Pcode init failure,
> + * causing the driver to enter survivability mode.
> + */
> + xe_ras_process_errors(xe);
[Severity: High]
Does moving this call into xe_ras_init() cause WEDGED uevents to be silently
dropped and GT-level wedging to be skipped?
Because xe_ras_init() runs early in the probe sequence, before xe_gt_init()
and drm_dev_register() have executed, a boot-time hardware error detected
here (or fault injection) triggers xe_wedge_declare() prematurely.
This synchronously calls xe_gt_wedge_declare() while gt->wedge.worker.func
is still NULL, causing GT wedging to be skipped entirely. Additionally, the
async wedge_work races with drm_dev_register(), leading kobject_uevent_env()
to silently drop the uevent because the DRM device is not yet exposed in
sysfs.
This leaves the device in a partially wedged state where GT components like
GuC continue running, and userspace is not notified of the wedged state.
[Severity: Medium]
Does placing this call behind the xe->info.has_sysctrl check break fault
injection for non-sysctrl platforms?
Earlier in xe_ras_init(), there is an early return:
if (!xe->info.has_sysctrl)
return;
Prior to this patch, xe_ras_process_errors() was called unconditionally in
xe_device_probe(), meaning the cold-reset wedge fault injection
(xe_fault_wedge_cold_reset) could be triggered on any platform. Now, the
sysctrl early return bypasses xe_ras_process_errors() entirely on platforms
without sysctrl, which causes a regression in the testing infrastructure.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260907083541.2194747-1-raag.jadav@intel.com?part=5
next prev parent reply other threads:[~2026-09-07 8:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-07 8:34 [PATCH v3 0/5] Introduce xe_wedge Raag Jadav
2026-09-07 8:34 ` [PATCH v3 1/5] drm/xe/gt: Use GT ordered workqueue for wedging Raag Jadav
2026-09-07 8:50 ` sashiko-bot
2026-09-07 12:02 ` Michal Wajdeczko
2026-09-07 13:06 ` Raag Jadav
2026-09-07 8:34 ` [PATCH v3 2/5] drm/xe: Move xe_device_wedged_fini() registration to xe_device_probe_early() Raag Jadav
2026-09-07 8:54 ` sashiko-bot
2026-09-07 8:34 ` [PATCH v3 3/5] drm/xe: Make xe_device_declare_wedged() IRQ safe Raag Jadav
2026-09-07 8:34 ` [PATCH v3 4/5] drm/xe: Introduce xe_wedge Raag Jadav
2026-09-07 8:34 ` [PATCH v3 5/5] drm/xe/ras: Move xe_ras_process_errors() to xe_ras Raag Jadav
2026-09-07 8:55 ` sashiko-bot [this message]
2026-09-07 9:35 ` ✗ CI.checkpatch: warning for Introduce xe_wedge (rev2) Patchwork
2026-09-07 9:37 ` ✓ CI.KUnit: success " Patchwork
2026-09-07 10:26 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-07 11:39 ` ✓ Xe.CI.FULL: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260907085556.EE0D81F00A3A@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=raag.jadav@intel.com \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.