一种机柜I2C总线死锁处理方法、系统、介质及设备与流程

文档序号:15271566发布日期:2018-08-28 22:29阅读:161来源:国知局

本发明涉及计算机服务器技术领域,特别涉及一种机柜i2c总线死锁处理方法、系统、介质及设备。



背景技术:

随着大数据时代的到来,柜式服务器因其占用空间较小,并且具有良好的可扩展性,而得到了广泛的应用。在柜式服务器当中,一般是rmc(rackmanagementcontroller,整机柜管理控制器)利用中板通过i2c总线获取机柜中各个机柜节点的运行状况信息,但是当rmc或者中板出现异常掉电时,会产生i2c总线死锁的现象,从而影响rmc与中板的正常通信。针对这一技术问题,目前的解决方法是将中板断电进行修复,显然,此种方法极大的影响了机柜的正常工作,所以通过怎样的方法来解除i2c总线的死锁现象,以保证rmc与中板的正常通讯,是本领域技术人员亟待解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种机柜i2c总线死锁处理方法、系统、介质及设备,以解除i2c总线的死锁现象。其具体方案如下:

一种机柜i2c总线死锁处理方法,包括:

步骤s11:利用中板内的定时器中断检测rmc与所述中板的i2c总线中断是否被触发;

步骤s12:若否,则对所述定时器中断中全局变量的当前计数值加一;其中,所述全局变量能够检测所述i2c总线通讯失败的次数;

步骤s13:以预设时间间隔重复执行步骤s11,直至当前计数值超过预设阈值,然后对所述i2c总线进行重置。

优选的,所述预设时间间隔为1s。

优选的,所述预设阈值为20s。

优选的,所述步骤s11:利用中板内的定时器中断检测rmc与所述中板的i2c总线中断是否被触发的过程之后,还包括:

若否,则判定所述i2c总线异常,并将所述i2c总线的异常信息记录至日志。

优选的,所述对所述i2c总线进行重置的过程之后,还包括:

将当前计数值清零。

优选的,所述步骤s11:利用中板内的定时器中断检测rmc与所述中板的i2c总线中断是否被触发的过程之后,还包括:

若是,则判定所述i2c总线正常,并将当前计数值清零。

相应的,本发明还公开了一种机柜i2c总线死锁处理系统,包括:

触发判断模块,用于步骤s11:利用中板内的定时器中断检测rmc与所述中板的i2c总线中断是否被触发;

计数值累加模块,用于步骤s12:若否,则对所述定时器中断中全局变量的当前计数值加一;其中,所述全局变量能够检测所述i2c总线通讯失败的次数;

i2c总线重置模块,用于步骤s13:以预设时间间隔重复执行步骤s11,直至当前计数值超过预设阈值,然后对所述i2c总线进行重置。

优选的,还包括:

数值重置模块,用于步骤s11:利用中板内的定时器中断检测rmc与所述中板的i2c总线中断是否被触发的过程之后,若是,则判定所述i2c总线正常,并将当前计数值清零。

相应的,本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述公开的一种机柜i2c总线死锁处理方法的步骤。

相应的,本发明还公开了一种机柜i2c总线死锁处理设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如前述公开的一种机柜i2c总线死锁处理方法的步骤。

在本发明中,一种机柜i2c总线死锁处理方法,包括:步骤s11:利用中板内的定时器中断检测rmc与中板的i2c总线中断是否被触发;步骤s12:若否,则对定时器中断中全局变量的当前计数值加一;其中,全局变量能够检测i2c总线通讯失败的次数;步骤s13:以预设时间间隔重复执行步骤s11,直至当前计数值超过预设阈值,然后对i2c总线进行重置。

可见,在本发明中,首先是利用中板内的定时器中断去检测rmc与中板的i2c总线中断是否被触发,如果i2c总线中断未被触发,说明rmc与中板之间的i2c总线通讯出现了异常,此时将定时器中断中全局变量的当前计数值加一,之后中板内的定时器中断以预设时间间隔去重复检测rmc与中板的i2c总线中断是否被触发,如果i2c总线中断还是没有被触发,则对全局变量的当前计数值进行累加,当全局变量的当前计数值超过预设阈值时,说明rmc与中板的i2c总线被死锁,此时,利用中板对i2c总线进行重置,以解除rmc与中板之间的i2c总线死锁现象,显然,相比于现有技术中需要对中板断电才能修复i2c总线死锁的方法,本发明中的方法能够大大提高工作人员的工作效率。相应的,本发明公开的一种机柜i2c总线死锁处理系统、介质和设备,同样具有上述有益效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种机柜i2c总线死锁处理方法的流程图;

