随笔分类 -  Linux系统

simpleperf火焰图-3-perf工具
摘要:一、命令介绍 1. perf --help usage: perf [--version] [--help] [OPTIONS] COMMAND [ARGS] 最常用的 perf 命令有:annotate: 读取 perf.data(由 perf record 创建)并显示带注释的代码.archiv 阅读全文

posted @ 2025-09-09 15:29 Hello-World3 阅读(94) 评论(0) 推荐(0)

buffer共享-1-memfd
摘要:一、简介 memfd 提供了一种跨进程传buffer的机制,依赖于进程间通信机制(binder/socket)传递生成的fd,传递过程涉及到内存buffer的拷贝。 二、man memfd_create $ man memfd_create 名称: memfd_create - 创建匿名文件 概要: 阅读全文

posted @ 2025-08-25 17:54 Hello-World3 阅读(89) 评论(0) 推荐(0)

Linux信号-1-TIF_SIGPENDING 标志的设置和清除
摘要:基于msm-5.4 一、调用路径 1. 设置的位置 recalc_sigpending_and_wake //signal.c sysrq_term_op //sysrq.c 【】-e 操作结束所有进程 echo e > /proc/sysrq-trigger sysrq_handle_term / 阅读全文

posted @ 2025-05-20 21:39 Hello-World3 阅读(51) 评论(0) 推荐(0)

