一种总线设备热插拔控制方法、装置及可读存储介质与流程

文档序号:37880669发布日期:2024-05-09 21:24阅读:57来源:国知局

本发明涉及存储,具体为一种总线设备热插拔控制方法、装置及可读存储介质。


背景技术:

1、随着科学技术的发展,人们对于计算机的性能要求也越来越高,即要求有快速的数据处理能力又要求有稳定运行的性能。目前多数计算机为了满足数据能够快速传输大多都采用pcie(peripheral component interconnect express,一种高速串行计算机扩展总线标准)设备,该类型设备具有数据传输速率高、抗干扰能力强、传输距离远等特点,并且一般都是支持热插拔(hot swapping或hot plugging)技术。

2、其中,热插拔技术即为带电插拔技术,热插拔技术允许用户在不关闭操作系统、不切断电源的情况下去除和更换损坏硬盘、电源或板卡等部件,从而提高系统对灾难的及时恢复能力、扩展性和灵活性等,热插拔技术主要包括热添加和热删除两种操作。目前操作系统中热插拔主要有通知式热插拔和暴力式热插拔两种方式,通知式热插拔在执行拔盘时需要先发出信号通知系统软件,并通过指示灯告知用户当前热插拔的状态,因此,通知式热插拔通常不会发生信息错误,而对于暴力式热插拔,目前对插拔过程中出现的异常错误并不具有解决方式,其中,pcie设备在热添加过程中,相当于设备的再次遍历,可以通过eeh(enhanced error handling,增强的错误处理)和error report(即错误报告)两种错误处理方式对异常错误进行处理,但对热删除过程中的异常无法处理,从而导致热删除后的设备再次插入时,系统无法识别设备的添加信号或系统无响应。


技术实现思路

1、本发明实施例的目的在于提供一种总线设备热插拔控制方法、装置、设备及可读存储介质,解决现有技术中无法及时处理设备热插拔过程中的异常与错误信息,对操作系统的稳定性造成影响的问题,具体技术方案如下:

2、根据本技术实施例的第一方面,提供一种总线设备热插拔控制方法,所述方法包括:

3、响应于针对所述总线设备的热插拔指令,获取目标设备的中断信息,并依据所述中断信息判断所述目标设备的中断类型;

4、若所述中断类型为将所述目标设备从操作系统中移除,则解除所述目标设备在所述操作系统中的设备驱动绑定关系,并释放所述目标设备的设备资源;

5、依据所述中断信息获取所述目标设备对应的内存块编号,根据所述内存块编号确认所述目标设备的内存块状态;

6、若所述内存块状态为冻结状态,则将所述内存块指向的内存地址进行冻结;

7、清除所述内存块状态,执行所述目标设备的热插拔指令。

8、可选地,所述目标设备的中断类型包括将所述目标设备添加至所述操作系统中、将所述目标设备从所述操作系统中移除,所述获取目标设备的中断信息,并依据所述中断信息判断所述目标设备的中断类型,包括:

9、依据所述目标设备的中断信息获取所述目标设备中第一寄存器的状态位;

10、根据所述第一寄存器的状态位的值确认所述中断类型;

11、若所述中断类型为将所述目标设备添加至所述操作系统中,则将所述目标设备重新初始化,并将所述目标设备的配置信息添加至所述操作系统中。

12、可选地,所述响应于针对所述总线设备的热插拔指令,获取目标设备的中断信息,包括:

13、获取所述总线设备执行热插拔指令的槽位信息;

14、根据所述槽位信息确认所述目标设备。

15、可选地,所述依据所述中断信息获取所述目标设备对应的内存块编号,根据所述内存块编号确认所述目标设备的内存块状态,包括:

16、获取所述目标设备对应的目标虚拟节点,所述目标虚拟节点中存储有所述目标设备与所述内存块编号的对应关系;

17、依据所述目标设备与所述目标虚拟节点,查找所述目标设备对应的内存块编号;

18、若无法查找到所述目标设备对应的内存块编号,或,所述目标设备对应的内存块编号异常,则获取与所述目标设备相连的管理控制器;

19、将所述管理控制器的内存块编号作为所述目标设备对应的内存块编号;

20、其中,所述管理控制器用于分配所述目标设备的内存信息。

