保存固件有效调试信息并获取重建错误现场的方法技术

技术编号:35305973 阅读:19 留言:0更新日期:2022-10-22 12:56
本发明专利技术公开一种保存固件有效调试信息并获取重建错误现场的方法。所述方法包括获取各个CPU状态和固件运行上下文,将获取的信息以固定格式保存到Telemetry区域中,保存当前SSD盘卡状态到系统元数据区域;若SSD能够正常响应NVMe命令,则通过通用NVMe命令来获取保存在SSD盘卡上Telemetry区域中的SSD错误现场数据;若SSD已经异常,则重新上电后,SSD盘卡进入应急模式,主动向SSD发送NVMe telemetry通用命令读取日志和现场数据。本发明专利技术技术方案避免因无法复现客户复杂用例产生的错误或异常,并且在错误现场相关日志和上下文获取后,可以在本地电脑永久保存,缩短分析和解决问题周期。缩短分析和解决问题周期。缩短分析和解决问题周期。

【技术实现步骤摘要】
保存固件有效调试信息并获取重建错误现场的方法


[0001]本专利技术涉及存储器
,尤其涉及一种保存固件有效调试信息并获取重建错误现场的方法。

技术介绍

[0002]SSD是指固态硬盘,当SSD固件在用户IT系统里线上运行发生问题时,目前主流的调试手段一般包括:
[0003]1、查看及分析运行时主机端的日志;
[0004]2、读取卡/盘端关键事件日志后进行分析;
[0005]3、运用线上调试手段进行现场调试及分析。
[0006]对于简单或普通问题一般通过以上手段中的1和2即可找到问题的根源所在并通过在线升级固件解决问题。而复杂问题,如固件发生了内核异常错误,则需要通过手段3运用线上调试手段来分析解决。
[0007]虽然线上调试手段可以有效解决问题,然而其缺点也十分明显:
[0008]1、SSD卡盘装载在服务器中时,无法连接调试口;
[0009]2、将SSD从线上取下后,错误现场丢失,复现困难;
[0010]3、SSD上存有客户敏感数据,无法交与SSD生产厂商做进一步分析。
[0011]由于以上缺点的存在,使得本该是最有效的线上调试手段作用无法发挥,影响问题调试效率。

技术实现思路

[0012]本专利技术提供了一种保存固件有效调试信息并获取重建错误现场的方法,包括:
[0013]获取各个CPU状态和运行上下文,将获取的信息保存到Telemetry区域中;
[0014]若SSD能够正常响应NVMe命令,则通过通用NVMe命令来获取保存在SSD上Telemetry区域中的SSD现场数据;
[0015]若SSD已经异常,则重新上电后,SSD进入应急模式,主动向SSD发送通用NVMe命令读取现场数据。
[0016]如上所述的一种保存固件有效调试信息并获取重建错误现场的方法,其中,Telemetry日志包括三个连续区域,区域1通过收集最小、最关键的数据集来确定问题类别,区域2收集并分析更深入的中等量有效数据集,以确定问题的来源,区域3用于收集最大和最完整的数据集,以诊断问题;将获取的信息以固定格式保存到Telemetry区域2。
[0017]如上所述的一种保存固件有效调试信息并获取重建错误现场的方法,其中,SSD固件发生内核异常错误或者致命错误后:
[0018]如果SSD重新上电,将进入特殊的应急模式,使用通用工具读取发生异常时保存的现场数据和运行日志;
[0019]如果SSD重新上电前主机还能看到NVMe设备,那么仍然使用通用的NVMe工具读取
已保存的错误现场数据和日志。
[0020]如上所述的一种保存固件有效调试信息并获取重建错误现场的方法,其中,SSD并未发生内核异常或者致命错误,但执行命令或者I/O结果存疑或者有其他非致命错误时,则主机使用通用NVMe命令主动发起抓取现场的操作。
[0021]如上所述的一种保存固件有效调试信息并获取重建错误现场的方法,其中,SSD固件收到抓取现场命令后:
[0022]接收命令CPU广播异常给其他核,其他CPU保存CPU状态和固件运行上下文到内存;
[0023]接收命令CPU自行产生软件异常并保存CPU状态和运行上下文到内存;
[0024]所有CPU都保存完毕后,由接收命令CPU保存现场数据到Telemetry区域2中;
[0025]固件清除保存过程中的残留,以确保可再次抓取并保存现场数据。
[0026]如上所述的一种保存固件有效调试信息并获取重建错误现场的方法,其中,抓取现场数据后并不影响当前SSD固件状态,如果SSD正常则不影响后续I/O,将SSD重新上电后,SSD不会进入应急模式。
[0027]如上所述的一种保存固件有效调试信息并获取重建错误现场的方法,其中,在成功保存现场数据和日志后:
[0028]如果SSD仍然能够正常响应NVMe命令,则立即通过NVMe通用命令读取运行日志和现场数据;如果SSD已经无法正常响应NVMe命令,则在重新上电后,SSD盘卡进入到应急模式后,主机向SSD发送NVMe telemetry通用命令读取日志和现场数据;
[0029]生成通用GDB软件能够识别的关键抓取日志,在应急模式下记录固件出现异常后的代码寄存器/指针信息;
[0030]用生成的关键抓取日志进行调试分析。
[0031]如上所述的一种保存固件有效调试信息并获取重建错误现场的方法,其中,重建错误现场,具体是根据关键抓取日志的格式,用抓取的CPU状态、上下文以及代码变量区生成能够离线调试的关键抓取日志文件。
[0032]本专利技术还提供一种主机,包括:
[0033]获取各个CPU状态和运行上下文,将获取的信息保存到Telemetry区域中;
[0034]向SSD发送NVMe命令,根据响应情况确定SSD是否异常;
[0035]如果接收到SSD的正常响应,则向SSD发送通用NVMe命令,接收SSD返回Telemetry区域中的SSD现场数据;
[0036]如果未接收到SSD的正常响应,则主动向SSD发送通用NVMe命令读取现场数据。
[0037]本专利技术还提供一种SSD固件,包括:
[0038]若SSD能够正常响应NVMe命令,则响应于主机发送的通用NVMe,向主机返回SSD上Telemetry区域中的SSD现场数据;
[0039]若SSD已经异常,则重新上电后,SSD进入应急模式,响应于主机发送的通用NVMe命令,读取现场数据并返回主机。
[0040]本专利技术实现的有益效果如下:
[0041](1)避免了无法使用GDB等调试手段调试分析第一错误现场;
[0042](2)避免之后因无法复现客户复杂用例产生的错误或异常,而无法进一步分析和解决问题;
[0043](3)错误现场相关日志和上下文在获取后,可以在本地电脑永久保存,让多个工程师同时同步分析问题,快速定位解决问题。
附图说明
[0044]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0045]图1为Telemetry:Host

