一种系统运行维护处理方法、装置、设备及介质与流程

文档序号:32063432发布日期:2022-11-05 00:00阅读:48来源:国知局
一种系统运行维护处理方法、装置、设备及介质与流程

1.本技术涉及信息系统运行维护技术领域,特别涉及一种系统运行维护处理方法、装置、设备及介质。


背景技术:

2.目前,通信模组,比如基于高通5g(即5th generation mobile communication technology,第五代移动通信技术)平台的通信模组,在模组dump(即崩溃)后,可以通过ap(即application processor,应用处理器)侧的日志来分析设备驱动和内核的异常,日志获取通常存在两种方式:一种是通过模组串口打印,但通过串口打印通常无法看到内核异常时的日志打印。另一种是通过qpst(即qualcomm product support tool,高通产品支持工具)抓取,在qpst抓取日志的情况下,如果dump disable,则模组忽略本次异常dump,直接重启;如果dump enable开启,模组进入日志抓取模式,才可以通过qpst抓取日志来帮助开发人员针对内核异常和设备驱动问题进行分析定位,等待日志抓取完成后,模块自动复位重启。
3.综上,当前串口打印不会打印出内核异常时的日志,不足以支持内核异常分析定位。qpst必须在dump enable的情况下才能够抓取日志,如果dump disable则不能抓取,影响问题发现的概率,而且qpst必须研发人员手动抓取才可以,也不支持多次自动抓取多次日志,如果在测试场景下模组dump,则会中断测试用例的执行。


技术实现要素:

