06 2022 档案

Linux内核—llist
摘要:基于 Linux-5.10.81 一、llist概述 部分使用场景无需锁保护的以NULL结尾的单链表。实现文件为 lib/llist.c 和 include/linux/llist.h,后者包含导出的函数和便利宏。 (1) 不需要加锁的情况:如果有多个生产者和多个消费者,则可以在生产者中使用 lli 阅读全文

posted @ 2022-06-27 16:44 Hello-World3 阅读(558) 评论(0) 推荐(0) 编辑

init.rc学习笔记
摘要:1.在开机启动中,init.rc中,各trigger的触发顺序如下: early-initinitlate-init early-fsfspost-fspost-fs-dataload_all_props_actionfirmware_mounts_completeearly-bootboot 阅读全文

posted @ 2022-06-22 16:45 Hello-World3 阅读(166) 评论(0) 推荐(0) 编辑

理解Android Binder机制(3/3):Java层
摘要:1. 在AOSP源码树中的路径 // Binder Framework JNI /frameworks/base/core/jni/android_util_Binder.h /frameworks/base/core/jni/android_util_Binder.cpp /frameworks/ 阅读全文

posted @ 2022-06-19 19:50 Hello-World3 阅读(283) 评论(0) 推荐(0) 编辑

Linux内核机制—spin_lock
摘要:一、spin_lock概述 1. spin lock 是一种不可休眠锁,可用于原子上下文。当获取不到锁的时候会spin等待,此时是running状态。 2. spin lock 的发展到现在经历了四个阶段 (1) CAS 锁只有一个原子变量,执行单个 compare-and-swap 指令来获取锁。 阅读全文

posted @ 2022-06-12 14:57 Hello-World3 阅读(954) 评论(0) 推荐(0) 编辑

Linux内核机制—percpu_rwsem
摘要:一、相关资料 1. kernel-5.10/Documentation/locking/percpu-rw-semaphore.rst percpu rw 信号量是一种新的读写信号量设计,针对读取锁定进行了优化。 传统的读写信号量的问题在于,当多个内核读取锁时,包含信号量的cache-line在内核 阅读全文

posted @ 2022-06-10 15:41 Hello-World3 阅读(996) 评论(0) 推荐(0) 编辑

GCC-3——gcc内联汇编
摘要:1. gcc内联汇编格式 __asm_- __volatile__(指令部: 输出部: 输入部: 损坏部) gcc内联汇编在处理器变量和寄存器上提供了一个模板和一些约束条件: (1) 在指令部(Assembler Template)中数字前加上%,如%0、%1等,表示需要使用寄存器的样板操作数。若指 阅读全文

posted @ 2022-06-05 18:23 Hello-World3 阅读(1199) 评论(0) 推荐(0) 编辑

mtk task_turbo 阅读笔记
摘要:基于MTK linux-4.14,后续新版本内核已经废弃task turbo。 1. 代码位置: drivers/misc/mediatek/task_turbo/task_turbo.c drivers/misc/mediatek/include/mt-plat/turbo_common.h 2. 阅读全文

posted @ 2022-06-03 20:55 Hello-World3 阅读(558) 评论(0) 推荐(0) 编辑

稳定性调试汇总
摘要:一、工具 1. QCrash E:\tmp\kasan>aarch64-linux-gnu-objdump.exe -d vmlinux > log_objdump.txt E:\tmp\kasan>aarch64-linux-gnu-nm.exe vmlinux > log_nm.txt ... 阅读全文

posted @ 2022-06-01 11:49 Hello-World3 阅读(197) 评论(0) 推荐(0) 编辑

导航