Re: [PATCH v4 22/32] drm/xe/survivability: Report 'Boot Mode enabled' status using SIGID
"Mallesh, Koujalagi" <[email protected]>
| Newsgroups | org.freedesktop.lists.intel-xe |
|---|---|
| Message-ID | <[email protected]> |
On 14-08-2026 12:01 pm, Tauro, Riana wrote: > > On 13-08-2026 16:31, Michal Wajdeczko wrote: >> >> On 8/13/2026 12:52 PM, Mallesh, Koujalagi wrote: >>> On 13-08-2026 12:44 am, Michal Wajdeczko wrote: >>>> Report 'Boot Mode' status or failure using various 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 | 21 >>>> +++++++++++++-------- >>>> 1 file changed, 13 insertions(+), 8 deletions(-) >>>> >>>> diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.c >>>> b/drivers/gpu/drm/xe/xe_survivability_mode.c >>>> index 2d8c532157fd..ebd288986c11 100644 >>>> --- a/drivers/gpu/drm/xe/xe_survivability_mode.c >>>> +++ b/drivers/gpu/drm/xe/xe_survivability_mode.c >>>> @@ -304,14 +304,13 @@ 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; >>>> + int ret; >>>> ret = create_survivability_sysfs(pdev); >>>> if (ret) >>>> - return ret; >>>> + goto failed; >>>> /* Make sure xe_heci_gsc_init() and xe_i2c_probe() are >>>> aware of survivability */ >>>> survivability->mode = true; >>>> @@ -323,19 +322,25 @@ static int >>>> enable_boot_survivability_mode(struct pci_dev *pdev) >>>> if (survivability->fdo_mode) { >>>> ret = xe_nvm_init(xe); >>>> if (ret) >>>> - goto err; >>>> + goto failed; >>>> } >>>> ret = xe_i2c_probe(xe); >>>> if (ret) >>>> - goto err; >>>> + goto failed; >>>> - dev_err(dev, "In Survivability Mode\n"); >>>> + if (check_boot_failure(xe)) >>>> + xe_log_comp_fatal(pdev, SURVIVABILITY, >>>> + &survivability->boot_status, >>>> + sizeof(survivability->boot_status), >>>> + "Boot Mode enabled!\n"); > Do we need this check? This function is only called if it is a boot > failure. > > We can have a error log with the type here. We don't need if else. > > How about something like this? and remove else > > > <3> xe 0000:03:00.0: [drm] *ERROR* SIGID=<N> FATAL (01000000) > SURVIVABILITY: mode=Boot >>> In case of fatal, will make sense to return "0" OR we can add return >>> as -ENXIO right? any thoughts? > > Mallesh, you cannot change return codes here. This defeats the purpose > of survivability mode In that case, discard my suggestion for return 0 or -ENXIO. Please post complete changes, will check it. Thanks, -/Mallesh > >> you're a reviewer here ;) >> >> but seriously, enable_boot_survivability_mode() is called from >> xe_survivability_mode_boot_enable() which says: >> >> * Return: 0 if boot survivability mode is enabled or not requested, >> negative error >> * code otherwise. >> >> so returning 0 as success code in enabling boot mode is the correct one >> returning -ENXIO will be no different than failing to enter boot mode >> >> @Riana, this is your code, can you please confirm that >> >>> After handling fatal case >>> >>> Reviewed-by: Mallesh Koujalagi <[email protected]> >>> >>>> + else >>>> + xe_log_info(pdev, SURVIVABILITY, "Boot Mode enabled!\n"); >>>> return 0; >>>> -err: >>>> - dev_err(dev, "Failed to enable Survivability Mode\n"); >>>> +failed: >>>> + xe_log_err_fatal(pdev, SURVIVABILITY, ret, "Failed to enable >>>> Boot Mode!\n"); > > Can we retain the previous dmesg? > > Thanks > Riana > >>>> survivability->mode = false; >>>> return ret; >>>> }