21、可选地,管理控制器与所述目标设备相连,在所述清除所述内存块状态,执行所述目标设备的热插拔指令之前,所述方法还包括:

22、获取与所述管理控制器相连的第二寄存器;

23、将所述第二寄存器中的错误信息添加至所述操作系统的日志文件进行信息同步,并打印所述第二寄存器中的错误信息;

24、清除所述第二寄存器中的错误信息。

25、可选地,在所述响应于针对所述总线设备的热插拔指令,获取目标设备的中断信息之前,所述方法还包括:

26、获取预设于所述操作系统中的设备结构树,所述设备结构树中包含若干子节点;

27、通过遍历若干所述子节点对所述操作系统进行初始化;

28、将遍历的当前子节点作为目标子节点,并获取所述目标子节点的热插拔属性标志位;

29、若根据所述热插拔属性标志位确认所述目标子节点不支持热插拔操作,则结束对所述操作系统的初始化;

30、若根据所述热插拔属性标志位确认所述目标子节点支持所述热插拔操作,则创建包含所述热插拔操作信息的数据结构;

31、初始化所述数据结构,并将初始化后的所述数据结构添加至所述操作系统的文件系统中;

32、其中,所述设备结构树中的每一所述子节点与一种所述总线设备存在对应关系。

33、可选地,所述清除所述内存块状态,执行所述目标设备的热插拔指令,包括:

34、将所述目标设备对应的槽位对应的电源状态设置为关闭;

35、执行所述目标设备的拔盘操作。

36、根据本技术实施例的第二方面,提供一种总线设备热插拔控制装置,所述装置包括:

37、中断信息接收模块,用于响应于针对所述总线设备的热插拔指令,获取目标设备的中断信息,并依据所述中断信息判断所述目标设备的中断类型;

38、移除处理模块,用于若所述中断类型为将所述目标设备从从操作系统中移除,则解除所述目标设备在所述操作系统中的设备驱动绑定关系,并释放所述目标设备的设备资源;

39、内存块状态确认模块,用于依据所述中断信息获取所述目标设备对应的内存块编号,根据所述内存块编号确认所述目标设备的内存块状态;

40、内存地址冻结模块,用于若所述内存块状态为冻结状态,则将所述内存块指向的内存地址进行冻结;

41、状态清除模块,用于清除所述内存块状态,执行所述目标设备的热插拔指令。

42、根据本技术实施例的第三方面,提供一种电子设备,包括:

43、一个或多个处理器;

44、存储器;

45、一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置执行如第一方面所述的总线设备热插拔控制方法。

46、根据本技术实施例的第四方面,提供一种计算机可读存储介质,存储与电子设备结合使用的计算机程序,所述计算机程序可被处理器执行以完成如第一方面所述的总线设备热插拔控制方法。

47、本技术实施例提供的技术方案可以包括以下有益效果:

48、本技术实施例公开的总线热插拔控制方法,通过响应于针对总线设备的热插拔指令,获取目标设备的中断信息,并依据中断信息判断目标设备的中断类型;若中断类型为将目标设备从操作系统中移除,则解除目标设备在操作系统中的设备驱动绑定关系,并释放目标设备的设备资源;依据中断信息获取目标设备对应的内存块编号,根据内存块编号确认目标设备的内存块状态;若内存块状态为冻结状态,则将内存块指向的内存地址进行冻结;清除内存块状态,执行目标设备的热插拔指令。本技术通过对总线设备的拔盘操作过程进行错误信息的检测与清除,实现对总线设备的热插拔控制,在响应针对总线设备的热插拔指令后,对需要插拔的总线设备执行错误检查流程,检查总线设备在插拔过程中是否发生了增强的错误处理,具体地,判断在总线设备的拔盘过程中,内存地址是否发生数据错误,将目标总线设备对应的错误信息同步至日志文件后,冻结内存地址,避免错误信息的继续传递,将总线设备的内存块状态清除后,继续执行热插拔指令,也即恢复正常工作流程,从而有效避免因总线设备的热插拔操作产生错误信息,影响操作系统的稳定性,通过将总线设备的错误信息进行记录与冻结,避免对操作系统中的上层业务产生影响,进一步提高在设备热插拔过程中操作系统的稳定性。

49、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。

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