From: sashiko-bot@kernel.org
To: "Raag Jadav" <raag.jadav@intel.com>, intel-xe@lists.freedesktop.org
Subject: Re: [PATCH v10 9/9] drm/xe/ras: Move xe_ras_process_errors() to xe_ras
Date: Fri, 16 Oct 2026 07:52:46 +0000 [thread overview]
Message-ID: <sashiko-outbox-173977@kernel.org> (raw)
In-Reply-To: <20261016072623.457392-10-raag.jadav@intel.com>
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] drm/xe: probe fails on boot-time RAS wedge instead of entering wedged state
- [High] xe: xe_gt_init() fails on early wedging aborting probe
- [Medium] drm/xe/ras: uevent lost when wedged before device_add()
--
commit e35d015152f1c4af5404ff382d3fce57a98e3c04
Author: Raag Jadav <raag.jadav@intel.com>
drm/xe/ras: Move xe_ras_process_errors() to xe_ras
This commit moves xe_ras_process_errors() back to xe_ras_init() during the
early probe sequence. This reverts a previous change to prevent PM reference
leaks in case of early wedging.
[ ... ]
> diff --git a/drivers/gpu/drm/xe/xe_ras.c b/drivers/gpu/drm/xe/xe_ras.c
> index 0072bb4cc5dfe..db3cbc186a514 100644
> --- a/drivers/gpu/drm/xe/xe_ras.c
> +++ b/drivers/gpu/drm/xe/xe_ras.c
> @@ -1212,6 +1212,13 @@ int xe_ras_init(struct xe_device *xe)
> get_offline_list(xe);
> get_offline_queue(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: Medium]
Will this cause the wedge uevent to be lost?
Because xe_ras_init() executes early in the probe sequence, before
drm_dev_register() is called, declaring the device as wedged here will
schedule the wedge_work asynchronously. When the worker runs, it calls
drm_dev_wedged_event(), emitting a KOBJ_CHANGE uevent on the DRM kobject.
Since device_add() has not yet created the sysfs directory for the DRM
device, will userspace daemons silently drop this uevent?
[Severity: High]
Does wedging the device this early cause the driver probe to abort entirely
instead of entering survivability mode?
When xe_ras_process_errors() detects an error and wedges the device here, the
local GTs are skipped in xe_wedge_declare() because they are not yet
initialized. Later in xe_device_probe(), the driver will continue to GT
initialization:
xe_device_probe() {
...
for_each_gt(gt, xe, id) {
err = xe_gt_init(gt);
if (err)
return err;
}
...
}
During this GT initialization, the driver will attempt to communicate with the
GuC hardware. For example, the call chain into GuC CT communication checks the
global wedged flag:
xe_guc_ct_send() / __guc_ct_send_locked() {
if (xe_wedged(ct_to_xe(ct))) {
ret = -ENOTRECOVERABLE;
goto out;
}
...
}
Since the device was globally marked as wedged by xe_ras_init(), this returns
an error that propagates up, causing xe_gt_init() and xe_device_probe() to
fail. Could this prevent the device from successfully binding and exposing
survivability mode to userspace?
> ret = devm_device_add_group(xe->drm.dev, &gpu_health_group);
> if (ret)
> xe_err(xe, "Failed to create GPU health sysfs, err=%d\n", ret);
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261016072623.457392-1-raag.jadav@intel.com?part=9
next prev parent reply other threads:[~2026-10-16 7:52 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-16 7:25 [PATCH v10 0/9] Introduce xe_wedge Raag Jadav
2026-10-16 7:25 ` [PATCH v10 1/9] drm/xe/gt: Use GT ordered workqueue for wedging Raag Jadav
2026-10-16 7:50 ` sashiko-bot
2026-10-16 7:25 ` [PATCH v10 2/9] drm/xe: Drop xe_device_set_wedged_method() Raag Jadav
2026-10-16 7:25 ` [PATCH v10 3/9] drm/xe/hw_error: Guard csc_hw_error_work() with runtime PM Raag Jadav
2026-10-16 7:43 ` sashiko-bot
2026-10-16 7:25 ` [PATCH v10 4/9] drm/xe: Move xe_device_wedged_fini() registration to xe_device_probe_early() Raag Jadav
2026-10-16 7:25 ` [PATCH v10 5/9] drm/xe: Make xe_device_declare_wedged() IRQ safe Raag Jadav
2026-10-16 7:26 ` [PATCH v10 6/9] drm/xe/pci_error: Flush GT wedge worker before bus reset Raag Jadav
2026-10-16 7:44 ` sashiko-bot
2026-10-16 7:26 ` [PATCH v10 7/9] drm/xe/amc: Guard xe_amc_work() with runtime PM Raag Jadav
2026-10-16 7:36 ` sashiko-bot
2026-10-16 7:26 ` [PATCH v10 8/9] drm/xe: Introduce xe_wedge Raag Jadav
2026-10-16 7:34 ` sashiko-bot
2026-10-16 7:26 ` [PATCH v10 9/9] drm/xe/ras: Move xe_ras_process_errors() to xe_ras Raag Jadav
2026-10-16 7:52 ` sashiko-bot [this message]
2026-10-16 8:05 ` ✗ CI.checkpatch: warning for Introduce xe_wedge (rev9) Patchwork
2026-10-16 8:06 ` ✗ CI.KUnit: failure " 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=sashiko-outbox-173977@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.