PCIe设备热拔方法及装置制造方法及图纸

技术编号:17248325 阅读:84 留言:0更新日期:2018-02-11 06:27
本发明专利技术提供一种PCIe设备热拔方法及装置,主机检测自身下挂的当前PCIe设备是否发生热拔,当确认有当前PCIe设备发生热拔时,直接触发设备驱动卸载流程,能够快速响应当前PCIe设备的热拔事件,实现主机和当前PCIe设备均支持暴力热拔。而且,主机内的应用程序检测到该PCIe业务对应的无效响应消息时,直接将处理该PCIe业务的业务进程退出,从而防止PCIe设备热拔过程中造成系统挂死的现象发生。此外,在PCIe设备主动检测自身异常的场景中,PCIe设备直接将自身与主机之间的数据层链路断开,这样,主机能够检测到断链事件,并触发Link中断,然后,执行设备驱动卸载流程。与此同时,主机检测到致命错误中断后进行屏蔽、降级处理,避免将该致命错误中断导致系统挂死的现象发生。

【技术实现步骤摘要】
PCIe设备热拔方法及装置
本专利技术涉及计算机
,尤其涉及一种PCIe设备热拔方法及装置。
技术介绍
PCIe(peripheralcomponentinterconnectexpress)是一种高速串行计算机扩展总线标准。PCIe设备的热插拔(hot-plugging),就是允许用户在不关闭系统,不切断电源的情况下取出和更换主机下挂的PCIe设备,并不影响主机系统的运行,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性等。PCIe设备的热拔由实现热拔的固件控制器(硬件)和热拔驱动(软件)实现,热拔的硬件部分负责设备物理拔出的检测,并向热拔驱动上报热拔事件。热拔驱动负责处理上报的热拔事件,将对应的硬件从系统中移除。暴力热拔是指未从主机的PCIe设备驱动中触发热拔流程,而是直接拔出PCIe设备。暴力热拔过程中会出现异步事件,导致主机侧的处理器和操作系统异常,这也是导致主机不支持PCIe设备的暴力热拔的主要因素。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种PCIe设备热拔方法及装置,消除主机不支持PCIe设备的暴力热拔因素,实现端到端解决PCIe设备热拔。第一方面,本申请提供了一种PCIe设备热拔方法,应用于支持高速串行计算机扩展总线标准PCIe的主机中,包括:检测所述主机下挂的当前PCIe设备是否发生热拔;当确定所述当前PCIe设备发生热拔时,执行设备驱动卸载流程,所述设备驱动卸载流程包括:快速停止所述主机分配给所述当前PCIe设备的输入输出I/O接口,快速释放所述主机的分配给所述当前PCIe设备的系统资源,以及停止与所述主机内处理器之间的交互;当接收到与所述当前PCIe设备对应业务的无效响应消息时,正确处理异常报文并退出处理所述当前PCIe设备对应业务的业务进程。而且,利用该PCIe设备热拔方法,主机只移除主机侧发生异常的PCIe端口,不影响其它PCIe端口正常工作。第一方面提供的PCIe设备热拔方法,主机主动检测自身下挂的当前PCIe设备是否发生热拔,当确认有当前PCIe设备发生热拔时,直接触发设备驱动卸载流程,这种主动检测机制能够快速响应当前PCIe设备的热拔事件,实现主机和当前PCIe设备均支持暴力热拔。而且,主机内的应用程序检测到该PCIe业务对应的无效响应消息时,直接将处理该PCIe业务的业务进程退出,从而防止PCIe设备热拔过程中造成系统挂死的现象发生。在第一方面的第一种可能的实现方式中,所述检测所述主机下挂的当前PCIe设备是否发生热拔,包括:查找所述当前PCIe设备的设备标识;当查找不到所述当前PCIe设备的设备标识时,确定所述PCIe设备发生热拔。本实现方式中,主机通过查找PCIe设备的设备标识,如果查不到则确定PCIe设备发生热拔,此种判断方式简单且能够判断出PCIe设备直接暴力拔出的情景。在第一方面的另一种可能的实现方式中,所述检测所述主机下挂的当前PCIe设备是否发生热拔,包括:检测所述主机的内部总线是否异常;当确定所述内部总线异常时,确定所述当前PCIe设备发生热拔。本实现方式中,主机通过检测到内部总线是否异常,确定该主机下挂的PCIe设备发生热拔现象,以便主机能够提高检测PCIe设备热拔的正确率。在第一方面的另一种可能的实现方式中,检测所述主机的内部总线是否异常,包括:获取所述当前PCIe设备的待发送PCIe业务报文;将所述待发送PCIe业务报文存储到报文队列中,并开始为所述待发送PCIe业务报文计时;当所述待发送PCIe业务报文的计时时长达到时间阈值时,确定所述主机的内部总线发生异常,触发Link中断,确定所述当前PCIe设备发生热拔。本实现方式中,主机通过报文在报文队列中的时间是否超时确定内部总线是否异常,该检测方式简单,且正确率高。在第一方面的一种可能的实现方式中,所述检测所述主机下挂的当前PCIe设备是否发生热拔,包括:检测是否存在插槽Presence中断,所述插槽Presence中断在检测到所述PCIe设备移除时产生;当存在所述插槽Presence中断时,确定所述当前PCIe设备发生热拔。本实现方式中,当主机检测到插槽Presence中断,确定PCIe设备发生了热拔,当PCIe设备移除后,主机会检测到该插槽Presence中断。在第一方面的另一种可能的实现方式中,所述方法还包括:当检测到致命错误中断时,屏蔽所述致命错误中断或对所述致命错误中断进行降级处理;丢弃与所述当前PCIe设备相关的异常报文,并返回报文异常的响应消息。本实现方式中,主机检测到致命错误中断后,屏蔽该致命错误中断,或者,对该致命错误中断降级处理。同时,丢弃当前PCIe设备相关的异常报文,并向与当前PCIe设备相关业务对应的应用程序返回报文异常的响应消息,避免报文丢弃后系统挂死的现象发生。第二方面,本申请还提供了另一种PCIe设备热拔方法,应用于PCIe设备中,包括:检测所述PCIe设备是否存在异常;当所述PCIe设备存在异常时,直接断开所述PCIe设备与主机之间的数据层链路,以使所述主机检测到所述数据层链路断开后触发Link中断,并使所述主机根据所述Link中断执行设备驱动卸载流程;其中,所述设备驱动卸载流程包括快速停止所述主机分配给所述PCIe设备的输入输出I/O接口,快速释放所述主机的分配给所述PCIe设备的系统资源,以及停止与所述主机内处理器之间的交互。第二方面提供的PCIe设备热拔方法,由PCIe设备主动检测自身是否存在异常,当检测到自身存在异常后,直接断开自身与主机之间的数据层链路。这样,主机侧能够检测到该LinkDown事件,触发Link中断,进而根据该Link中断触发设备驱动Remove流程;与此同时,若主机检测到RC异常,则屏蔽由该RC异常产生的致命错误中断,并对致命错误中断进行降级;同时,触发CPU正确处理异常业务报文,从而实现完全避免PCIe设备热拔过程中的异常,防止报文丢失或报文异常导致的系统挂死,提高了PCIe设备热拔过程中的数据及系统安全性。在第二方面的一种可能的实现方式中,检测所述PCIe设备是否存在异常,包括:当检测到链路恢复标识信息时,确定所述PCIe设备存在异常,所述链路恢复标识信息包括报文符号错误信息和帧错误信息;或者,当检测到所述PCIe设备的内部逻辑异常时,确定所述PCIe设备存在异常;或者,当所述PCIe设备只有一个PCIe端口时,若检测到掉电中断,则确定所述PCIe设备存在异常;或者,当所述PCIe设备包含至少两个PCIe端口时,若检测到目标PCIe端口没有参考时钟,则确定所述目标PCIe端口异常。在第二方面的另一种可能的实现方式中,所述方法还包括:当确定所述目标PCIe端口异常时,从所述PCIe设备侧移除所述目标PCIe端口。第三方面,本申请还提供了一种PCIe设备热拔方法,应用于支持高速串行计算机扩展总线标准PCIe的主机中,包括:当检测到所述主机与当前PCIe设备之间的数据层链路断开时,触发Link中断,所述主机与所述当前PCIe设备之间的数据层链路由所述当前PCIe设备检测到自身异常后主动断开;根据所述Link中断,执行设备驱动卸载流程,所述设备驱动卸载流程包括快速停止所述主机分配给所述当前PCIe设备的输入输出I/O接口,本文档来自技高网...
PCIe设备热拔方法及装置

