一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种内核软死锁处理方法、装置、设备及存储介质与流程

2022-02-22 08:23:30 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别涉及一种内核软死锁处理方法、装置、设备及存储介质。


背景技术:

2.os(operating system,操作系统)是管理计算机硬件与软件资源的计算机程序,操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务,是计算机系统的基础程序。os在运行过程中,因为各种原因会出现soft lockup(内核软死锁)的情况,soft lockup是指cpu被内核代码占据以至于无法执行其它进程,也就是挂死的情况,在这种情况下程序及用户的任何操作都无法进行,处于一种死机状态,降低了客户使用体验感。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种内核软死锁处理方法、装置、设备及介质,能够实现对操作系统运行中内核软死锁问题的自动修复。其具体方案如下:
4.第一方面,本技术公开了一种内核软死锁处理方法,包括:
5.为每个cpu分配一个看门狗线程,并根据所述看门狗线程判断所述cpu运行的操作系统是否存在内核软死锁;
6.若存在内核软死锁,则确定出触发所述内核软死锁的目标进程,并调用不可屏蔽中断;
7.利用所述不可屏蔽中断降低所述目标进程的优先级,以便所述操作系统通过重新运行所述看门狗线程处理所述内核软死锁。
8.可选的,所述确定出触发所述内核软死锁的目标进程,包括:
9.获取所述操作系统的进程日志;
10.根据所述进程日志,确定出触发所述内核软死锁的目标进程;所述目标进程包括先进先出任务和软中断。
11.可选的,所述降低所述目标进程的优先级,包括:
12.根据预先设定的优先级调整配置,确定出所述目标进程对应的优先级调整参数;
13.根据所述优先级调整参数,降低所述目标进程的优先级。
14.可选的,所述利用所述不可屏蔽中断降低所述目标进程的优先级,以便所述操作系统通过重新运行所述看门狗线程处理所述内核软死锁,包括:
15.利用所述不可屏蔽中断降低所述目标进程的优先级,并重启所述看门狗线程,以便所述操作系统通过运行所述看门狗线程,重启自身系统以处理所述内核软死锁。
16.可选的,所述根据所述看门狗线程判断所述cpu运行的操作系统是否存在内核软死锁,包括:
17.获取所述看门狗线程对应的计时阈值;
18.若所述看门狗线程在所述计时阈值内没有执行计时清零操作,则判定所述cpu运行的操作系统存在内核软死锁。
19.可选的,所述为每个cpu分配一个看门狗线程,包括:
20.为每个cpu分配一个定时执行的内核线程,并根据预设配置参数为所述内核线程配置相应的计时阈值,以得到所述看门狗线程。
21.可选的,所述若所述看门狗线程在所述计时阈值内没有执行计时清零操作,则判定所述cpu运行的操作系统存在内核软死锁,包括:
22.调用不可屏蔽中断,并启动计时器按照所述计时阈值进行计时;
23.判断在所述计时阈值之内是否检测到所述cpu向所述看门狗线程发送的喂狗信号;
24.若所述看门狗线程在所述计时阈值内没有执行计时清零操作,且在所述计时阈值之内没有检测到所述cpu向所述看门狗线程发送的喂狗信号,则判定所述cpu运行的操作系统存在内核软死锁。
25.第二方面,本技术公开了一种内核软死锁处理装置,包括:
26.内核软死锁判断模块,用于为每个cpu分配一个看门狗线程,根据所述看门狗线程判断所述cpu运行的操作系统是否存在内核软死锁;
27.不可屏蔽中断调用模块,用于若存在内核软死锁,则确定出触发所述内核软死锁的目标进程,并调用不可屏蔽中断;
28.优先级调整模块,用于利用所述不可屏蔽中断降低所述目标进程的优先级,以便所述操作系统通过重新运行所述看门狗线程处理所述内核软死锁。
29.第三方面,本技术公开了一种电子设备,包括:
30.存储器,用于保存计算机程序;
31.处理器,用于执行所述计算机程序,以实现前述的内核软死锁处理方法。
32.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的内核软死锁处理方法。
33.本技术中,为每个cpu分配一个看门狗线程,并根据所述看门狗线程判断所述cpu运行的操作系统是否存在内核软死锁;若存在内核软死锁,则确定出触发所述内核软死锁的目标进程,并调用不可屏蔽中断;利用所述不可屏蔽中断降低所述目标进程的优先级,以便所述操作系统通过重新运行所述看门狗线程处理所述内核软死锁。由上可见,通过看门狗线程检测操作系统是否发生内核软死锁,若检测到出现了内核软死锁,则调用不可屏蔽中断后,降低触发内核软死锁的目标进程的优先级,从而使操作系统通过重新运行看门狗线程处理内核软死锁。实现了对操作系统运行中内核软死锁问题的自动修复,提高了用户的使用体验感。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
35.图1为本技术提供的一种内核软死锁处理方法流程图;
36.图2为本技术提供的一种内核软死锁处理装置结构示意图;
37.图3为本技术提供的一种电子设备结构图。
具体实施方式
38.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.现有技术中,os在运行过程中,因为各种原因会出现soft lockup(内核软死锁)的情况,soft lockup是指cpu被内核代码占据以至于无法执行其它进程,也就是挂死的情况,在这种情况下程序及用户的任何操作都无法进行,处于一种死机状态,降低了客户使用体验感。
40.本技术实施例公开了一种内核软死锁处理方法,参见图1所示,该方法可以包括以下步骤:
41.步骤s11:为每个cpu分配一个看门狗线程,并根据所述看门狗线程判断所述cpu运行的操作系统是否存在内核软死锁。
42.本实施例中,为每个需要检测并处理内核软死锁的操作系统所在的cpu(central processing unit,中央处理器)分配一个看门狗线程(watchdog),然后根据该看门狗线程实时判断cpu运行的操作系统是否存在内核软死锁。具体的,本实施例中,所述根据所述看门狗线程判断所述cpu运行的操作系统是否存在内核软死锁,可以包括:获取所述看门狗线程对应的计时阈值;若所述看门狗线程在所述计时阈值内没有执行计时清零操作,则判定所述cpu运行的操作系统存在内核软死锁。也就是说,如果watchdog没有得到执行的话就意味着发生了内核软死锁。
43.本实施例中,所述为每个cpu分配一个看门狗线程,可以包括:为每个cpu分配一个定时执行的内核线程,并根据预设配置参数为所述内核线程配置相应的计时阈值,以得到所述看门狗线程。即给每个cpu分配一个定时执行的内核线程([watchdog/x]),并根据预设配置参数为该内核线程配置相应的计时阈值,即配置看门狗的计时周期,以得到看门狗线程,从而如果该线程在设定的期限内没有得到执行的话就意味着发生了内核软死锁。
[0044]
本实施例中,所述若所述看门狗线程在所述计时阈值内没有执行计时清零操作,则判定所述cpu运行的操作系统存在内核软死锁,可以包括:调用不可屏蔽中断,并启动计时器按照所述计时阈值进行计时;判断在所述计时阈值之内是否检测到所述cpu向所述看门狗线程发送的喂狗信号;若所述看门狗线程在所述计时阈值内没有执行计时清零操作,且在所述计时阈值之内没有检测到所述cpu向所述看门狗线程发送的喂狗信号,则判定所述cpu运行的操作系统存在内核软死锁。即使用不可屏蔽中断(non maskable interrupt,nmi),启动一个计时器,通过计时器按照上述看门狗的计时阈值进行计时,在计时内检测cpu是否向看门狗线程发送的喂狗信号,可以理解的是,因为内核软死锁有可能发生在中断被屏蔽的状态下,而nmi中断是不可屏蔽的,这时唯一能把cpu抢下来的方法就是通过nmi,因此本实施例中通过调用nmi设计了一个检测内核软死锁的机制。也就是说,不仅从看门狗
线程是否被执行的角度判断是否出现内核软死锁,还结合cpu是否向看门狗线程发送喂狗信号来判断,由此可以排除看门狗自身出现异常的情况。若看门狗线程在计时阈值内没有执行计时清零操作,且在计时阈值之内没有检测到cpu向看门狗线程发送的喂狗信号,则可以判定cpu运行的操作系统存在内核软死锁。
[0045]
步骤s12:若存在内核软死锁,则确定出触发所述内核软死锁的目标进程,并调用不可屏蔽中断。
[0046]
本实施例中,若判断出操作系统当前存在内核软死锁,则确定出触发内核软死锁的目标进程,并调用不可屏蔽中断函数。可以理解的是,由于目标进程引起了内核软死锁,导致操作系统不能正常运行,此时通过自动调用不可屏蔽中断抢下cpu以便后续对上述目标进程进行相应的处理。
[0047]
本实施例中,所述确定出触发所述内核软死锁的目标进程,可以包括:获取所述操作系统的进程日志;根据所述进程日志,确定出触发所述内核软死锁的目标进程;所述目标进程包括先进先出任务和软中断。即通过进程日志,确定出触发内核软死锁的目标进程,上述目标进程包括但不限于先进先出任务和软中断。可以理解的是,出现内核软死锁主要有这两种情况:(1)系统中有长时间处于软中断处理函数。虽然看门狗线程优先级很高,但是只是任务级别的执行流,相比于软中断执行流程看门狗线程优先级更低,假如系统中的有一个软中断由于某种原因进入到了死锁或者死循环,那么看门狗线程是无法执行的,这样看门狗的计时,即watchdog_touch_ts也无法及时得到更新。(2)cpu上有优先级为99的先进先出(first input first output,fifo)任务一直占有cpu。实时fifo的调度策略是严格按优先级调度的,而同等优先级的任务遵守先来先运行、一直到无法再运行为止的原则。因而,如果cpu上原来已经有一个调度策略为fifo且优先级为99的任务一直占有cpu时看门狗即使被唤醒后也是无法得到运行的。
[0048]
步骤s13:利用所述不可屏蔽中断降低所述目标进程的优先级,以便所述操作系统通过重新运行所述看门狗线程处理所述内核软死锁。
[0049]
本实施例中,利用不可屏蔽中断抢下cpu后,降低上述目标进程的优先级,以便当前操作系统通过重新运行上述看门狗线程处理内核软死锁。具体的,本实施例中,所述利用所述不可屏蔽中断降低所述目标进程的优先级,以便所述操作系统通过重新运行所述看门狗线程处理所述内核软死锁,可以包括:利用所述不可屏蔽中断降低所述目标进程的优先级,并重启所述看门狗线程,以便所述操作系统通过运行所述看门狗线程,重启自身系统以处理所述内核软死锁。可以理解的是,将引起内核软死锁的目标进程优先级降低后,重启看门狗线程,使看门狗线程正常触发,而根据看门狗线程机制可知,当看门狗接收不到cpu的喂狗信号时,会重启cpu,从而解决内核软死锁问题。也就是说,本实施例中在检测到触发内核软死锁后,通过nmi中断函数,将触内核软死锁的进程的优先级降低,使看门狗正常触发,以解决内核软死锁问题。
[0050]
本实施例中,所述降低所述目标进程的优先级,可以包括:根据预先设定的优先级调整配置,确定出所述目标进程对应的优先级调整参数;根据所述优先级调整参数,降低所述目标进程的优先级。可以理解的是,预先针对不同类型的引起内核软死锁的进程,设置对应的优先级调整参数得到优先级调整配置,在出现内核软死锁时,通过查询优先级调整配置确定出当前目标进程对应的优先级调整参数,然后根据优先级调整参数,对应程度的降
低目标进程的优先级。
[0051]
由上可见,本实施例中为每个cpu分配一个看门狗线程,并根据所述看门狗线程判断所述cpu运行的操作系统是否存在内核软死锁;若存在内核软死锁,则确定出触发所述内核软死锁的目标进程,并调用不可屏蔽中断;利用所述不可屏蔽中断降低所述目标进程的优先级,以便所述操作系统通过重新运行所述看门狗线程处理所述内核软死锁。由上可见,通过看门狗线程检测操作系统是否发生内核软死锁,若检测到出现了内核软死锁,则调用不可屏蔽中断后,降低触发内核软死锁的目标进程的优先级,从而使操作系统通过重新运行看门狗线程处理内核软死锁。实现了对操作系统运行中内核软死锁问题的自动修复,提高了用户的使用体验感。
[0052]
相应的,本技术实施例还公开了一种内核软死锁处理装置,参见图2所示,该装置包括:
[0053]
内核软死锁判断模块11,用于为每个cpu分配一个看门狗线程,根据所述看门狗线程判断所述cpu运行的操作系统是否存在内核软死锁;
[0054]
不可屏蔽中断调用模块12,用于若存在内核软死锁,则确定出触发所述内核软死锁的目标进程,并调用不可屏蔽中断;
[0055]
优先级调整模块13,用于利用所述不可屏蔽中断降低所述目标进程的优先级,以便所述操作系统通过重新运行所述看门狗线程处理所述内核软死锁。
[0056]
由上可见,本实施例中为每个cpu分配一个看门狗线程,并根据所述看门狗线程判断所述cpu运行的操作系统是否存在内核软死锁;若存在内核软死锁,则确定出触发所述内核软死锁的目标进程,并调用不可屏蔽中断;利用所述不可屏蔽中断降低所述目标进程的优先级,以便所述操作系统通过重新运行所述看门狗线程处理所述内核软死锁。由上可见,通过看门狗线程检测操作系统是否发生内核软死锁,若检测到出现了内核软死锁,则调用不可屏蔽中断后,降低触发内核软死锁的目标进程的优先级,从而使操作系统通过重新运行看门狗线程处理内核软死锁。实现了对操作系统运行中内核软死锁问题的自动修复,提高了用户的使用体验感。
[0057]
在一些具体实施例中,所述不可屏蔽中断调用模块12具体可以包括:
[0058]
进程日志获取单元,用于获取所述操作系统的进程日志;
[0059]
目标进程确定单元,用于根据所述进程日志,确定出触发所述内核软死锁的目标进程;所述目标进程包括先进先出任务和软中断。
[0060]
在一些具体实施例中,所述优先级调整模块13具体可以包括:
[0061]
优先级调整参数确定单元,用于根据预先设定的优先级调整配置,确定出所述目标进程对应的优先级调整参数;
[0062]
优先级降低单元,用于根据所述优先级调整参数,降低所述目标进程的优先级。
[0063]
在一些具体实施例中,所述优先级调整模块13具体还可以用于利用所述不可屏蔽中断降低所述目标进程的优先级,并重启所述看门狗线程,以便所述操作系统通过运行所述看门狗线程,重启自身系统以处理所述内核软死锁。
[0064]
在一些具体实施例中,所述内核软死锁判断模块11具体可以包括:
[0065]
计时阈值获取单元,用于获取所述看门狗线程对应的计时阈值;
[0066]
内核软死锁判断单元,用于若所述看门狗线程在所述计时阈值内没有执行计时清
零操作,则判定所述cpu运行的操作系统存在内核软死锁。
[0067]
在一些具体实施例中,所述内核软死锁判断模块11具体可以包括:
[0068]
看门狗线程分配单元,用于为每个cpu分配一个定时执行的内核线程,并根据预设配置参数为所述内核线程配置相应的计时阈值,以得到所述看门狗线程。
[0069]
在一些具体实施例中,所述内核软死锁判断单元具体可以包括:
[0070]
计时器启动单元,用于调用不可屏蔽中断,并启动计时器按照所述计时阈值进行计时;
[0071]
喂狗信号检测单元,用于判断在所述计时阈值之内是否检测到所述cpu向所述看门狗线程发送的喂狗信号;
[0072]
内核软死锁判断子单元,用于若所述看门狗线程在所述计时阈值内没有执行计时清零操作,且在所述计时阈值之内没有检测到所述cpu向所述看门狗线程发送的喂狗信号,则判定所述cpu运行的操作系统存在内核软死锁。
[0073]
进一步的,本技术实施例还公开了一种电子设备,参见图3所示,图中的内容不能被认为是对本技术的使用范围的任何限制。
[0074]
图3为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的内核软死锁处理方法中的相关步骤。
[0075]
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
[0076]
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
[0077]
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的内核软死锁处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
[0078]
进一步的,本技术实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的内核软死锁处理方法步骤。
[0079]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0080]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执
行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0081]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0082]
以上对本发明所提供的一种内核软死锁处理方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献