解决方案

[实践篇]13.22 la qcom平台Watchdog Bark-Bite学习总结

seo靠我 2023-09-25 01:24:28

一,Watchdog简介

watchdog是我们系统系统工程师常常挂在嘴边的,最常见的异常之一,它有一个很别致的中文名 - 看门狗。

对于la系统,我们常见的几种重启情况包括内核态重启和用户态重启。内核空SEO靠我间的重启又包括电源状态异常导致的重启,内核看门狗的狗咬狗叫重置,以及内核子系统/驱动/其他模块异常导致的Panic Crash。今天我们还是先聚焦看门狗的狗咬和狗叫。

本篇中的看门狗指的是一个固定长度的SEO靠我计数器,在计时器超时时,可以将系统从非预期的软硬件异常中恢复过来。看门狗又分为软件看门狗和硬件看门狗。

软看门狗是指在一些子系统(经典如之前面向手机通讯相关的MPSS子系统)实现了watchdog机制。SEO靠我

硬看门狗则是一个硬件模块,被用于确保系统卡住或过载时重置系统。有一个计时器组成,在一个给定的超时时间下进行倒计时计时。如果在给定的时间内,响应的CPU core没有重置计时器,计时器最终会倒计时到0,SEO靠我而触发看门狗超时。

对于子系统狗叫/狗咬的问题,从应用的角度来看,就是一种可以恢复的异常,而不是变砖。

WDT Bark/Bite,超时时间默认11s超时触发狗叫,触发一个中断,引导la发生kernel SEO靠我panic重置。12s超时,触发中断TZ拉PS_HOLD;

二,分析方法

大多数的NS Watchdog Bark是喂狗线程发生block导致,如频繁的日志打印也会导致wdt bark,当发生wdt baSEO靠我rk时,la会触发guestdump,产生gcore文件。

2.1 分析kernel日志

这里的kernel日志可以是la侧的/proc/kernel信息或demsg日志;也可以是qnx世界的la_gvmSEO靠我.txt信息,甚至可以是qnx世界的slog,因为对于q+la方案,物理驱动往往都运行在q世界中,从slog中的hab be信息中也是可以发现一些蛛丝马迹。

2.2 解包分析gcore或ramdump文SEO靠我

在解析的ramdump信息中,可以从dmesg_TZ.txt中直观的了解一些kernel的状态如watchdog信息(Non-secure Watchdog data),CPU上下文信息(MSM_DSEO靠我UMP_DATA_CPU_CTX),kernel日志(Dmesg),中断信息(IrqParse),运行队列信息(RunQueue)等。

2.3 使用T32分析cpu core寄存器信息

在一些场景下,cpSEO靠我u上下文在imem是有效的,我们可以使用launch_t32.bat(选择适用于操作系统的t32脚本)来恢复崩溃点,以便检查内核线程上下文。如果cpu上下文很正常或无意义则需要检查内存稳定性和排查硬件SEO靠我

打开T32后,可以加载每个core的上下文文件(形如core0_regs.cmm,core1_regs.cmm,core2_regs.cmm......)

2.4 分析timerlist.txt

可以分SEO靠我析定时器列表(timer list)来分析定时器异常

2.5 分析内存问题

有些时候低内存状态下(dma泄漏),可能会引发一些驱动的踩内存情况,这种也会引发看门狗计时器异常。在ramdump解析的文件中可SEO靠我以分析tasks.txt和page_tracking.txt,分析内存布局。

三,案例

3.1 日志过多打印导致的wdt bark

如果引起bark的cpu core上下文出现如call_console_dSEO靠我rivers() --> con->write()调用;

3.2 驱动相关异常引起的wdt bark

如果引起bark的cpu core上下文出现如device_attach() /driver_attaSEO靠我ch()等调用。

3.3 调度相关引起的wdt bark

如果在dmesg_TZ文件中的内核工作队列(workqueue),观察到很多pending_workqueue函数或者类似workqueue buSEO靠我sy的信息,可能出现了一些函数执行卡住或超时的情况;

如果在上下文观察到出现很多handle_irq字样的函数,需要检查irq状态,可能此时出现了中断风暴。

查看runqueue,排查是否有RT任务长期占SEO靠我用CPU。

3.4 计时器相关引起的wdt bark

cpu上下文看起来是正常的,但看门狗定时器发生了异常也会引发wdt bark。如下:

时钟不及时更新等引起的计时器问题,可以分析定时器列表(timer SEO靠我list),排查定时器时钟信息(timer jiffiers);

内存踩踏(memory corruption)引起的定时器列表(timer list)异常。

硬件问题引起的时钟源问题,因为看门狗定时器的SEO靠我基本机制需要稳定的时钟源。

3.5 irq相关引起的wdt bite

如果la卡在irq上下文,则wdt bark中断不能踢狗,就会发生wdt bite。

3.6 硬件问题引起的wdt bite

如果发生硬件SEO靠我问题,比如cpu core hung住,就会引发wdt bite。

四,术语

MPSS:Modem periphery subsystem software,通讯相关外设子系统软件;

HLOS:High-LSEO靠我evel Operating System,即为Linux/Android,简称LA;

RTB:Register Trace Buffer,寄存器跟踪缓冲区。

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2