[实践篇]13.22 la qcom平台Watchdog Bark/Bite学习总结 | 您所在的位置:网站首页 › 乐维彩维生素ae胶丸价格为什么贵 › [实践篇]13.22 la qcom平台Watchdog Bark/Bite学习总结 |
一,Watchdog简介
watchdog是我们系统系统工程师常常挂在嘴边的,最常见的异常之一,它有一个很别致的中文名 - 看门狗。 对于la系统,我们常见的几种重启情况包括内核态重启和用户态重启。内核空间的重启又包括电源状态异常导致的重启,内核看门狗的狗咬狗叫重置,以及内核子系统/驱动/其他模块异常导致的Panic Crash。今天我们还是先聚焦看门狗的狗咬和狗叫。 本篇中的看门狗指的是一个固定长度的计数器,在计时器超时时,可以将系统从非预期的软硬件异常中恢复过来。看门狗又分为软件看门狗和硬件看门狗。 软看门狗是指在一些子系统(经典如之前面向手机通讯相关的MPSS子系统)实现了watchdog机制。 硬看门狗则是一个硬件模块,被用于确保系统卡住或过载时重置系统。有一个计时器组成,在一个给定的超时时间下进行倒计时计时。如果在给定的时间内,响应的CPU core没有重置计时器,计时器最终会倒计时到0,而触发看门狗超时。 对于子系统狗叫/狗咬的问题,从应用的角度来看,就是一种可以恢复的异常,而不是变砖。 WDT Bark/Bite,超时时间默认11s超时触发狗叫,触发一个中断,引导la发生kernel panic重置。12s超时,触发中断TZ拉PS_HOLD; 二,分析方法大多数的NS Watchdog Bark是喂狗线程发生block导致,如频繁的日志打印也会导致wdt bark,当发生wdt bark时,la会触发guestdump,产生gcore文件。 2.1 分析kernel日志这里的kernel日志可以是la侧的/proc/kernel信息或demsg日志;也可以是qnx世界的la_gvm.txt信息,甚至可以是qnx世界的slog,因为对于q+la方案,物理驱动往往都运行在q世界中,从slog中的hab be信息中也是可以发现一些蛛丝马迹。 2.2 解包分析gcore或ramdump文件在解析的ramdump信息中,可以从dmesg_TZ.txt中直观的了解一些kernel的状态如watchdog信息(Non-secure Watchdog data),CPU上下文信息(MSM_DUMP_DATA_CPU_CTX),kernel日志(Dmesg),中断信息(IrqParse),运行队列信息(RunQueue)等。 2.3 使用T32分析cpu core寄存器信息在一些场景下,cpu上下文在imem是有效的,我们可以使用launch_t32.bat(选择适用于操作系统的t32脚本)来恢复崩溃点,以便检查内核线程上下文。如果cpu上下文很正常或无意义则需要检查内存稳定性和排查硬件。 打开T32后,可以加载每个core的上下文文件(形如core0_regs.cmm,core1_regs.cmm,core2_regs.cmm......) 2.4 分析timerlist.txt可以分析定时器列表(timer list)来分析定时器异常 2.5 分析内存问题有些时候低内存状态下(dma泄漏),可能会引发一些驱动的踩内存情况,这种也会引发看门狗计时器异常。在ramdump解析的文件中可以分析tasks.txt和page_tracking.txt,分析内存布局。 三,案例 3.1 日志过多打印导致的wdt bark如果引起bark的cpu core上下文出现如call_console_drivers() --> con->write()调用; 3.2 驱动相关异常引起的wdt bark如果引起bark的cpu core上下文出现如device_attach() /driver_attach()等调用。 3.3 调度相关引起的wdt bark如果在dmesg_TZ文件中的内核工作队列(workqueue),观察到很多pending_workqueue函数或者类似workqueue busy的信息,可能出现了一些函数执行卡住或超时的情况; 如果在上下文观察到出现很多handle_irq字样的函数,需要检查irq状态,可能此时出现了中断风暴。 查看runqueue,排查是否有RT任务长期占用CPU。 3.4 计时器相关引起的wdt bark cpu上下文看起来是正常的,但看门狗定时器发生了异常也会引发wdt bark。如下: 时钟不及时更新等引起的计时器问题,可以分析定时器列表(timer list),排查定时器时钟信息(timer jiffiers); 内存踩踏(memory corruption)引起的定时器列表(timer list)异常。 硬件问题引起的时钟源问题,因为看门狗定时器的基本机制需要稳定的时钟源。 3.5 irq相关引起的wdt bite如果la卡在irq上下文,则wdt bark中断不能踢狗,就会发生wdt bite。 3.6 硬件问题引起的wdt bite如果发生硬件问题,比如cpu core hung住,就会引发wdt bite。 四,术语MPSS:Modem periphery subsystem software,通讯相关外设子系统软件; HLOS:High-Level Operating System,即为Linux/Android,简称LA; RTB:Register Trace Buffer,寄存器跟踪缓冲区。 |
CopyRight 2018-2019 实验室设备网 版权所有 |