4.有鉴于此,本技术的目的在于提供一种系统运行维护处理方法、装置、设备及介质,能够在每次内核异常时自动保存日志,提高内核问题发现的概率和效率,并且在测试场景下无需中断测试用例的执行。其具体方案如下:第一方面,本技术公开了一种系统运行维护处理方法,应用于日志处理驱动,包括:注册内核异常通知链;接收所述内核异常通知链传递的内核异常通知;将内核日志缓冲区中的内核日志拷贝至文件系统。
5.可选的,所述接收所述内核异常通知链传递的内核异常通知之后,还包括:在所述文件系统中创建文件;相应的,所述将内核日志缓冲区中的内核日志拷贝至文件系统,包括:将内核日志缓冲区中的内核日志拷贝至所述文件。
6.可选的,所述将内核日志缓冲区中的内核日志拷贝至文件系统,包括:调用预设回调函数将内核日志缓冲区中的内核日志拷贝至文件系统。
7.可选的,还包括:保存所述内核日志缓冲区的内存地址信息和大小信息。
8.可选的,所述将内核日志缓冲区中的内核日志拷贝至文件系统,包括:基于所述内存地址信息和大小信息将内核日志缓冲区中的内核日志拷贝至文件系统。
9.可选的,所述内存地址信息和所述大小信息均为内核对所述内核日志缓冲区进行初始化时确定的信息。
10.可选的,所述将内核日志缓冲区中的内核日志拷贝至文件系统之后,还包括:从所述文件中读取所述内核日志;对所述内核日志进行解析,得到异常调用栈。
11.第二方面,本技术公开了一种通信模组内核日志处理装置,应用于日志处理驱动,包括:异常通知链注册模块,用于注册内核异常通知链;内核异常通知接收模块,用于接收所述内核异常通知链传递的内核异常通知;内核日志拷贝模块,用于将内核日志缓冲区中的内核日志拷贝至文件系统。
12.可选的,所述装置还包括文件创建模块,用于在所述接收所述内核异常通知链传递的内核异常通知之后,在所述文件系统中创建文件。
13.相应的,所述内核日志拷贝模块,具体用于将内核日志缓冲区中的内核日志拷贝至所述文件。
14.可选的,所述内核日志拷贝模块,具体用于调用预设回调函数将内核日志缓冲区中的内核日志拷贝至文件系统。
15.可选的,所述装置还包括信息保存模块,用于保存所述内核日志缓冲区的内存地址信息和大小信息。
16.相应的,所述内核日志拷贝模块,具体用于基于所述内存地址信息和大小信息将内核日志缓冲区中的内核日志拷贝至文件系统。
17.其中,所述内存地址信息和所述大小信息均为内核对所述内核日志缓冲区进行初始化时确定的信息。
18.可选的,所述装置还包括:日志读取模块,用于在将内核日志缓冲区中的内核日志拷贝至文件系统之后,从所述文件中读取所述内核日志;日志解析模块,用于对所述内核日志进行解析,得到异常调用栈。
19.第三方面,本技术公开了一种电子设备,包括存储器和处理器,其中:所述存储器,用于保存计算机程序;所述处理器,用于执行所述计算机程序,以实现前述的系统运行维护处理方法。
20.第四方面,本技术公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的系统运行维护处理方法。
21.可见,本技术实施例先注册内核异常通知链,之后接收所述内核异常通知链传递的内核异常通知,然后将内核日志缓冲区中的内核日志拷贝至文件系统。也即,本技术注册内核异常通知链,在内核出现异常时,接收内核异常通知链传递的内核异常通知,在收到内核异常通知后,将内核日志缓冲区中的内核日志拷贝至文件系统,这样,能够在每次内核异常时自动保存日志,通过读取文件系统即可读取内核异常发生时的内核日志,从而提高内
核问题发现的概率和效率,并且在测试场景下无需中断测试用例的执行。
附图说明
22.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
23.图1为本技术实施例公开的一种系统运行维护处理方法流程图;图2为本技术实施例公开的一种具体的系统运行维护处理方法流程图;图3为本技术实施例公开的一种系统运行维护处理装置结构示意图;图4为本技术实施例公开的一种电子设备原理结构图。
具体实施方式
24.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
25.当前串口打印不会打印出模组内核异常时的日志,不足以支持内核异常分析定位。qpst必须在dump enable的情况下才能够抓取日志,如果dump disable则不能抓取,影响问题发现的概率,而且qpst必须研发人员手动抓取才可以,也不支持多次自动抓取多次日志,如果在测试场景下模组dump,则会中断测试用例的执行。为此,本技术提供一种通信模组内核日志处理方案,能够在每次内核异常时自动保存日志,提高内核问题发现的概率和效率,并且在测试场景下无需中断测试用例的执行。
26.参见图1所示,本技术实施例公开了一种系统运行维护处理方法,应用于日志处理驱动,包括:步骤s11:注册内核异常通知链。
27.在具体的实施方式中,模组内核启动后,先初始化内核日志缓存区以确定内核日志缓存区的内存地址和大小,以及初始化内核异常通知链,相应的,日志处理驱动保存所述内核日志缓冲区的内存地址信息和大小信息,之后日志处理驱动注册内核异常通知链。可以理解的是,注册内核异常通知链后,在内核出现异常时,即可通过异常通知链接收内核异常通知。
28.步骤s12:接收所述内核异常通知链传递的内核异常通知。
29.在具体的实施方式中,内核捕捉到异常时,比如,内核异常panic,异常通知链通知注册者,也即本技术实施的日志处理驱动,日志处理驱动接收所述内核异常通知链传递的内核异常通知。
30.步骤s13:将内核日志缓冲区中的内核日志拷贝至文件系统。
31.在一种实施方式中,可以调用预设回调函数将内核日志缓冲区中的内核日志拷贝至文件系统。并且,基于所述内存地址信息和大小信息将内核日志缓冲区中的内核日志拷贝至文件系统。也即,根据内核日志缓冲区的内存地址信息和大小信息读内存,得到内核日
志,并拷贝至文件系统。
32.并且,本技术实施例在接收所述内核异常通知链传递的内核异常通知之后,还包括:在所述文件系统中创建文件。相应的,所述将内核日志缓冲区中的内核日志拷贝至文件系统,包括:将内核日志缓冲区中的内核日志拷贝至所述文件。也即,基于内核日志缓冲区的内存地址信息和大小信息将内核日志缓冲区中的内核日志拷贝至文件系统中的文件,并且,该文件为在接收到内核异常通知后创建的专门用于保存内核日志的文件。
33.在一种实施方式中,可以通过预设回调函数在所述文件系统中创建文件,并基于内核日志缓冲区的内存地址信息和大小信息将内核日志缓冲区中的内核日志拷贝至文件系统中创建的文件。
34.进一步的,本技术实施例可以从所述文件中读取所述内核日志;对所述内核日志进行解析,得到异常调用栈。可以理解的是,在内核异常时,内核会将异常调用栈写入至内核日志缓冲区中。本技术实施例可以在模组重启后,从所述文件中读取内核日志;对内核日志进行解析,得到异常调用栈。
35.需要指出的是,现有技术中,通过qpst抓取后日志后,日志解析也十分繁琐耗时,需要找到当前模组版本对应的符号表,然后使用qcap(即qualcomm crash analysis portal,高通崩溃分析程序)工具经过几分钟左右解析才能够出结果,这样会打断研发人员的节奏。而本技术实施例只要访问文件读取内核日志,对内核日志进行解析,即可得到异常调用栈,没有复杂的解析过程,并且异常时才拷贝日志,解决某些情况下qpst解析出来的日志没有调用栈的情况,提升内核异常问题定位效率,以及模组的稳定性,同时通过日志处理驱动实现通信模组内核日志处理,兼顾了轻量化需求。
36.例如,参见图2所示,图2为本技术实施例公开的一种具体的一种系统运行维护处理方法流程图。内核启动后初始化printk框架,以及初始化内核日志缓冲区和异常通知链;日志处理驱动保存内核日志缓冲区的内存地址和大小并注册异常通知链;当内核异常发生,内核捕捉到异常,进入异常处理流程,异常通知链通知注册者也即日志处理驱动,日志处理驱动接收到内核异常通知后,在文件系统创建文件,将内核日志缓冲区中的内核日志保存到文件中;内核异常流程处理完毕,模组复位重启,日志驱动处理程序可以从文件系统导出内核日志,解析内核日志,查看异常调用栈。这样,通过日志处理驱动,能够准确、快速、轻量级的,且不影响其他业务场景下,在内核异常后自动保存内核日志,提升内核异常问题发现的效率和概率,增强模组的稳定性。
37.可见,本技术实施例先注册内核异常通知链,之后接收所述内核异常通知链传递的内核异常通知,然后将内核日志缓冲区中的内核日志拷贝至文件系统。也即,本技术实施例注册内核异常通知链,在内核出现异常时,接收内核异常通知链传递的内核异常通知,在收到内核异常通知后,将内核日志缓冲区中的内核日志拷贝至文件系统,这样,能够在每次内核异常时自动保存日志,通过读取文件系统即可读取内核异常发生时的内核日志,从而提高内核问题发现的概率和效率,并且在测试场景下无需中断测试用例的执行。
38.参见图3所示,本技术实施例公开了一种系统运行维护处理装置,应用于日志处理驱动,包括:异常通知链注册模块11,用于注册内核异常通知链;内核异常通知接收模块12,用于接收所述内核异常通知链传递的内核异常通知;
内核日志拷贝模块13,用于将内核日志缓冲区中的内核日志拷贝至文件系统。
39.可见,本技术实施例先注册内核异常通知链,之后接收所述内核异常通知链传递的内核异常通知,然后将内核日志缓冲区中的内核日志拷贝至文件系统。也即,本技术实施例注册内核异常通知链,在内核出现异常时,接收内核异常通知链传递的内核异常通知,在收到内核异常通知后,将内核日志缓冲区中的内核日志拷贝至文件系统,这样,能够在每次内核异常时自动保存日志,通过读取文件系统即可读取内核异常发生时的内核日志,从而提高内核问题发现的概率和效率,并且在测试场景下无需中断测试用例的执行。
40.进一步的,所述装置还包括文件创建模块,用于在所述接收所述内核异常通知链传递的内核异常通知之后,在所述文件系统中创建文件。相应的,所述内核日志拷贝模块13,具体用于将内核日志缓冲区中的内核日志拷贝至所述文件。
41.并且,所述内核日志拷贝模块13,具体用于调用预设回调函数将内核日志缓冲区中的内核日志拷贝至文件系统。
42.进一步的,所述装置还包括信息保存模块,用于保存所述内核日志缓冲区的内存地址信息和大小信息。相应的,所述内核日志拷贝模块13,具体用于:基于所述内存地址信息和大小信息将内核日志缓冲区中的内核日志拷贝至文件系统。
43.其中,所述内存地址信息和所述大小信息均为内核对所述内核日志缓冲区进行初始化时确定的信息。
44.进一步的,所述装置还包括:日志读取模块,用于在将内核日志缓冲区中的内核日志拷贝至文件系统之后,从所述文件中读取所述内核日志;日志解析模块,用于对所述内核日志进行解析,得到异常调用栈。
45.参见图4所示,本技术实施例公开了一种电子设备,包括处理器21和存储器22;其中,所述存储器22,用于保存计算机程序;所述处理器21,用于执行所述计算机程序,以实现以下步骤:注册内核异常通知链;接收所述内核异常通知链传递的内核异常通知;将内核日志缓冲区中的内核日志拷贝至文件系统。
46.可见,本技术实施例先注册内核异常通知链,之后接收所述内核异常通知链传递的内核异常通知,然后将内核日志缓冲区中的内核日志拷贝至文件系统。也即,本技术实施例注册内核异常通知链,在内核出现异常时,接收内核异常通知链传递的内核异常通知,在收到内核异常通知后,将内核日志缓冲区中的内核日志拷贝至文件系统,这样,能够在每次内核异常时自动保存日志,通过读取文件系统即可读取内核异常发生时的内核日志,从而提高内核问题发现的概率和效率,并且在测试场景下无需中断测试用例的执行。
47.本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:在所述接收所述内核异常通知链传递的内核异常通知之后,在所述文件系统中创建文件;将内核日志缓冲区中的内核日志拷贝至所述文件。
48.本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:调用预设回调函数将内核日志缓冲区中的内核日志拷贝至文件系统。
49.本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:保存所述内核日志缓冲区的内存地址信息和大小信息。
50.本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:基于所述内存地址信息和大小信息将内核日志缓冲区中的内核日志拷贝至文件系统。其中,所述内存地址信息和所述大小信息均为内核对所述内核日志缓冲区进行初始化时确定的信息。
51.本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:在将内核日志缓冲区中的内核日志拷贝至文件系统之后,从所述文件中读取所述内核日志;对所述内核日志进行解析,得到异常调用栈。
52.进一步的,本技术实施例公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现以下步骤:注册内核异常通知链;接收所述内核异常通知链传递的内核异常通知;将内核日志缓冲区中的内核日志拷贝至文件系统。
53.可见,本技术实施例先注册内核异常通知链,之后接收所述内核异常通知链传递的内核异常通知,然后将内核日志缓冲区中的内核日志拷贝至文件系统。也即,本技术实施例注册内核异常通知链,在内核出现异常时,接收内核异常通知链传递的内核异常通知,在收到内核异常通知后,将内核日志缓冲区中的内核日志拷贝至文件系统,这样,能够在每次内核异常时自动保存日志,通过读取文件系统即可读取内核异常发生时的内核日志,从而提高内核问题发现的概率和效率,并且在测试场景下无需中断测试用例的执行。
54.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:在所述接收所述内核异常通知链传递的内核异常通知之后,在所述文件系统中创建文件;将内核日志缓冲区中的内核日志拷贝至所述文件。
55.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:调用预设回调函数将内核日志缓冲区中的内核日志拷贝至文件系统。
56.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:保存所述内核日志缓冲区的内存地址信息和大小信息。
57.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:基于所述内存地址信息和大小信息将内核日志缓冲区中的内核日志拷贝至文件系统。其中,所述内存地址信息和所述大小信息均为内核对所述内核日志缓冲区进行初始化时确定的信息。
58.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:在将内核日志缓冲区中的内核日志拷贝至文件系统之后,从所述文件中读取所述内核日志;对所述内核日志进行解析,得到异常调用栈。
59.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
60.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术
领域内所公知的任意其它形式的存储介质中。
61.以上对本技术所提供的一种系统运行维护处理方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1