图2为本发明实施例提供的另一种机柜i2c总线死锁处理方法的流程图;

图3为本发明实施例提供的一种机柜i2c总线死锁处理系统的结构图;

图4为本发明实施例提供的一种机柜i2c总线死锁处理设备的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种机柜i2c总线死锁处理方法,如图1所示,该方法包括:

步骤s11:利用中板内的定时器中断检测rmc与中板的i2c总线中断是否被触发;

步骤s12:若否,则对定时器中断中全局变量的当前计数值加一;

其中,全局变量能够检测i2c总线通讯失败的次数;

步骤s13:以预设时间间隔重复执行步骤s11,直至当前计数值超过预设阈值,然后对i2c总线进行重置。

随着数据存储的快速发展,柜式服务器在实际当中得到了广泛的应用,在现有技术当中,柜式服务器是一般是通过rmc对机柜的各个节点进行统一管理与监控,具体的,rmc是利用中板通过i2c总线通讯获取各个机柜节点的运行状态信息。需要说明的是,中板是机柜当中rmc与机柜节点bmc进行通讯命令转发和处理的硬件处理单元。

但是,在实际应用当中,当rmc异常复位时,会导致i2c总线产生死锁的现象。以下对i2c总线死锁进行具体的阐述,可以理解的是,i2c总线包括两条信号线,一条是sda,也即双向数据线,一条是scl,也即时钟线。当在i2c总线上传输数据时,首先是由rmc发出启动信号,控制scl产生8个时钟脉冲,然后拉低scl信号为低电平,此时,中板输出应答信号,将sda信号拉为低电平,如果rmc异常复位,scl就会释放为高电平,此时,如果中板没有复位,就会继续i2c总线的应答,将sda一直拉为低电平,直到scl变为低电平,才会结束应答信号。而对于i2c总线通信中的rmc来说,复位后检测scl和sda信号,如果发现sda信号为低电平,则会认为i2c总线被占用,会一直等待scl和sda信号变为高电平,这样,rmc等待中板释放sda信号,而同时中板又在等待rmc将scl信号拉低以释放应答信号,两者相互等待,从而使得i2c总线进入死锁状态。

而在本实施例中,是相当于在中板中添加了对i2c总线的监控程序,实时监控i2c总线的状态信息,也即,利用中板内的定时器中断来监测i2c总线的sda和scl的状态信息,显然如果i2c总线长时间处于异常状态,说明i2c总线正处于死锁状态,此时中板会对i2c总线进行重置,以释放对i2c总线的控制,以此来解除i2c总线的死锁现象。

换言之,中板内的定时器中断可以让中板进入中断后,判断所要关注的事件是否发生,也即,中板内的定时器中断会检测rmc与中板的i2c总线中断是否被触发,能够想到的是,如果中板与rmc的通信正常,则i2c总线中断会被正常触发,而当i2c总线中断处于未被触发的状态,则说明中板与rmc的通信异常,此时,中板内的定时器中断的全局变量的当前计数值会自动加一,需要说明的是,此处的全局变量能够利用定时器中断检测i2c总线通讯失败的次数,然后中板内的定时器中断以预设时间间隔重复检测rmc与中板的i2c总线中断是否被触发,如果i2c总线中断没有被触发,则对全局变量的当前计数值进行累计,以全局变量的当前计数值来判断i2c总线中断的时长,如果当rmc与中板的中断时长较长时,说明rmc与中板通讯的i2c总线处于死锁状态,此时,再在中板端对i2c总线进行重置,以此来解除i2c总线的死锁现象。显然,通过本发明中的这种方法,能够保证中板与rmc的正常通信。

可见,在本实施例中,首先是利用中板内的定时器中断去检测rmc与中板的i2c总线中断是否被触发,如果i2c总线中断未被触发,说明rmc与中板之间的i2c总线通讯出现了异常,此时将定时器中断中全局变量的当前计数值加一,之后中板内的定时器中断以预设时间间隔去重复检测rmc与中板的i2c总线中断是否被触发,如果i2c总线中断还是没有被触发,则对全局变量的当前计数值进行累加,当全局变量的当前计数值超过预设阈值时,说明rmc与中板的i2c总线被死锁,此时,利用中板对i2c总线进行重置,以解除rmc与中板之间的i2c总线死锁现象,显然,相比于现有技术中需要对中板断电才能修复i2c总线死锁的方法,本实施例中的方法能够大大提高工作人员的工作效率。

作为一种优选的实施方式,本实施例对上一实施例进行具体的说明与优化,如图2所示,该方法包括:

步骤s21:利用中板内的定时器中断检测rmc与中板的i2c总线中断是否被触发。

步骤s22:若否,则对定时器中断中全局变量的当前计数值加一;

其中,全局变量能够检测i2c总线通讯失败的次数。

步骤s23:判定i2c总线异常,并将i2c总线的异常信息记录至日志。

步骤s24:若是,则判定i2c总线正常,并将当前计数值清零。

步骤s25:以预设时间间隔1s重复执行步骤s21,直至当前计数值超过预设阈值20s时,然后对i2c总线进行重置。

步骤s26:将当前计数值清零。

在本实施例中,步骤s21可参见上述实施例所公开的内容,此处不再进行赘述,能够想到的是,如果中板利用定时器中断检测到rmc与中板的i2c总线中断被触发,说明rmc与中板能够正常通讯,则判定i2c总线正常,并且将定时器的当前计数值清零,以保证后续步骤的继续执行。

但是,如果中板内的定时器中断检测到rmc与中板的i2c总线中断没有被触发,说明rmc与中板之间的i2c总线通讯处于异常状态,此时,为了提高服务器的可维护性,为了工作人员能够对系统的故障信息进行更好的定位,此时还可以将i2c总线的异常信息记录至日志,以帮助工作人员能够根据异常信息快速分析出异常信息产生的原因及位置,进而提高工作人员的工作效率。

可以理解的是,如果中板内的定时器中断检测到rmc与中板的i2c总线中断没有被触发,说明此时rmc与中板的i2c总线通讯出现了异常,此时,将定时器中断中的全局变量的当前计数值加一。能够想到的是,如果rmc与中板的i2c总线中断长时间处于异常状态,说明rmc与中板出现了i2c总线死锁现象,也即,当中板内的定时器中断以预设时间间隔1s重复去检测rmc与中板的i2c总线中断是否被触发时,如果在预设阈值20s的时间内,rmc与中板的i2c总线中断还是没有被触发,说明rmc与中板之间的i2c总线处于死锁状态,此时就可以在中板端对i2c总线进行重置,以此来恢复rmc与中板i2c总线的正常通讯。

需要说明的是,本实施例中的预设时间间隔和预设阈值都可以根据实际情况作相应的调整,此处不作具体的限定。并且,本实施例中的步骤s22和步骤s23的顺序可以根据实际情况进行调整,此处不作具体的限定。显然,利用本发明中的方法,不仅可以解决大型集成服务器机柜架构中的硬件设备的i2c总线死锁现象,例如:smartrack平台,而且也可以解决小型集成式服务器中的i2c总线死锁现象,此处不再一一列举。

而且,当利用中板对i2c总线进行重置以后,同时可以将中板内定时器中断中全局变量的当前计数值清零,以此来说明此时i2c总线已经恢复正常,rmc与中板可以进行正常的通讯,以便服务器完成后续的步骤流程。

相应的,本发明还公开了一种机柜i2c总线死锁处理系统,如图3所示,该系统包括:

触发判断模块31,用于步骤s11:利用中板内的定时器中断检测rmc与中板的i2c总线中断是否被触发;

计数值累加模块32,用于步骤s12:若否,则对定时器中断中全局变量的当前计数值加一;其中,全局变量能够检测i2c总线通讯失败的次数;

i2c总线重置模块33,用于步骤s13:以预设时间间隔重复执行步骤s11,直至当前计数值超过预设阈值,然后对i2c总线进行重置。

优选的,该机柜i2c总线死锁处理系统还包括:

日志记录模块,用于步骤s11:利用中板内的定时器中断检测rmc与中板的i2c总线中断是否被触发的过程之后,若否,则判定i2c总线异常,并将i2c总线的异常信息记录至日志。

优选的,该机柜i2c总线死锁处理系统还包括:

数值清零模块,用于对i2c总线进行重置的过程之后,将当前计数值清零。

优选的,该机柜i2c总线死锁处理系统还包括:

数值重置模块,用于步骤s11:利用中板内的定时器中断检测rmc与中板的i2c总线中断是否被触发的过程之后,若是,则判定i2c总线正常,并将当前计数值清零。

相应的,本发明还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述公开的一种机柜i2c总线死锁处理的步骤。

相应的,本发明还公开了一种机柜i2c总线死锁处理设备,如图4所示,包括:

存储器41,用于存储计算机程序;

处理器42,用于执行计算机程序时实现如前述公开的一种机柜i2c总线死锁处理方法的步骤。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种机柜i2c总线死锁处理方法、系统、介质及设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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