ARM64 Linux各种栈-1-分类
摘要:在 ARM64 Linux 内核中,栈的管理分为多种类型,每种栈都有其特定的用途和实现机制。以下是详细的分类说明: 一、用户栈(User Stack) 1. 简介 用途:用户态进程执行时的栈空间。特点:位于用户空间虚拟地址的高地址区域(向下增长)通过 mmap 动态分配,默认大小 8MB(可通过 u 阅读全文

posted @ 2025-05-20 17:25 Hello-World3 阅读(205) 评论(0) 推荐(0)

Linux timer-1-内核文档翻译
摘要:一、hrtimers.rst / hrtimers.txt 注:翻译自 msm-5.4/Documentation/timers/hrtimers.rst hrtimers - 高分辨率内核计时器子系统 此补丁引入了一个新的高分辨率内核计时器子系统。 有人可能会问:我们已经有一个计时器子系统 (ke 阅读全文

posted @ 2025-04-18 20:59 Hello-World3 阅读(85) 评论(0) 推荐(0)

内核驱动 uid_sys_stats.c 简介
摘要:一、简介 在 Linux 内核中,CONFIG_UID_SYS_STATS 用于启用按用户ID(UID)统计系统资源使用情况的功能。当启用该宏时,会编译住 uid_sys_stats.c 文件,内核会跟踪每个 UID 的资源使用情况,例如 CPU 时间、I/O 操作、网络流量等,并提供接口供用户空间 阅读全文

posted @ 2025-04-09 11:35 Hello-World3 阅读(61) 评论(0) 推荐(0)

Systrace实现-1-判断Trace是否使能
摘要:基于A12 一、isTagEnabled()执行逻辑 这里以binder的 isTagEnabled() 为例进行说明。 相关文件: android/frameworks/base/core/java/android/os/Binder.java android/frameworks/base/co 阅读全文

posted @ 2025-03-27 17:35 Hello-World3 阅读(148) 评论(0) 推荐(0)

Linux内核时钟-2-用户空间接口
摘要:一、精度秒级别的函数 1. time() #include <time.h> time_t time(time_t *tloc); //time_t=long 返回自 Epoch 1970-01-01 00:00:00 +0000 (UTC) 以来的秒数。精度秒,如果参数 tloc 不是NULL,返 阅读全文

posted @ 2025-03-22 17:16 Hello-World3 阅读(49) 评论(0) 推荐(0)

tracer ftrace笔记(23)—— 各tracer使用笔记
摘要:基于msm-5.4 一、各个tracer简介 默认使能的tracer: /sys/kernel/debug/tracing # cat available_tracers blk wakeup_dl wakeup_rt wakeup preemptirqsoff preemptoff irqsoff 阅读全文

posted @ 2025-01-17 14:42 Hello-World3 阅读(62) 评论(0) 推荐(0)

Linux内核状态 system_state
摘要:基于msm-5.4 一、定义 /* 用于 system_state 的值,状态的顺序不得更改,代码检查时会用 <、<=、>、>= STATE */ extern enum system_states { //include/linux/kernel.h SYSTEM_BOOTING, //0, 最初 阅读全文

posted @ 2024-08-17 14:52 Hello-World3 阅读(145) 评论(0) 推荐(0)

tracer ftrace笔记(23)—— 上层trace打印流程-TODO
摘要:1. ATRACE_INT 打印不出来分析 #define ATRACE_INT(name, value) atrace_int(ATRACE_TAG, name, value) // /system/core/libcutils/include/cutils/trace.h static inli 阅读全文

posted @ 2024-04-11 17:54 Hello-World3 阅读(224) 评论(0) 推荐(0)

linux rlimit资源限制
摘要:一、简介 每个进程在运行时系统不会无限制的允许单个进程不断的消耗系统资源,因此都会设置资源限制。Linux系统中使用 resource limit 来表示,每个进程都可以设置不同的资源限制,当前进程和其以后fork的子进程会遵循此限制,而其他进程不受当前进程条件的影响。 二、ulimit命令 通过该 阅读全文

posted @ 2024-03-06 10:42 Hello-World3 阅读(690) 评论(0) 推荐(0)

tracer ftrace笔记(20)—— Systrace中tag汇总
摘要:一、视频显示 1. HW_VSYNC_ON_XXX (1) 类型 布尔值,1 表示 HW VSYNC 信号开关被打开,0 表示开关被关闭。 (2) 时机 HW VYSNC 硬件信号被打开和关闭的时候。 (3) 解释 HW_VSYNC_ON_XXX 后面的 XXX 一般是一串数字,代表的是 displ 阅读全文

posted @ 2023-08-19 20:06 Hello-World3 阅读(624) 评论(0) 推荐(0)

tracer ftrace笔记(19)—— 待解问题汇总
摘要:1. 长时间卡在 MSG_WINDOW_FOCUS_CHANGED 条目中 public void handleMessage(Message msg) //android/view/ViewRootImpl.java Trace.traceBegin(Trace.TRACE_TAG_VIEW, g 阅读全文

posted @ 2023-08-04 21:46 Hello-World3 阅读(108) 评论(0) 推荐(0)

Cgroup学习笔记3—代码实现—相关结构和全局变量
摘要:基于 LInux-5.10 一、相关结构 1. 通过多次的 #define 和 #undef SUBSYS 宏来展开 cgroup_subsys.h 中通过 deconfig 使能的 cgroup 子系统来填充相关结构体。 在 include/linux/cgroup-defs.h 中以 SUBSY 阅读全文

posted @ 2023-03-03 11:34 Hello-World3 阅读(879) 评论(0) 推荐(0)

Uid和Gid
摘要:1. Android中Uid定义在 Process.java 中 //frameworks/base/core/java/android/os/Process.java public class Process { public static final int ROOT_UID = 0; //De 阅读全文

posted @ 2023-01-17 14:38 Hello-World3 阅读(227) 评论(0) 推荐(0)

tracer ftrace笔记(12)—— trace文档翻译与实验——/sys/kernel/tracing/README
摘要:基于 Linux-5.10.110 一、翻译 /sys/kernel/tracing # cat README tracing mini-HOWTO: # echo 0 > tracing_on //禁用trace的快速方法# echo 1 > tracing_on //重新启用trace的快速方法 阅读全文

posted @ 2023-01-16 13:00 Hello-World3 阅读(1037) 评论(0) 推荐(0)

GDB-5——gdb tui在gdb中显示程序源码
摘要:一、简介 gdb 在调试的时候不能很好的展示源码。gdb 里面可以用 list 命令显示源码,但是 list 命令显示没有代码高亮,也不能一眼定位到正在执行的那行代码在整个代码中的位置。可以使用 gdb 自带的 gdbtui。 二、使用方法 1. 开启gdb tui模式 方法一:使用 gdbtui 阅读全文

posted @ 2022-11-08 11:57 Hello-World3 阅读(1855) 评论(0) 推荐(0)

GDB-4——Android设备中使用GDB调试程序的例子
摘要:一、一个简单的例子 1. 实验Demo (1) Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES:= mytest.c LOCAL_MODULE:= mytest LOCAL_C_FLAGS + 阅读全文

posted @ 2022-11-08 11:54 Hello-World3 阅读(638) 评论(0) 推荐(0)

GDB-3——GDB实用调试技巧
摘要:1. 将 print 显示的字符串或字符数组显示完整 当我们使用 print 命令打印一个字符串或者字符数组时,如果该字符串太长,print 命令默认显示不全的,我们可以通过在 gdb 中输入 set print element 0 设置一下,这样再次使用 print 命令就能完整地显示该变量所有字 阅读全文

posted @ 2022-11-08 11:51 Hello-World3 阅读(940) 评论(0) 推荐(0)

导航