Linux内存管理
未读
451f56568ba80aba61a89d581f27e1d65709e0ccc5a5efad1eee37d762bd7427d95e20a316f676ed69a9ab3370df93c78ef07afc0b686b84c2ec429b399b850e0b9efe4745dd56725f1d0282fd2968483ddc46226768cd9d5b05b7bbcc3acc0031e2c92a662e07aed2932b112e9e4d5d4554239c6bffe74aadf165a88892aa46a569f187e35cea51ded59a22d7ae834867457f32ef95e7134a12423d0754afaa7421f409a25d0e536e69767cd23c31ad5acefa67359c4339a541906983e0a935cdbc1f62b008e23485565f9377ccce234dc471f81b5e890ff74f51ae683fa455cb374e26cbd252457dcfbdac502f0a3d2e6578577ef7b50eb ...
0. 问题现象收到研发提供的反馈,部分机器插着usb后出现死机。
1. 问题分析1.1 dmesg_TZ.txt1234567891011121314151617181920212223242526272829303132333435[ 111.851460][ T2674] CPU: 6 PID: 2674 Comm: android.hardwar Tainted: G W OE 6.1.90-android14-11-maybe-dirty-qki-consolidate #1[ 111.851463][ T2674] Hardware name: Qualcomm Technologies, Inc. Blair QRD (DT)[ 111.851465][ T2674] pstate: a0400005 (NzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)[ 111.851467][ T2674] pc : power_operation_mode_show+0x48/0x50[ 111.85147 ...
0. 前言有时候我们会遇到一些问题,需要去打开内核的一些参数进行一些调试,比如initcall_debug、debug、log_buf_len等等。每次遇到这些问题时,我们都需要去重新打包。这不仅仅浪费时间,而且有时候在遇到问题时重新编译后反而不复现了,妥妥的浪费时间。基于这样的需求,我实现了这样的需求。
1. 原理介绍1.1 fastboot oem bootargs首先扩展fastboot oem指令,接收fastboot模式下输入的内核参数,并写入到devinfo分区中保存起来(重启不会被恢复)。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647diff --git a/QcomModulePkg/Library/FastbootLib/FastbootCmds.c b/QcomModulePkg/Library/FastbootLib/FastbootCmds.cindex 0169b2b..aedb79e 100644--- a/QcomModulePk ...
Android稳定性
未读
0. 问题现象dmesg_TZ.txt
1234567891011121314151617181920212223242526272829[ 14.540023][ C0] print_irq_desc: 550553 callbacks suppressed[ 14.540038][ C0] irq 193, desc: 000000005e8b6ab6, depth: 1, count: 0, unhandled: 0[ 14.540049][ C0] ->handle_irq(): 00000000c765d680, handle_bad_irq.cfi_jt+0x0/0x8 [pinctrl_msm][ 14.540081][ C0] ->irq_data.chip(): 000000004510a501, 0xffffff8004e94370[ 14.540088][ C0] ->action(): 0000000000000000[ 14.540117][ C0] irq 193, desc: ...
0. 问题现象dmesg_TZ.txt
12345678910111213141516171819202122232425262728293031(3)[71:khungtaskd]INFO: task Binder:2848_9:3784 tgid:2848 blocked for 120s in whitelist10707 cpu4Call trace: __switch_to+0x244/0x460 __schedule+0x590/0xac4 schedule+0x64/0x188 __mutex_lock+0x444/0x998 __mutex_lock_slowpath+0x14/0x20 regulator_lock_dependent+0x6c/0x378 regulator_enable+0x3c/0x84 arm_smmu_power_on+0xa8/0x298 [arm_smmu] arm_smmu_runtime_resume+0x18/0x24 [arm_smmu] pm_generic_runtime_resume+0x44/0x80 __rpm_cal ...
Android稳定性
未读
0. 问题现象锁的使用不当往往会导致死机异常:之前碰到过一例
1234567891011121314151617181920212223242526272829[2021:11:18 15:28:05](1)BUG: scheduling while atomic: Binder:1199_2/5201/0x00000002[2021:11:18 15:28:05](1)------------[ cut here ]------------[2021:11:18 15:28:05](1)kernel BUG at kernel/sched/walt/walt_debug.c:16pc : android_rvh_schedule_bug+0x4/0x8 [sched_walt_debug][2021:11:18 15:28:05](1)lr : __schedule_bug+0x100/0x138[2021:11:18 15:28:05](1)Call trace:[2021:11:18 15:28:05](1) android_r ...
Android稳定性
未读
4f0f05ce26d5a43eed29a6768e1af61af18f157e1479bf682c8c8d8252017768bcfc7c26c69bd00eac995ca94850216cec747c5e656170a9bf066850c7db4405236d4ae9bac8855e1cd0abee9e4a6b9def11c997dc3c3f3488a3e65d78d133c251946faed71dd923fde9dff04af808946f4c1664fefe2ebb3faad614d33cf96eb0a44aec5af804db8e06178705eb4d88d6be8bc1a0b008928bdfa445a700b1135b16c0f0ed446cc5f6ddf96bdf7a3a4a9e9c65918ac1cfa422697a0e06cb4ce00169818e63433c5ed04757c367b65f67034f882cd078aa8f42e9dbfc61b6988495c0ed1cec31190650326c4a87ee8d872ce4f41e134fbfe60 ...
Android稳定性
未读
4f0f05ce26d5a43eed29a6768e1af61af18f157e1479bf682c8c8d8252017768bcfc7c26c69bd00eac995ca94850216cec747c5e656170a9bf066850c7db4405236d4ae9bac8855e1cd0abee9e4a6b9def11c997dc3c3f3488a3e65d78d133c251946faed71dd923fde9dff04af8089400270e84b66e06813439ec468f3633f9bc7a9c42377645a01eb0251d58caa6851b9c906160566df0b665383d4ffda589ca0c0d2afb6e693948c9751a4a7ab386237d68571f84274ec0b7c672589994c18d8a68ba2e384e9f9c8d92889f7baf7d4800d96c0286a7bdafcfbdf680ede4f14292d20a90bca5090988123dcb87f80a5dccadb38d95a56d5 ...
一、什么是SSR?Subsystem:modem、LPASS、Venus、WCNSS、GPU、SLPI等,芯片由APSS处理器和额外处理器运行它们的软件。SSR(Subsystem Restart,子系统重启)是高通的一个feature选项。如果SSR打开,尽管子系统crash了,仍然允许整个系统运行。SSR Feature推荐用于出货设备从而减少子系统异常对整个系统的影响。
二、Subsystem RAMDump当SSR feature打开后,subsystem如果发生crash重启时,整个系统是不会重启进入到dump界面的。此时,当Subsystem RAM dump feature也打开后,子系统发生crash时重启前会收集一份RAM dump到特定的存储路径。
2.1 C3F项目的subsystem ramdump的流程
2.2 xx项目的subsystem ramdump的流程
三、使能SSR3.1 打开驱动宏开关3.1.1 C3F项目kernel中开启SSR的宏开关,比如flame_GKI.config
1CONFIG_MSM_SUBSYSTEM_RESTART=m
3 ...
0. 前言鉴于研发人员当遇到底层稳定性问题时(主要为Linux kernel crash),不知道如何分析或者不知道使用哪些工具进行分析,所以本文主要介绍这方面的基础知识点。
1. 复位类型首先我们需要了解高通pmic的几种复位类型:
复位类型
解释
备注
warm reset
Many power rails are not reset, for example DDR
这种等级的reset将保留DDR memory以及一部分的PMIC寄存器
hard reset
It will not reset digital/analogic power domain inside PMIC,but will reset power rails that are exported externally
将清空DDR memory,以及保留和warm reset一样的部分PMIC寄存器
Dvdd hard reset
It will reset digital power supplied domain inside PMIC
将清空DDR memory,以及保留 ...