Initiated log数据结构示意图;
[0046]图2为当SSD固件发生内核异常或者致命错误时保存固件有效调试信息流程图;
[0047]图3为SSD盘卡并未发生内核异常或者致命错误时的操作流程图;
[0048]图4展示了根据本申请的实施例SSD保存固件有效调试信息的示意图;
[0049]图5展示了根据本申请的实施例重建SSD现场的方法的示意图。
具体实施方式
[0050]下面结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种保存固件有效调试信息并获取重建错误现场的方法,其特征在于,包括:获取各个CPU状态和运行上下文,将获取的信息保存到Telemetry区域中;若SSD能够正常响应NVMe命令,则通过通用NVMe命令来获取保存在SSD上Telemetry区域中的SSD现场数据;若SSD已经异常,则重新上电后,SSD进入应急模式,主动向SSD发送通用NVMe命令读取现场数据。2.如权利要求1所述的一种保存固件有效调试信息并获取重建错误现场的方法,其特征在于,Telemetry日志包括三个连续区域,区域1通过收集最小、最关键的数据集来确定问题类别,区域2收集并分析更深入的中等量有效数据集,以确定问题的来源,区域3用于收集最大和最完整的数据集,以诊断问题;将获取的信息以固定格式保存到Telemetry区域2。3.如权利要求1所述的一种保存固件有效调试信息并获取重建错误现场的方法,其特征在于,SSD固件发生内核异常错误或者致命错误后:如果SSD重新上电,将进入特殊的应急模式,使用通用工具读取发生异常时保存的现场数据和运行日志;如果SSD重新上电前主机还能看到NVMe设备,那么仍然使用通用的NVMe工具读取已保存的错误现场数据和日志。4.如权利要求1所述的一种保存固件有效调试信息并获取重建错误现场的方法,其特征在于,SSD并未发生内核异常或者致命错误,但执行命令或者I/O结果存疑或者有其他非致命错误时,则主机使用通用NVMe命令主动发起抓取现场的操作。5.如权利要求4所述的一种保存固件有效调试信息并获取重建错误现场的方法,其特征在于,SSD固件收到抓取现场命令后:接收命令CPU广播异常给其他核,其他CPU保存CPU状态和固件运行上下文到内存;接收命令CPU自行产生软件异常并保存CPU状态和运行上下文到内存;所有CPU都保存完毕后,由接收命令CPU保存现场数据到Telemetry区域2中;固件清除保存...

【专利技术属性】
技术研发人员:居颖轶袁戎
申请(专利权)人:苏州启恒融智信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1