你好,欢迎来到云栖梦泽

遇事不决,可问春风。春风不语,即随本心。

  • [Android稳定性] 第052篇 [方法篇] HMI项目中如何使用QCAP解析minidump?

    本文介绍了在HMI项目中处理minidump.gz文件的方法,包括本地解压和在线解压两种方式。解压后需对minidump文件进行拆分和可能的解密,然后通过特定脚本来生成ap_minidump.elf文件,以支持解析APPS区域的关键信息。文中详细描述了从解压、拆分、解密到生成elf文件的步骤,适用于高通平台的项目,并提供了相应的脚本示例。

  • [Android稳定性] 第051篇 [原理篇] 从timer角度学习高通平台的watchdog

    本文深入剖析了Linux内核中的定时器机制,包括低精度定时器(timer_list)和高精度定时器(hrtimer),并探讨了它们在watchdog中的应用。低精度定时器基于时钟节拍和定时轮,适用于大多数内核定时器,而高精度定时器则基于硬件时钟源和红黑树,提供更高的精度和更低的抖动。文章还介绍了watchdog timer的使用,包括喂狗线程的流程和系统挂起时的处理。此外,文章还讨论了基于软件的软看门狗机制,用于检测和处理系统中的软死锁问题。最后,文章总结了定时器在watchdog中的应用,并提供了debug watchdog触发的死机问题的方法和技巧。

  • [Android稳定性] 第050篇 [问题篇] slab内存泄露造成设备黑屏

    测试机经过智能长期充电后出现卡顿和黑屏现象,分析发现是slab内存泄露问题导致。通过slabtrace定位到泄漏内存的类型为“kmalloc-xxx”,并发现charger模块存在内存泄漏。最终通过修改代码,在申请内存前先判断是否已经申请过,避免重复申请,成功解决问题。

  • [linux内存管理] 第026篇 从内核源码看 slab 内存池的创建初始化流程

    本文介绍了Linux内核中slab内存池的创建过程。slab内存池是一种高效的内存管理机制,用于分配和回收固定大小的内存块。文章详细解释了slab cache的创建流程,包括kmem_cache_create接口函数的参数、slab cache的架构设计、内核如何安排slab对象在内存中的布局等。此外,文章还介绍了slab allocator体系的初始化过程,以及内核如何解决创建第一个slab cache时遇到的“先有鸡还是先有蛋”的问题。最后,文章总结了slab cache的创建过程和slab allocator体系的初始化过程,为读者提供了深入理解Linux内核内存管理的参考。

精选分类

最新图文动态

最新视频动态

走心评论

查看更多走心评论

共赴十年之约

留下温度不虚此行