一种服务器PCIe设备定位故障原因的系统及方法与流程

文档序号:17397679发布日期:2019-04-13 00:57阅读:503来源:国知局
本发明涉及服务器pcie设备故障领域,具体提供了一种服务器pcie设备定位故障原因的系统及方法。
背景技术
::pcie设备是服务器最常见的外设接口之一,大量的部件包括网卡、raid卡、fpga卡、gpu卡、nvme硬盘等等都是通过pcie接口作为外设设备应用在服务器系统当中。当前pcie设备已经经历了gen1、gen2、gen3三代接口,gen4也即将大量量产应用。目前最常见的设备是应用pciegen3接口,接口速率高达8gb/s,接口速率快,对系统兼容性和稳定性要求很高。如何保证pcie设备在服务器系统中的稳定性和可用性是服务器系统设计的难点之一。pcie设备在系统中的故障包括uncorrectablefatalerror、correctablenon-fatalerror和correctableerror三类。当发生correctablenon-fatalerror和correctableerror时,服务器系统往往有性能降低等现象,而且在某些场景下,这两类错误和uncorrectablefatalerror是有联系的;当出现uncorrectablefatalerror时,服务器系统往往会发生宕机和重启等现象,验证影响线上业务的运行。现在最常见的pcie设备的debug方案是借助于pcie协议分析仪抓取pcie设备的trace进行分析,这种分析方法非常彻底,但是存在很多限制,第一,pcie协议分析仪设备昂贵。第二,pcie协议分析仪每次抓取的设备有限,当发生小概率故障时,往往无法恰好接入故障设备,所以这也是一个应用受限的地方。另外,对于pcie设备定位故障,还可以通过分析osmessage进行,也存在很多限制,第一,报错种类有限。第二,往往需要修改kernel,增加相关打印。第三,分析占用时间较长。此外,最需要快速定位故障的是pcie设备的uncorrectablefatalerror,但是发生这种错误时,服务器系统往往伴随着宕机等现象,也不可能实时的抓取出来trace和message,那么就需要在宕机状态下找出服务器系统宕机原因的方法。技术实现要素:针对以上缺点,本发明提出了一种服务器pcie设备定位故障原因的系统和方法,可以解决在服务器系统宕机的情况下,找到pcie设备报错的原因。本发明实施例提供了一种服务器pcie设备定位故障原因的系统,包括cpu单元:用于存储pcie设备配置空间寄存器;bios单元:用于通过peci链路读取存取在cpu单元的pcie设备配置空间寄存器;bmc单元:用于通过kcs链路获取bios单元通过peci链路读取存取在cpu单元的pcie设备配置空间寄存器;带外监控单元:用于在服务器系统启动时,通过impi与bmc单元数据通信将pcie设备配置空间寄存器中的信息读取出来,同时在服务器系统宕机时,通过impi与bmc单元数据通信,将在服务器系统启动时的pcie设备配置空间寄存器的信息读取出来;所述bios单元通过peci链路与cpu单元数据通信;所述bmc单元通过kcs链路与bios单元数据通信;所述带外监控单元通过impi与bmc单元数据通信。进一步的,所述pcie设备配置空间寄存器中的信息包括pcie设备的总线信息、设备信息和状态信息。进一步的,所述带外监控单元包括发送模块、接收模块和处理模块;所述发送模块用于向bmc发送4k个impi命令;所述接收模块用于接收通过向bmc发送4k个impi命令得到的4k个反馈值;所述处理模块用于对接收模块接收到的4k个反馈值自动筛选并根据地址自动排列。进一步的,所述处理模块包括筛选模块和排列模块;所述筛选模块用于对接收模块接收到的4k个反馈值进行自动筛选;所述排列模块用于对经过筛选后的4k个反馈值根据地址进行自动排列。进一步的,所述接收到的4k个反馈值为pcie设备配置空间寄存器中的信息。一种服务器pcie设备定位故障原因的方法,包括如下步骤:s1:在服务器系统启动时,首先bios单元通过peci链路读取存取在cpu单元的pcie设备配置空间寄存器,然后bmc单元通过kcs链路获取bios单元通过peci链路读取存取在cpu单元的pcie设备配置空间寄存器,最后带外监控单元通过impi与bmc单元数据通信将pcie设备配置空间寄存器中的信息读取出来;s2:在服务器系统宕机时,首先带外监控单元的发送模块向指定的pcie设备的bmc发送4k个impi命令,然后带外监控单元的接收模块接收通过向bmc发送4k个impi命令得到的4k个反馈值;最后带外监控单元的处理模块对接收模块接收到的4k个反馈值自动筛选并根据地址自动排列;s3:根据获取到的4k个反馈值定位故障信息。进一步的,在步骤s1中,所述首先bios单元通过peci链路读取存取在cpu单元的pcie设备配置空间寄存器的方法包括:在intel的eds文档中指明了所述pcie设备配置空间寄存器的地址,bios通过访问所述pcie设备配置空间寄存器的地址读取在cpu单元的pcie设备配置空间寄存器。进一步的,在执行步骤s2之前,还包括bmc通过kcs链路获取bios的pcie设备配置空间寄存器信息,还提供对外接口,所述带外监控单元通过对外接口指定需要获取pcie设备配置空间寄存器中信息的pcie设备的地址。进一步的,在步骤s3中,所述根据获取到的4k个反馈值定位故障信息包括以下步骤:判断错误的类型、定位故障的位置。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:本发明提出了一种服务器pcie设备定位故障原因的系统和方法,通过在服务器系统启动时,首先bios单元通过peci链路读取存取在cpu单元的pcie设备配置空间寄存器,然后bmc单元通过kcs链路获取bios单元通过peci链路读取存取在cpu单元的pcie设备配置空间寄存器,最后带外监控单元通过impi与bmc单元数据通信将pcie设备配置空间寄存器中的信息读取出来;在服务器系统宕机时,首先带外监控单元的发送模块向指定的pcie设备的bmc发送4k个impi命令,然后带外监控单元的接收模块接收通过向bmc发送4k个impi命令得到的4k个反馈值;最后带外监控单元的处理模块对接收模块接收到的4k个反馈值自动筛选并根据地址自动排列;接收到的4k个反馈值为pcie设备配置空间寄存器中的信息。然后对4k个反馈至进行分析,判断错误类型、定位错误的位置等。采用该种方法,可以在带外在宕机时,通过对pcie设备配置空间寄存器中的信息进行分析,找到pcie设备报错的原因,无需接入pcie协议分析仪或者分析其它log。附图说明图1是本发明实施例一种服务器pcie设备定位故障原因的系统架构图;图2是本发明实施例一种服务器pcie设备定位故障原因的方法流程图。具体实施方式为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。实施例本发明实施例提供了一种服务器pcie设备定位故障原因的系统和方法。如图1所示为一种服务器pcie设备定位故障原因的系统架构图。该系统包括cpu单元:用于存储pcie设备配置空间寄存器,pcie设备配置空间是映射在内存中的,但作为重要的系统控制资源都可以通过cpu进行访问,在intel的eds文档中指明了这些寄存器的地址,bios可以直接通过这些地址进行访问。bios单元:bios单元用于通过peci链路读取存取在cpu单元的pcie设备配置空间寄存器;bmc单元:bmc单元用于通过kcs链路获取bios单元通过peci链路读取存取在cpu单元的pcie设备配置空间寄存器;带外监控单元:用于在服务器系统启动时,通过impi与bmc单元数据通信将pcie设备配置空间读取出来,同时在服务器系统宕机时,通过impi与bmc单元数据通信,将在服务器系统启动时的pcie设备配置空间读取出来;带外监控单元包括发送模块、接收模块和处理模块;发送模块用于向bmc发送4k个impi命令;接收模块用于接收通过向bmc发送4k个impi命令得到的4k个反馈值;处理模块用于对接收模块接收到的4k个反馈值自动筛选并根据地址自动排列。另外处理模块包括筛选模块和排列模块;筛选模块用于对接收模块接收到的4k个反馈值进行自动筛选;排列模块用于对经过筛选后的4k个反馈值根据地址进行自动排列。每一个ipmi执行后会返回很多个字节,每一行最后32bit为寄存器数据,这些数据前面如果为40的话则是有效数据,如果为其它的话则不是有效数据。bios单元通过peci链路与cpu单元数据通信;bmc单元通过kcs链路与bios单元数据通信;带外监控单元通过impi与bmc单元数据通信。基于本发明实施例一种服务器pcie设备定位故障原因的系统,本发明实施例还提出了一种服务器pcie设备定位故障原因的方法。图2为本发明实施例一种服务器pcie设备定位故障原因的方法流程图。在步骤s201中,开始处理该流程。在步骤s202中,在服务器系统启动时,bios单元通过peci链路读取存取在cpu单元的pcie设备配置空间寄存器。pcie设备配置空间寄存器中的信息包括pcie设备的总线信息、设备信息和状态信息等,在intel的eds文档中指明了所述pcie设备配置空间寄存器的地址,bios通过访问pcie设备配置空间寄存器的地址读取在cpu单元的pcie设备配置空间寄存器。在步骤s203中,在服务器系统启动时,bmc单元通过kcs链路获取bios单元通过peci链路读取存取在cpu单元的pcie设备配置空间寄存器。在步骤s204中,在服务器系统启动时,带外监控单元通过impi与bmc单元数据通信将pcie设备配置空间寄存器中的信息读取出来。通过带外使用脚本,批量的将某一pcie设备的整个4k配置空间读取出来。在步骤s205中,在服务器系统宕机后,bmc仍然active。带外监控单元根据脚本可以指定需要获取pcie设备配置空间寄存器中信息的pcie设备的地址。bmc通过kcs链路获取bios的pcie设备配置空间寄存器信息,还提供对外接口,带外监控单元通过对外接口指定需要获取pcie设备配置空间寄存器中信息的pcie设备的地址。在步骤s206中,在服务器系统宕机后,带外监控单元的发送模块向指定的pcie设备的bmc发送4k个impi命令。将指定pcie设备的整个pcie配置空间读取出来。在步骤s207中,在服务器系统宕机后,通过发送模块发送的4k个ipmi命令,可以获取到4k个反馈值,带外监控单元的接收模块接收通过向bmc发送4k个impi命令得到的4k个反馈值,接收到的4k个反馈值为pcie设备配置空间寄存器中的信息,这些反馈值还包括命令执行是否成功、寄存器数据等各种信息,通过对这些反馈值的分析,可以分析出pcie设备的故障情况。通过rooterrorstatus判断错误类型,通过sourceidregister判断报错的pcie设备位置,通过pcie设备的uncorrectableerrorstatus和advancederrorcapabilityandcontrolstatus判断错误类型,根据错误类型可选的,通过检查headerlogregister进行进一步判断。在步骤s208中,在服务器系统宕机时,带外监控单元的处理模块对接收模块接收到的4k个反馈值自动筛选并根据地址自动排列。首先,筛选模块对接收模块接收到的4k个反馈值进行自动筛选。然后,排列模块对经过筛选后的4k个反馈值根据地址进行自动排列。在步骤s209中,通过上位机软件将故障进行可视化。bmc获取到aer里面的寄存器后通过接口给到外部,可以通过上位机软件的界面一目了然的看到故障信息。在步骤s210中,整个流程结束。尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1