一种PCIeErrorEnabling测试方法与流程

文档序号:14008189阅读:995来源:国知局

本发明涉及计算机技术领域,具体地说是一种pcieerrorenabling测试方法。



背景技术:

随着互联网等重大行业对于大数据的要求,服务器的发展迅猛,对服务器的安全可靠性要求越来越高。作为服务器产品提供商,一款服务器无论是在研发阶段还是生产阶段都需要模拟客户的使用过程,对产品的安全性进行测试,而安全性的测试主要体现在ras性能上。

ras特性中重要的一点就是pcie设备的ras特性。pcie设备是服务器中的一种重要的电子器件,随着对服务器高性能高扩展性的要求,服务器中的pcie扩展设备越来越多,从而在其工作过程中难免会出现错误,而对于稳定性要求高的用户来说,pcie设备故障可能会引起掉盘、断网等致命性的问题。pcie设备错误根据其原因还可分为硬件错误和软件错误。硬件错误是由于硬件的损害或者缺陷造成;软件错误是随机出现的,例如在pcie设备附近突然出现信号干扰等因素都可能造成pcie设备软件错误的发生。

ras性能指的是机器的可靠性(reliability)、可用性(availability)和可服务性(serviceability)。pcie设备级别的ras特性是评判服务器性能高低的一个重要的技术。因此对于高性能的服务器来说,必须具备必要的容错、在线恢复等技术支持。pcie设备ras中的pcieerror功能,是当一个pcie设备error达到一定的阈值后,达到可纠正错误的上限,会产生一条log,来便于debug分析,但是系统能自我修复并且能正常工作。

ras性能的测试方法多种多样,但是pcie设备的拓扑结构比较复杂,系统下的工具或是用debug工具读出来的pcie设备的port端口,都是和实际硬件设计相关,bios会从硬件设备读出实际端口,但是该拓扑端口是python语言工具无法识别的,所以传统的纯软件测试方法如intel的idk工具很难实现,必须要有一种方法能够找到python语言工具能够识别的拓扑端口。



技术实现要素:

本发明的技术任务是针对现有技术的不足,提供一种pcieerrorenabling测试方法。

本发明解决其技术问题所采用的技术方案是:

一种pcieerrorenabling测试方法,首先使用debug工具itp查询python语言工具能够识别的pcie设备的拓扑端口,然后进行pcieerrorenabling测试:给pcie设备注错,模拟实际应用中pcie设备出错情况,通过读取寄存器的值来判断pcieerrorenabling功能是否成功实现,可纠正的错误是否能够修复。

可选地,使用debug工具itp查询python语言工具能够识别的pcie设备的拓扑端口,具体过程如下:

1)准备好测试平台;

2)准备好windows控制端平台,需要安装.netframework3.5、安装工具intel®platformdebugtoolkit,并且拷贝pcie注错脚本到系统盘;

3)用itp工具连接测试平台和windows控制端平台;

4)在windows控制端平台打开工具intel®platformdebugtoolkit中的configconsole,选择cpu对应的相应的平台,点击apply连接上测试机,连上之后查看cpu的core状态,设备能够读取到所有的core的信息后才能确保cpu已经被工具正确的识别到,在windows控制端平台系统中打开pcie注错脚本文件中的python控制台“startcscripts.py”,不同的注错脚本名称略有不同;

5)在python控制台中输入指令,查看pcie设备的portmapping,命令如下:

#disvcuaccessmethod()

#pcie.topology()

#pcie.port_map()

itp设备识别到的port端口和python识别到的方式不同,需要做一下转化,转化成python语言能够识别的port端口:

首先需要用工具打开注错的功能并且清空寄存器,确保能够读到寄存器的数据,然后需要itp设备读取服务器上所插得所有的pcie扩展卡,并且识别每张扩展卡的实际port端口,而且根据速率信息判断是服务器上的哪张扩展卡,最后读取转化成的python语言的port端口名称,注错过程中只能识别该端口。

可选地,所述测试平台下测试机安装linux操作系统,或测试机不限制系统,在biossetup界面下模拟。

可选地,用itp工具连接测试平台和windows控制端平台,是指:在测试平台断电情况下,将itp工具的数据线xdp接口端插在测试平台主板的xdp接口,usb口插在windows控制端平台的usb端口上,并插上itp电源,确保windows控制端平台识别设备。

可选地,pcieerrorenabling测试过程如下:

1)在查询pcie设备的port端口的基础上,给pcie设备模拟注错,测试机上电开机,进入biossetup界面,测试机台启动到biossetup下,开启pcieerrorenabling功能,保存设置后退出,重启测试机台,待测试机进入系统;

2)根据上一步读到的python能够识别的port端口,对指定的设备进行模拟用户使用环境中报错机制,输入命令:

#ei.resetinjectorlockcheck()

#halt

#ei.injectpcieerror(socket=*,port=*,errtype=’ce’)

#go

注:ei.resetinjectorlockcheck(),是要清空注错寄存器中的数据和解除寄存器的锁定,halt目的是使系统暂停,cpu的运行速率非常高,高速环境中itp很难模拟注错环境,ce为可纠正的错误,socket=0or1(0=cpu1/1=cpu2),port为识别到的pcie设备的port,port为字母的情况下需要加上符号’*’;

