AMD General The series is:
Reviewed-by: Tao Zhou <[email protected]> > -----Original Message----- > From: Liu, Xiang(Dean) <[email protected]> > Sent: Wednesday, September 30, 2026 4:40 PM > To: [email protected] > Cc: Zhang, Hawking <[email protected]>; Zhou1, Tao > <[email protected]>; Yang, Stanley <[email protected]>; Chai, Thomas > <[email protected]>; Liu, Xiang(Dean) <[email protected]> > Subject: [PATCH 2/2] drm/amd/ras: use page units in EEPROM status messages > > Report the actual bad page count and convert the record threshold to pages > using > the per-ASIC row size. Keep threshold decisions in record units. > > Signed-off-by: Xiang Liu <[email protected]> > --- > drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c | 29 +++++++++++-------- > 1 file changed, 17 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c > b/drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c > index e90f89be7ebf..6cafda806d19 100644 > --- a/drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c > +++ b/drivers/gpu/drm/amd/ras/core/ras_eeprom_mgr.c > @@ -260,6 +260,7 @@ int ras_eeprom_mgr_check_and_report_status(struct > ras_core_context *ras_core, bo { > struct ras_eeprom_mgr *mgr = &ras_core->eeprom_mgr; > struct ras_eeprom_info info = {0}; > + u32 bad_page_count, bad_page_threshold; > int valid_err_count; > int ret = 0; > > @@ -274,25 +275,29 @@ int ras_eeprom_mgr_check_and_report_status(struct > ras_core_context *ras_core, bo > return ret; > > valid_err_count = ras_umc_get_saved_eeprom_count(ras_core); > + bad_page_count = ras_umc_get_badpage_count(ras_core); > + bad_page_threshold = mgr->ras_err_threshold * > +ras_core->ras_umc.max_pages_per_row; > if (info.eeprom_status == RAS_EEPROM_OK) { > RAS_DEV_DBG(ras_core->dev, > - "Found existing EEPROM table with %d records\n", > - valid_err_count); > + "Found existing EEPROM table with %u records\n", > + bad_page_count); > > /* Warn if error count reaches or exceeds 90% of the threshold > */ > if (10 * valid_err_count >= 9 * mgr->ras_err_threshold) > RAS_DEV_WARN(ras_core->dev, > - "RAS records:%u exceeds 90%% of threshold:%d\n", > - valid_err_count, mgr->ras_err_threshold); > + "RAS records:%u exceeds 90%% of threshold:%u\n", > + bad_page_count, bad_page_threshold); > > } else if (info.eeprom_status == RAS_EEPROM_LOCKED) { > if (info.rma_status || valid_err_count > > mgr->ras_err_threshold) { > if (info.rma_status) > - RAS_DEV_ERR(ras_core->dev, "RAS records:%d > exceed error threshold", > - valid_err_count); > + RAS_DEV_ERR(ras_core->dev, > + "RAS records:%u exceed error > threshold", > + bad_page_count); > else > - RAS_DEV_ERR(ras_core->dev, "RAS records:%d > exceed threshold:%d", > - valid_err_count, > mgr->ras_err_threshold); > + RAS_DEV_ERR(ras_core->dev, > + "RAS records:%u exceed > threshold:%u", > + bad_page_count, bad_page_threshold); > > if (mgr->work_mode_over_thresh != > RAS_WORK_MODE_OVER_THRESH_DEBUG) > ras_core->bad_page_over_threshold = true; @@ - > 320,13 +325,13 @@ int ras_eeprom_mgr_check_and_report_status(struct > ras_core_context *ras_core, bo > ras_core->is_rma = false; > ras_core->bad_page_over_threshold = false; > RAS_DEV_INFO(ras_core->dev, > - "records:%d threshold:%d, resetting RAS > table > header signature", > - valid_err_count, > mgr->ras_err_threshold); > + "records:%u threshold:%u, resetting RAS > table > header signature", > + bad_page_count, bad_page_threshold); > } > } else { > RAS_DEV_ERR(ras_core->dev, > - "records:%d threshold:%d, not support to resize > RAS > table\n", > - valid_err_count, mgr->ras_err_threshold); > + "records:%u threshold:%u, not support to resize > RAS > table\n", > + bad_page_count, bad_page_threshold); > } > } else { > RAS_DEV_ERR(ras_core->dev, "Error ras eeprom status:0x%x\n", > info.eeprom_status); > -- > 2.34.1
