【技术实现步骤摘要】
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设备的输入输出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...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。