l00012320
(kunlun_luzhanghui)
1
问题描述
半小时内 同一个盘 插在不同的槽位 累计通电时间最大应该相差1小时 但是差了60+小时 ,低概率出现,只出现2次
KunLun2280V2_123456_20260226-2000.tar.gz (1.7 MB)
环境信息
重现步骤
- 在槽位A,观察硬盘的通电时间
- 热拔插换槽位。
- 等硬盘信息获取完毕后,观察通电时间,对比时长变化。
期望结果
通电时间差异变化不大,半小时一小时以内。
实际结果
通电时间变化60h以上。
分析结论
BMC从硬盘pdinfo中获取和解析。暂不清楚为什么pdinfo获取出来就会产生较大差异。
出现问题时 有带内查询过两次硬盘的通电时间吗
这个属性没有持久化 bmc的问题可能比较小
l00012320
(kunlun_luzhanghui)
3
没有在带内查过,我让测试后面关注一下
。那这么说会跟硬盘强相关了?能看下读取的来源或者库吗,是否会有其它处理,比如强转导致精度损失什么的
数据类型是U32 不是浮点数,没有精度损失
/*
* Description: 获取SATA硬盘的累计上电时间
*/
static guint32 GetSATAPowerOnHours(SML_PD_INFO_S *pPDInfo)
{
guint32 power_on_hours = STORAGE_INFO_INVALID_DWORD; // indicates not support
if (pPDInfo->hw_defined_smartinfo.valid_flag == TRUE) {
power_on_hours = (guint32)(0xFFFFFFFF &
GetHWDefinedSmartAttrRawById(pPDInfo, HW_DEFINED_SMART_ATTRIBUTE_ID_POWER_ON_HOURS));
debug_log(DLOG_INFO, "SATA HW Defined Smart, power on hours: %d", power_on_hours);
} else if (pPDInfo->smartinfo.valid_flag == TRUE) {
power_on_hours = (guint32)(0xFFFFFFFF &
GetVendorSmartAttrRawByAttrId(pPDInfo, ATA_SMART_ATTRIBUTE_ID_POWER_ON_HOURS));
debug_log(DLOG_INFO, "SATA Vendor Smart, power on hours: %d", power_on_hours);
}
return power_on_hours;
}