【技术保护点】
一种PCIe设备热拔方法,应用于支持高速串行计算机扩展总线标准PCIe的主机中,其特征在于,包括:检测所述主机下挂的当前PCIe设备是否发生热拔;当确定所述当前PCIe设备发生热拔时,执行设备驱动卸载流程,所述设备驱动卸载流程包括:快速停止所述主机分配给所述当前PCIe设备的输入输出I/O接口,快速释放所述主机的分配给所述当前PCIe设备的系统资源,以及停止与所述主机内处理器之间的交互;当接收到与所述当前PCIe设备对应业务的无效响应消息时,正确处理异常报文并退出处理所述当前PCIe设备对应业务的业务进程。

【技术特征摘要】
1.一种PCIe设备热拔方法,应用于支持高速串行计算机扩展总线标准PCIe的主机中,其特征在于,包括:检测所述主机下挂的当前PCIe设备是否发生热拔;当确定所述当前PCIe设备发生热拔时,执行设备驱动卸载流程,所述设备驱动卸载流程包括:快速停止所述主机分配给所述当前PCIe设备的输入输出I/O接口,快速释放所述主机的分配给所述当前PCIe设备的系统资源,以及停止与所述主机内处理器之间的交互;当接收到与所述当前PCIe设备对应业务的无效响应消息时,正确处理异常报文并退出处理所述当前PCIe设备对应业务的业务进程。2.根据权利要求1所述的方法,其特征在于,所述检测所述主机下挂的当前PCIe设备是否发生热拔,包括:查找所述当前PCIe设备的设备标识;当查找不到所述当前PCIe设备的设备标识时,确定所述PCIe设备发生热拔。3.根据权利要求1所述的方法,其特征在于,所述检测所述主机下挂的当前PCIe设备是否发生热拔,包括:检测所述主机的内部总线是否异常;当确定所述内部总线异常时,确定所述当前PCIe设备发生热拔。4.根据权利要求3所述的方法,其特征在于,检测所述主机的内部总线是否异常,包括:获取所述当前PCIe设备的待发送PCIe业务报文;将所述待发送PCIe业务报文存储到报文队列中,并开始为所述待发送PCIe业务报文计时;当所述待发送PCIe业务报文的计时时长达到时间阈值时,确定所述主机的内部总线发生异常,触发Link中断,确定所述当前PCIe设备发生热拔。5.根据权利要求1所述的方法,其特征在于,所述检测所述主机下挂的当前PCIe设备是否发生热拔,包括:检测是否存在插槽Presence中断,所述插槽Presence中断在检测到所述PCIe设备移除时产生;当存在所述插槽Presence中断时,确定所述当前PCIe设备发生热拔。6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:当检测到致命错误中断时,屏蔽所述致命错误中断或对所述致命错误中断进行降级处理;丢弃与所述当前PCIe设备相关的异常报文,并返回报文异常的响应消息。7.一种PCIe设备热拔方法,应用于PCIe设备中,其特征在于,包括:检测所述PCIe设备是否存在异常;当所述PCIe设备存在异常时,直接断开所述PCIe设备与主机之间的数据层链路,以使所述主机检测到所述数据层链路断开后触发Link中断,并使所述主机根据所述Link中断执行设备驱动卸载流程;其中,所述设备驱动卸载流程包括快速停止所述主机分配给所述PCIe设备的输入输出I/O接口,快速释放所述主机的分配给所述PCIe设备的系统资源,以及停止与所述主机内处理器之间的交互。8.根据权利要求7所述的方法,其特征在于,检测所述PCIe设备是否存在异常,包括:当检测到链路恢复标识信息时,确定所述PCIe设备存在异常,所述链路恢复标识信息包括报文符号错误信息和帧错误信息;或者,当检测到所述PCIe设备的内部逻辑异常时,确定所述PCIe设备存在异常;或者,当所述PCIe设备只有一个PCIe端口时,若检测到掉电中断,则确定所述PCIe设备存在异常;或者,当所述PCIe设备包含至少两个PCIe端口时,若检测到目标PCIe端口没有参考时钟,则确定所述目标PCIe端口异常。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:当确定所述目标PCIe端口异常时,从所述PCIe设备侧移除所述目标PCIe端口。10.一种PCIe设备热拔方法,应用于支持高速串行计算机扩展总线标准PCIe的主机中,其特征在于,包括:当检测到所述主机与当前PCIe设备之间的数据层链路断开时,触发Link中断,所述主机与所述当前PCIe设备之间的数据层链路由所述当前PCIe设备检测到自身异常后主动断开;根据所述Link中断,执行设备驱动卸载流程,所述设备驱动卸载流程包括快速停止所述主机分配给所述当前PCIe设备的输入输出I/O接口,快速释放所述主机的分配给所述当前PCIe设备的系统资源,以及停止与所述主机内处理器之间的交互;当检测到致命错误中断时,屏蔽所述致命错误中断,并对所述致命错误中断降级处理得到非致命错误中断;以及,丢弃与所述当前PCIe设备相关的异常报文,并返回报文异常的响应消息。11.一种PCIe设备热拔装置,应用于支持高速串行计算机扩展总线标准PCIe...

【专利技术属性】
技术研发人员:方洪灿
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1