发明内容
本发明的目的在于提供一种基于linux中PCIE错误的处理方法及系统,以实现对PCIE错误事件进行处理,避免由于PCIE出现错误或故障使系统不能提供可靠地服务。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于linux中PCIE错误的处理方法,包括:
统计PCIE事件源中每种错误事件的事件类型的发生次数;
若检测到在第一预定时长内,存在发生次数大于N的事件类型,则将所述发生次数大于N的事件类型所对应的错误事件,标记为PCIE故障格式事件;其中,N为正整数;
若判定所述PCIE故障格式事件的事件类型为不可纠正错误,则将与所述PCIE故障格式事件对应的PCIE链路进行重置。
其中,若所述PCIE故障格式事件为不可纠正错误,则所述处理方法还包括:
判断所述PCIE故障格式事件对应的目标设备是否为最低级设备;
若是,则确定与所述目标设备相连的上级设备,并重置所述目标设备与所述上级设备之间的链路。
其中,所述统计PCIE事件源中每种错误事件的事件类型的发生次数,包括:
触发计时器开始计时,依次分析所述PCIE事件源中错误事件的事件类型,并将同一事件类型的错误事件的发生次数记录到对应的计数器。
其中,所述若检测到在第一预定时长内,存在发生次数大于N的事件类型,则将所述发生次数大于N的事件类型所对应的错误事件,标记为PCIE故障格式事件,包括:
实时检测所述计时器的计时时长是否为第一预定时长;
若是,则检测计数器中是否存在发生次数大于N次的事件类型;
若存在,则将所述发生次数大于N次的事件类型对应的错误事件标记为PCIE故障格式事件。
其中,当所述计时器的计时时长为第一预定时长,且间隔第二预定时长后,重新触发所述计数时清零并开始计时,重新触发所述计数器清零并开始计数。
其中,若检测到在第一预定时长内,存在发生次数大于N的事件类型,则将所述发生次数大于N的事件类型所对应的错误事件,标记为PCIE故障格式事件,包括:
将在24小时内发生次数大于3的事件类型所对应的错误事件,标记为PCIE故障格式事件。
其中,还包括:
生成与所述PCIE故障格式事件对应的日志文件。
一种基于linux中PCIE错误的处理系统,包括:
统计模块,用于统计PCIE事件源中每种错误事件的事件类型的发生次数;
检测模块,用于检测到在第一预定时长内,存在发生次数大于N的事件类型,则将所述发生次数大于N的事件类型所对应的错误事件,标记为PCIE故障格式事件;其中,N为正整数;
链路重置模块,用于判定所述PCIE故障格式事件的事件类型为不可纠正错误时,将与所述PCIE故障格式事件对应的PCIE链路进行重置。
其中,还包括:
设备等级判断模块,用于判断所述PCIE故障格式事件对应的目标设备是否为最低级设备;若是,则触发上级设备确定模块;
所述上级设备确定模块,用于确定与所述目标设备相连的上级设备,并通过所述执行模块重置所述目标设备与所述上级设备之间的链路。
其中,还包括:
日志文件生成模块,用于生成与所述PCIE故障格式事件对应的日志文件。
通过以上方案可知,本发明实施例提供的一种基于linux中PCIE错误的处理方法,包括:统计PCIE事件源中每种错误事件的事件类型的发生次数;若检测到在第一预定时长内,存在发生次数大于N的事件类型,则将所述发生次数大于N的事件类型所对应的错误事件,标记为PCIE故障格式事件;其中,N为正整数;若判定所述PCIE故障格式事件的事件类型为不可纠正错误,则将与所述PCIE故障格式事件对应的PCIE链路进行重置;可见,在本实施例中,通过对PCIE事件源中错误事件进行分类统计,并行相应的处理,保证linux中PCIE错误事件的正确处理,减少系统由于PCIE故障导致系统的不可靠性;本发明还公开了一种基于linux中PCIE错误的处理系统,同样能实现上述技术效果。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于linux中PCIE错误的处理方法及系统,以实现对PCIE错误事件进行处理,避免由于PCIE出现错误或故障使系统不能提供可靠地服务。
参见图1,本发明实施例提供的一种基于linux中PCIE错误的处理方法,包括:
S101、统计PCIE事件源中每种错误事件的事件类型的发生次数;
其中,统计PCIE事件源中每种错误事件的事件类型的发生次数包括:
触发计时器开始计时,依次分析所述PCIE事件源中错误事件的事件类型,并将同一事件类型的错误事件的发生次数记录到对应的计数器。
具体的,在本实施例中统计每种事件类型的发生次数的同时需要计时;这里的统计每种事件类型的发生次数为:记录同一种类型的发生次数,例如:若依次分析出PCIE事件源中的错误事件的事件类型为:M,N,N,N,C,C,C,C,K;则每个事件类型的发生次数为:M的发生次数为1,N的发生次数为3,C的发生次数为4,K的发生次数为1。
S102、若检测到在第一预定时长内,存在发生次数大于N的事件类型,则将所述发生次数大于N的事件类型所对应的错误事件,标记为PCIE故障格式事件;其中,N为正整数;
其中,所述若检测到在第一预定时长内,存在发生次数大于N的事件类型,则将所述发生次数大于N的事件类型所对应的错误事件,标记为PCIE故障格式事件,包括:
实时检测所述计时器的计时时长是否为第一预定时长;
若是,则检测计数器中是否存在发生次数大于N次的事件类型;
若存在,则将所述发生次数大于N次的事件类型对应的错误事件标记为PCIE故障格式事件。
具体的,在本实施例中根据PCIE事件源中的错误事件进行诊断,诊断原则是根据规则进行分析,规则是指在一定时间T内,同一类事件发生N次,则说明会产生故障,则将错误信息事件标记为PCIE故障格式事件。
其中,检测到在第一预定时长内,存在发生次数大于N的事件类型,则将所述发生次数大于N的事件类型所对应的错误事件,标记为PCIE故障格式事件,包括:
将在24小时内发生次数大于3的事件类型所对应的错误事件,标记为PCIE故障格式事件。
可以理解的是,最优的原则如:engine serd.io.pcie{N=3,T=24小时};即在24小时某类事件的发生次数为3
例如在上文所记载的例子中,M的发生次数为1,N的发生次数为3,C的发生次数为4,K的发生次数为1,以上即为24小时内不同事件类型的发生次数;若设定N为3,可见,则只有事件类型为C的错误事件的发生次数大于3,则么将事件类型为C的错误事件标记为PCIE故障格式事件。
其中,当所述计时器的计时时长为第一预定时长,且间隔第二预定时长后,重新触发所述计数时清零并开始计时,重新触发所述计数器清零并开始计数。
可以理解的是,在本实施例中,检测第一预定时长为T后,可以停止第二预定时长之后,再进行检测,这里的第二预定时长可以自行设置;例如:若想时间间隔小,则设置第二预定时长为15s,若想时间间隔长,则可以设置预定时长为1小时。
S103、若判定所述PCIE故障格式事件的事件类型为不可纠正错误,则将与所述PCIE故障格式事件对应的PCIE链路进行重置。
具体的,若所述PCIE故障格式事件为不可纠正错误,则所述处理方法还包括:
判断所述PCIE故障格式事件对应的目标设备是否为最低级设备;
若是,则确定与所述目标设备相连的上级设备,并重置所述目标设备与所述上级设备之间的链路。
具体的,在本实施例中根据事件类型判定是否是致命错误,这里的致命错误可以理解为不和纠正错误;如果是,则PCIE链路会被重置。且根据出位的位置,如果是最底级的设备出错,则与这些设备相连接的上级设备链路也会被重置;若否,则是可纠正错误,则检查消息发送源的工作状态,最后清除各个设备的出错位。
基于上述技术方案,本方案还包括:
生成与所述PCIE故障格式事件对应的日志文件。
具体的,为例清楚的了解PCIE链路出现的故障的具体信息,生成与PCIE故障格式事件所对应的日志文件;日志文件中至少包括了事件类型,事件发生次数、事件发生时间,事件如何处理等详细信息。
下面对本发明实施例提供的处理系统进行介绍,下文描述的处理系统与上文描述的处理方法可以相互参照。
参见图2,本发明实施例提供的一种基于linux中PCIE错误的处理系统,包括:
统计模块100,用于统计PCIE事件源中每种错误事件的事件类型的发生次数;
检测模块200,用于检测到在第一预定时长内,存在发生次数大于N的事件类型,则将所述发生次数大于N的事件类型所对应的错误事件,标记为PCIE故障格式事件;其中,N为正整数;
链路重置模块300,用于判定所述PCIE故障格式事件的事件类型为不可纠正错误时,将与所述PCIE故障格式事件对应的PCIE链路进行重置。
基于上述技术方案,本方案还包括:
设备等级判断模块,用于判断所述PCIE故障格式事件对应的目标设备是否为最低级设备;若是,则触发上级设备确定模块;
所述上级设备确定模块,用于确定与所述目标设备相连的上级设备,并通过所述执行模块重置所述目标设备与所述上级设备之间的链路。
基于上述技术方案,所述统计模块包括:
计时模块,用于触发计时器开始计时;
计数模块,用于统计每种事件类型的发生次数,并记录到对应的计数器。
基于上述技术方案,本方案还包括:
日志文件生成模块,用于生成与所述PCIE故障格式事件对应的日志文件。
本发明实施例提供的一种基于linux中PCIE错误的处理方法,包括:统计PCIE事件源中每种错误事件的事件类型的发生次数;若检测到在第一预定时长内,存在发生次数大于N的事件类型,则将所述发生次数大于N的事件类型所对应的错误事件,标记为PCIE故障格式事件;其中,N为正整数;若判定所述PCIE故障格式事件的事件类型为不可纠正错误,则将与所述PCIE故障格式事件对应的PCIE链路进行重置;可见,在本实施例中,通过对PCIE事件源中错误事件进行分类统计,并行相应的处理,保证linux中PCIE错误事件的正确处理,减少系统由于PCIE故障导致系统的不可靠性;本发明还公开了一种基于linux中PCIE错误的处理系统,同样能实现上述技术效果。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。