3)根据阈值的设置大小给该pcie设备注入可纠正的error,当error数目达到阈值,此时server端通过命令ipmitoolselelist查看error的log,通过log中的寄存器地址查看pcie设备的错误是否注入成功并正确记录,

系统静置几分钟后,系统没有蓝屏或宕机现象,即在pcie设备error达到阈值后,device修正了pcie设备error。

可选地,开启pcieerrorenabling功能,是指:设置“advancedsettings->errorhandlingsettings”,select“aerhandling”to“firmware”,select“s/werrorinjectionsupport”to“disable”,“pcieerrorenabling”to“enable”。

可选地,该方法适用于带有xdp接口,支持pcieerrorenabling功能的x86服务器产品。

本发明的一种pcieerrorenabling测试方法,与现有技术相比所产生的有益效果是:

本发明提出一种使用intel的debug工具itp找到python语言工具能够识别的拓扑端口,给pcie设备注错,模拟实际应用中pcie设备出错情况,通过读取寄存器的值来判断pcieerrorenabling功能是否成功实现,可纠正的错误是否能够修复。该方法适用于带有xdp接口,支持pcieerrorenabling功能的x86服务器产品。开启pcieerrorenabling功能的情况下,给pcie设备注入可纠正错误来模拟实际应用中出现的pcie设备error,在error数目达到阈值时不会发生服务器掉盘等现象。该测试方法操作简单,实用性较强,有效确保了服务器的可靠性和安全性。

附图说明

附图1是本发明测试方法的流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如附图1所示,本发明的一种pcieerrorenabling测试方法,首先使用debug工具itp查询python语言工具能够识别的pcie设备的拓扑端口,然后进行pcieerrorenabling测试:给pcie设备注错,模拟实际应用中pcie设备出错情况,通过读取寄存器的值来判断pcieerrorenabling功能是否成功实现,可纠正的错误是否能够修复。

1、使用debug工具itp查询python语言工具能够识别的pcie设备的拓扑端口,具体过程如下:

1)准备好测试平台;

2)准备好windows控制端平台,需要安装.netframework3.5、安装工具intel®platformdebugtoolkit,并且拷贝pcie注错脚本到系统盘;

3)用itp工具连接测试平台和windows控制端平台;

4)在windows控制端平台打开工具intel®platformdebugtoolkit中的configconsole,选择cpu对应的相应的平台,点击apply连接上测试机,连上之后查看cpu的core状态,设备能够读取到所有的core的信息后才能确保cpu已经被工具正确的识别到,在windows控制端平台系统中打开pcie注错脚本文件中的python控制台“startcscripts.py”,不同的注错脚本名称略有不同;

5)在python控制台中输入指令,查看pcie设备的portmapping,命令如下:

#disvcuaccessmethod()

#pcie.topology()

#pcie.port_map()

itp设备识别到的port端口和python识别到的方式不同,需要做一下转化,转化成python语言能够识别的port端口:

首先需要用工具打开注错的功能并且清空寄存器,确保能够读到寄存器的数据,然后需要itp设备读取服务器上所插得所有的pcie扩展卡,并且识别每张扩展卡的实际port端口,而且根据速率信息判断是服务器上的哪张扩展卡,最后读取转化成的python语言的port端口名称,注错过程中只能识别该端口。

本发明中,测试平台下测试机安装linux操作系统,或测试机不限制系统,在biossetup界面下模拟。

本发明中,用itp工具连接测试平台和windows控制端平台,是指:在测试平台断电情况下,将itp工具的数据线xdp接口端插在测试平台主板的xdp接口,usb口插在windows控制端平台的usb端口上,并插上itp电源,确保windows控制端平台识别设备。

2、pcieerrorenabling测试过程如下:

1)在查询pcie设备的port端口的基础上,给pcie设备模拟注错,测试机上电开机,进入biossetup界面,测试机台启动到biossetup下,开启pcieerrorenabling功能,保存设置后退出,重启测试机台,待测试机进入系统;

2)根据上一步读到的python能够识别的port端口,对指定的设备进行模拟用户使用环境中报错机制,输入命令:

#ei.resetinjectorlockcheck()

#halt

#ei.injectpcieerror(socket=*,port=*,errtype=’ce’)

#go

注:ei.resetinjectorlockcheck(),是要清空注错寄存器中的数据和解除寄存器的锁定,halt目的是使系统暂停,cpu的运行速率非常高,高速环境中itp很难模拟注错环境,ce为可纠正的错误,socket=0or1(0=cpu1/1=cpu2),port为识别到的pcie设备的port,port为字母的情况下需要加上符号’*’;

3)根据阈值的设置大小给该pcie设备注入可纠正的error,当error数目达到阈值,此时server端通过命令ipmitoolselelist查看error的log,通过log中的寄存器地址查看pcie设备的错误是否注入成功并正确记录,

系统静置几分钟后,系统没有蓝屏或宕机现象,即在pcie设备error达到阈值后,device修正了pcie设备error。

可选地,开启pcieerrorenabling功能,是指:设置“advancedsettings->errorhandlingsettings”,select“aerhandling”to“firmware”,select“s/werrorinjectionsupport”to“disable”,“pcieerrorenabling”to“enable”。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1