Re: [PATCH v3 18/23] drm/xe: Report 'Survivability Mode' errors using SIGID
"Mallesh, Koujalagi" <[email protected]>
| Newsgroups | org.freedesktop.lists.intel-xe |
|---|---|
| Message-ID | <[email protected]> |
On 30-07-2026 08:51 pm, Michal Wajdeczko wrote: > Report various 'Survivability Mode' errors using xe_log() helpers. > > Signed-off-by: Michal Wajdeczko<[email protected]> > Cc: Rodrigo Vivi<[email protected]> > Cc: Riana Tauro<[email protected]> > Cc: Aravind Iddamsetty<[email protected]> > Cc: Mallesh Koujalagi<[email protected]> > --- > drivers/gpu/drm/xe/xe_survivability_mode.c | 24 +++++++++++++--------- > 1 file changed, 14 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.c b/drivers/gpu/drm/xe/xe_survivability_mode.c > index 4c506027fa94..788b7e8137a9 100644 > --- a/drivers/gpu/drm/xe/xe_survivability_mode.c > +++ b/drivers/gpu/drm/xe/xe_survivability_mode.c > @@ -14,9 +14,11 @@ > #include "xe_device.h" > #include "xe_heci_gsc.h" > #include "xe_i2c.h" > +#include "xe_log.h" > #include "xe_mmio.h" > #include "xe_nvm.h" > #include "xe_pcode_api.h" > +#include "xe_printk.h" > #include "xe_vsec.h" > > /** > @@ -179,11 +181,11 @@ static void log_survivability_info(struct pci_dev *pdev) > u32 *info = survivability->info; > int id; > > - dev_info(&pdev->dev, "Survivability Boot Status : Critical Failure (%d)\n", > - survivability->boot_status); > + xe_log_info(xe, SURVIVABILITY, "Boot Status : Critical Failure (%d)\n", > + survivability->boot_status); > for (id = 0; id < MAX_SCRATCH_REG; id++) { > if (info[id]) > - dev_info(&pdev->dev, "%s: 0x%x\n", reg_map[id], info[id]); > + xe_log_info(xe, SURVIVABILITY, "%s: 0x%x\n", reg_map[id], info[id]); > } > } > > @@ -316,7 +318,6 @@ static int create_survivability_sysfs(struct pci_dev *pdev) > > static int enable_boot_survivability_mode(struct pci_dev *pdev) > { > - struct device *dev = &pdev->dev; > struct xe_device *xe = pdev_to_xe_device(pdev); > struct xe_survivability *survivability = &xe->survivability; > int ret = 0; > @@ -342,12 +343,12 @@ static int enable_boot_survivability_mode(struct pci_dev *pdev) > if (ret) > goto err; > > - dev_err(dev, "In Survivability Mode\n"); > - > + xe_log_emit(pdev, check_boot_failure(xe) ? CPER_SEV_FATAL : CPER_SEV_INFORMATIONAL, > + XE_SIGID_SURVIVABILITY, 0, 0, 0, 0, "In Survivability Boot Mode\n"); Please make it cleaner and simpler. if(check_boot_failure(xe)) xe_log_err_fatal(xe, SURVIVABILITY, .. ); else xe_log_info(xe, SURVIVABILITY, .. ); OR xe_log_emit(xe_any_to_pdev(xe), check_boot_failure(xe) ? CPER_SEV_FATAL : CPER_SEV_INFORMATIONAL, XE_SIGID_SURVIVABILITY, XE_LOG_COMPONENT_SURVIVABILITY, xe_log_location(xe), &survivability->boot_status, sizeof(survivability->boot_status), "In Survivability Boot Mode\n"); > return 0; > > err: > - dev_err(dev, "Failed to enable Survivability Mode\n"); > + xe_log_err_fatal(xe, SURVIVABILITY, ret, "Failed to enable Survivability Mode\n"); > survivability->mode = false; > return ret; > } > @@ -412,7 +413,7 @@ void xe_survivability_mode_runtime_enable(struct xe_device *xe) > struct pci_dev *pdev = to_pci_dev(xe->drm.dev); > > if (!IS_DGFX(xe) || IS_SRIOV_VF(xe) || xe->info.platform < XE_BATTLEMAGE) { > - dev_err(&pdev->dev, "Runtime Survivability Mode not supported\n"); > + xe_log_info(xe, SURVIVABILITY, "Runtime Mode not supported!\n"); We can add xe_log_err(xe, SURVIVABILITY, -EOPNOTSUPP, ...); > return; > } > > @@ -422,11 +423,14 @@ void xe_survivability_mode_runtime_enable(struct xe_device *xe) > dev_err(&pdev->dev, "Failed to create survivability sysfs\n"); need to use xe_log_err(xe, SURVIVABILITY. -EIO, ... ); > > survivability->type = XE_SURVIVABILITY_TYPE_RUNTIME; > - dev_err(&pdev->dev, "Runtime Survivability mode enabled\n"); > + xe_log_err_fatal(xe, SURVIVABILITY, 0, "Runtime Mode enabled!\n"); hmm, Logging error as fatal, however passing err=0 (Success). is it right? or simply we can log as xe_log_err or xe_log_info ? any thoughts. > > xe_device_set_wedged_method(xe, DRM_WEDGE_RECOVERY_VENDOR); > xe_device_declare_wedged(xe); > - dev_err(&pdev->dev, "Firmware flash required, Please refer to the userspace documentation for more details!\n"); > + > + xe_log_err_fatal(xe, SURVIVABILITY, 0, "Firmware flash required!\n"); ditto > + xe_info(xe, "Please refer to the userspace documentation for more details how to flash the firmware on %s!\n", > + xe->info.platform_name); > } > > /**