Re: [PATCH v4 20/32] drm/xe/survivability: Report 'boot status' using SIGID
"Mallesh, Koujalagi" <[email protected]>
| Newsgroups | org.freedesktop.lists.intel-xe |
|---|---|
| Message-ID | <[email protected]> |
On 13-08-2026 02:58 pm, Michal Wajdeczko wrote: > > On 8/13/2026 10:38 AM, Mallesh, Koujalagi wrote: >> On 13-08-2026 12:44 am, Michal Wajdeczko wrote: >>> Report 'boot status' details using xe_log_err_fatal/info() macros. >>> While around, move static helper code closer to the caller and let >>> it take xe instead of pdev. >>> >>> 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 | 35 ++++++++++++---------- >>> 1 file changed, 19 insertions(+), 16 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.c b/drivers/gpu/drm/xe/xe_survivability_mode.c >>> index 4c506027fa94..85b4c125a217 100644 >>> --- a/drivers/gpu/drm/xe/xe_survivability_mode.c >>> +++ b/drivers/gpu/drm/xe/xe_survivability_mode.c >>> @@ -14,6 +14,7 @@ >>> #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" >>> @@ -172,21 +173,6 @@ static void populate_survivability_info(struct xe_device *xe) >>> } >>> } >>> >>> -static void log_survivability_info(struct pci_dev *pdev) >>> -{ >>> - struct xe_device *xe = pdev_to_xe_device(pdev); >>> - struct xe_survivability *survivability = &xe->survivability; >>> - u32 *info = survivability->info; >>> - int id; >>> - >>> - dev_info(&pdev->dev, "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]); >>> - } >>> -} >>> - >>> static int check_boot_failure(struct xe_device *xe) >>> { >>> struct xe_survivability *survivability = &xe->survivability; >>> @@ -429,6 +415,23 @@ void xe_survivability_mode_runtime_enable(struct xe_device *xe) >>> dev_err(&pdev->dev, "Firmware flash required, Please refer to the userspace documentation for more details!\n"); >>> } >>> >>> +static void log_survivability_info(struct xe_device *xe) >>> +{ >>> + struct xe_survivability *survivability = &xe->survivability; >>> + u32 *info = survivability->info; >>> + int id; >>> + >>> + xe_log_err_fatal(xe, SURVIVABILITY, -ENXIO, "Boot Status: %s (%u)\n", >>> + survivability->boot_status == CRITICAL_FAILURE ? >>> + "Critical Failure" : "Other", survivability->boot_status); >> Since log_survivability_info is called when survivability->boot_status == CRITICAL_FAILURE true, so please use "Critical Failure" string directly. > well, that's the current usage and function name didn't strictly say "log critical failure" only > > btw, printing fixed "Critical Failure" string followed by flexible %d also doesn't make sense IMO > > that's why I decided to make this function more flexible and reusable if needed Totally agreed, u made it generic one, however current usage, we never going to hit "Other" case, which is dead here. btw, "Other" is "Non Critical Failure" right? Thanks, -/Mallesh > >> Reviewed-by: Mallesh Koujalagi <[email protected]> >> >>> + >>> + for (id = 0; id < MAX_SCRATCH_REG; id++) { >>> + if (!info[id]) >>> + continue; >>> + xe_log_info(xe, SURVIVABILITY, "%s: %#x\n", reg_map[id], info[id]); >>> + } >>> +} >>> + >>> /** >>> * xe_survivability_mode_boot_enable - Initialize and enable boot survivability mode >>> * @xe: xe device instance >>> @@ -452,7 +455,7 @@ int xe_survivability_mode_boot_enable(struct xe_device *xe) >>> * v2 supports survivability mode for critical errors >>> */ >>> if (survivability->version < 2 && survivability->boot_status == CRITICAL_FAILURE) { >>> - log_survivability_info(pdev); >>> + log_survivability_info(xe); >>> return -ENXIO; >>> } >>>