双控制器系统的故障调试方法与流程

文档序号:11063401阅读:450来源:国知局
双控制器系统的故障调试方法与制造工艺

本发明涉及计算机应用技术,特别是涉及一种双控制器系统的故障调试方法。



背景技术:

目前采用双控制器系统的产品,通常在产品设计上没有VGA显示接口,没法直接连接键盘显示器。有些产品考虑到系统安全会把相关的网络后台服务(比如sshd)关闭了。这样,当系统出现异常,或者网络异常不能登录系统后台,无法远程登录调试时,会导致无法调试定位故障原因的问题。在实际应用中,虽然网络异常,但在很多情况下,此时系统内部程序还是在正常运行的。

目前尚未提出一种能够对双控制器系统的故障进行调试的方法。



技术实现要素:

有鉴于此,本发明的主要目的在于提供一种双控制器系统的故障进行调试的方法,可以实现对双控制器系统故障的调试。

为了达到上述目的,本发明提出的技术方案为:

一种双控制器系统的故障调试方法,包括:

a、在双控制器系统启动时,双控制器系统中的两个控制器各自分配一块内存区域作为本控制器的内存块设备;每个所述控制器,针对对端控制器的所述内存区域,分配一段内存地址空间作为本控制器的内存映射块设备,通过非透明桥NTB将该段内存地址空间与对端控制器的所述内存区域建立映射,通过文件系统,格式化本控制器的所述内存映射块设备,触发本控制器的debug_damon守护进程运行;

b、当任一所述控制器A的系统出现故障时,其对端控制器B利用该控制器B的所述内存映射块设备,触发所述控制器A的debug_damon守护进程执行系统调试操作,并向所述制器B反馈相应的执行结果。

综上所述,本发明提出的双控制器系统的故障进行调试的方法,可以实现对双控制器系统故障的调试。

附图说明

图1为本发明实施例的方法流程示意图;

图2为图1中步骤102的具体实现示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。

本发明的核心思想是:考虑到采用双控制器系统的产品通常会带有非透明桥(Non-Transparent Bridge,NTB)功能,本发明将利用NTB,在双控制器系统中,通过一端正常的控制器调试另一端故障控制器系统,以实现双控制器系统的故障调试。

为了便于对本发明的清楚理解,在对本发明具体实施例进行说明之前,先对非透明桥技术简单介绍如下:

非透明桥的功能和透明桥很相似,其主要差别只有一点,即在非透明桥的两边都有智能设备或处理器,并且他们拥有独立的地址空间。而且,非透明桥一边的主机不能看到桥另一边的完整地址或I/O空间。每个处理器把非透明桥的另一侧视为一个端点(endpoint),并把它映射到自己的地址空间。

在非透明桥环境中,允许桥两边的主机通过便笺寄存器、门铃寄存器和心跳消息来交换一些状态信息。通过门铃寄存器可以传送心跳消息。一端主机可以通过对心跳消息的接收情况获知另一端主机出现故障。

图1为本发明实施例的方法流程示意图,如图1所示,该实施例实现的双控制器系统的故障调试方法,主要包括:

步骤101、在双控制器系统启动时,双控制器系统中的两个控制器各自分配一块内存区域作为本控制器的内存块设备;每个所述控制器,针对对端控制器的所述内存区域,分配一段内存地址空间作为本控制器的内存映射块设备,通过非透明桥(NTB)将该段内存地址空间与对端控制器的所述内存区域建立映射,通过文件系统,格式化本控制器的所述内存映射块设备,触发本控制器的debug_damon守护进程运行。

本步骤中,双控制器系统启动后,各个控制器将分别为自己配置一块内存区域作为本控制器的内存块设备,然后,各控制器再各自配置一段内存地址空间本作为用于与对端控制器的上述内存块设备建立映射的内存映射块设备,这样,通过加载本控制器的内存映射块设备,便可访问对端控制器的上述内存块设备。

本步骤中,需要通过文件系统对内存映射块设备对应的内存空间进行格式化,以便此后在该内存空间进行文件的读写操作。

这里,每个控制器的debug_damon守护进程运行后,将主要用于捕获对端控制器通过NTB发过来的中断,执行对端控制器要求执行的命令,并且把执行结果,存放在指定的位置,执行完之后,发中断给对端控制器,告知对端控制器开始获取执行结果数据。

步骤102、当任一所述控制器A的系统出现故障时,其对端控制器B利用该控制器B的所述内存映射块设备,触发所述控制器A的debug_damon守护进程执行系统调试操作,并向所述制器B反馈相应的执行结果。

较佳地,本步骤可以采用如图2所示的下述方法实现:

步骤1021、当任一所述控制器A对应的系统出现故障时,其对端控制器B挂载控制器B的所述内存映射块设备。

本步骤中,当一个控制器A出现故障时,其对端控制器B将挂载与控制器A的所述内存块设备存在映射关系的控制器B的内存映射块设备,以便保存需要进行执行的调试操作命令,这样,此后发生故障的控制器A可以通过加本控制的内存块设备获得该调试操作命令并执行,从而可以实现对控制器A的系统调试。

步骤1022、所述控制器B将需要所述控制器A的debug_damon守护进程执行的调试操作命令,写入一个cmd格式文件中;在所述写入完成后,卸载所述内存映射块设备。

本步骤中,将由正常运行的控制器B将需要所述控制器A的debug_damon守护进程执行的调试操作命令,保存在cmd格式文件中,该cmd格式文件将存储于当前挂载的内存映射块设备中。这样,由于控制器B的内存映射块设备与控制器A的所述内存块设备存在映射关系,因此,此后控制器A可以通过挂载控制器A的内存块设备,读取所述cmd格式文件执行其中的调试操作命令。

这里,在所述写入完成后,将卸载所述内存映射块设备,以确保所映射的内存块设备上信息的可靠性和一致性。

步骤1023、所述控制器B通过发送中断指令,通知所述控制器A的debug_damon守护进程执行所述cmd格式文件中的调试操作命令。

步骤1024、所述控制器A的debug_damon守护进程捕捉到所述中断指令后,挂载本控制器的所述内存块设备,执行其中所述cmd格式文件中的调试操作命令,输出所述执行结果到cmd_result文件中,将所述cmd_result文件保存在本控制器的所述内存块设备中。

步骤1025、所述控制器A的debug_damon守护进程卸载控制器A的所述内存块设备;通过中断指令通知所述控制器B获取所述执行结果。

步骤1026、所述控制器B的debug_damon守护进程捕捉到所述中断指令后,挂载控制器B的所述内存映射块设备,并访问所述cmd_result文件获取所述执行结果。

通过上述技术方案可以看出,本发明基于NTB技术可以在双控制器系统产品中的任一控制器系统出现故障时,通过一端正常的控制器对出现故障的控制器系统进行调试,从而可以实现双控制器系统的故障调试。

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

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