![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 80
And乔
每天整理一小时
展开
-
I2Cdetect工具梳理
i2cdetect 探究原创 2022-11-09 22:26:11 · 1911 阅读 · 1 评论 -
关于Kswapd的理解(一)
关于Kswapd的理解(一)之前跟踪了MemAvailable的计算方式,其中watermark的计算花了很多精力,在学习的过程中看到一些资料中说watermark是给swapd使用的,于是乎,研究一下看看咯本部分主要记录两个方面:对于kswapd这个东西,从初学者(我)的角度出发会考虑哪些内容?跟踪kswapd 初始化结构部分;1. KSwapd机制上图是还没有跟踪kswapd code的时候,对自己提出的一些疑问和自身的理解,主要是如下内容:kswapd 机制用来做什么:内存不足时原创 2022-03-29 22:25:07 · 1783 阅读 · 2 评论 -
关于Meminfo中MemAvailable 理解
MemInfo中MemAvailable计算过程,包含watermark、totalreserve_mem等计算过程原创 2022-03-08 21:40:01 · 5586 阅读 · 0 评论 -
Linux 内存管理之 SLUB分配器(6):slub debug 实例测试
Linux 内存管理之 SLUB分配器(6):slub debug 实例测试1. Object layoutslub object layout 之前已经有专门的一小节进行介绍了,这里直接将其结果拿来:2. 配置开关默认情况下上述的layout中debug信息是没有打开的,毕竟会增加太多的内容,增加内存的压力,所以需要打开如下部分内容:Config:CONFIG_SLUB=yCONFIG_SLUB_DEBUG=yCONFIG_SLUB_DEBUG_ON=yCONFIG_SLUB_C原创 2022-01-10 21:49:05 · 1727 阅读 · 0 评论 -
Linux 内存管理之 SLUB分配器(5):slub初始化过程
Linux 内存管理之 SLUB分配器(5):slub初始化过程本小节整理记录下kmem_cache结构的初始化过程,其实呢,在前边4个小节整理完成后,本部分也就呼之欲出了本部分主要解决如下问题:在slub分配逻辑中可以看到,object的alloc实际是在kmem_cache和kmem_cache_node 结构中分配的,那么必然存在一个蛋与鸡的故事,如何处理的?在初始化的过程中,有哪些关键接口,以及其作用?首先将本部分的整体调用结构图示出来:1. 构造静态kmem_cache &am原创 2021-12-27 21:33:12 · 1088 阅读 · 0 评论 -
Linux 内存管理之 SLUB分配器 (4):slub page大小计算方法
page order的计算方法,即在申请kmem_cache的时候,每个slab申请几个page合适呢?order_objects 的计算和API说明原创 2021-12-25 19:15:08 · 984 阅读 · 0 评论 -
Linux 内存管理之 SLUB分配器(3):Object分配逻辑
SLUB Object分配逻辑整理原创 2021-12-21 23:45:42 · 903 阅读 · 0 评论 -
Linux 内存管理之 SLUB分配器(2) :kmalloc_cache 结构
1. slub2. kmalloc_caches、kmem_cache数据结构3. 分配逻辑原创 2021-12-20 22:29:29 · 1753 阅读 · 0 评论 -
Linux 内存管理之 SLUB分配器(1): Object-layout
slub分配器 object layout(debug)原创 2021-12-18 17:49:15 · 1372 阅读 · 0 评论 -
记录:Ftrace/systrace 功能使用
本文主要介绍 :1. kernel-4.9 Ftrace 功能简介,以及配置使用过程2. androidp systrace 抓取解析过程;3. 以上过程中遇到的各类问题,以及其他小伙伴遇到的问题讨论原创 2020-06-14 01:19:50 · 2490 阅读 · 2 评论 -
记录:添加trace_event埋点并调用
记录:添加trace_event埋点并调用1. 环境基于如下环境添加测试:Android Pkernel 4.9.118ftrace 功能打开2. 添加trace_test_entrykernel中所有支持的trace接口,都定义在如下目录:kernel-4.9/include/trace/events所以我们只需要参照其中实现方法,将所需要的内容添加进去即可:#undef TRACE_SYSTEM#define TRACE_SYSTEM my_test //确保定义为我们添原创 2021-08-31 22:00:04 · 1139 阅读 · 0 评论 -
simpleperf 使用记录
simperf 使用记录近期处理CPU loading过高问题,使用simpleperf生成火焰图的方式进行分析,相较于以前查看record的方式直观了不少,方法记录如下:1. simpleperf 命令查看通用开源工具一般都可以通过 -h的方式查看其命令支持情况:console:/ # simpleperf -hUsage: simpleperf [common options] subcommand [args_for_subcommand]common options:-h/–help原创 2021-07-01 19:54:26 · 3017 阅读 · 2 评论 -
CPU负载均衡之调度概念理解
前言首先来回答一个问题:为什么需要调度?有很多task,只有一个CPU,大家都想先运行,如果没有管理人员,起冲突怎么办?task是无限的,CPU的能力是有限的,有限的资源无法满足无限的需求的时候?所以所谓调度,就是针对于资源和需求的管理,是一种资源管理工具,设置规则,让所有task根据规则来决定谁先谁后;正文开始前首先show一张图介绍本文内容:1. 概念说明1.1 task什么是task?就是需求者!对于Linux来讲,调度的单位是进程,则需求者的具象化就是进程;进程状态:1.原创 2020-06-28 21:13:16 · 1547 阅读 · 0 评论 -
CPU负载均衡之loadavg计算
本文主要介绍如下内容:1. CPU负载概念说明2. CPU负载数据使用3. CPU负载计算方式以及过程原创 2020-06-26 10:10:12 · 5317 阅读 · 1 评论 -
CPU负载均衡之cpufreq使用
记录:1. cpufreq 使用2. 加大负载方式3. 查看负载方式4. cpufreq 几种governor原创 2020-06-22 20:49:36 · 2694 阅读 · 0 评论 -
路由子系统之fib相关结构体
本篇旨在记录路由子系统中相关结构体,由于socket实现在kernel部分,Linux code学习的话一般跟踪两条线:调用path结构体关系一般结构体梳理顺了,整个框架就建立在脑海了;路由表存储相关结构体路由表的数据结构:1. 字典树;2. 哈希链表;以trie为初始构造;查表构造相关结构体查表的结果为构造出来fib_result路由缓存相关结构体最终实质使用的是dst_entry,然后封装了一层成为了 rtable...原创 2020-06-22 20:52:18 · 356 阅读 · 0 评论 -
KE分析之slub_debug功能使用记录
1. 前记前段时间遇到一个问题,具有一定的代表性,特此记录,后续遇到类似问题时,可以参考这个方向2. 问题说明此问题为低概率煲机测试类问题,概率较低,需要长时间的运行才可以触发到,排查起来比较困难;2.1 测试方法设置机器为自动化休眠唤醒测试,时间周期为1分钟;usb 口有连接u盘,唤醒后会自动播放u盘内歌曲;无其他特别步骤测试时通过串口打印debug信息,另外打开系统中集成的debug功能,即收集logcat + kernel log信息,在遇到anr\je\ne\ke\hwt时会将现场原创 2020-05-30 17:37:42 · 2247 阅读 · 0 评论 -
系统调用探寻
系统调用1. outline1.1 概念1.2 涉及到的目录2. 从name调用到sys_name2.1 如何触发软中断2.2 如何正确的找到合适的函数实现位置:3. 从SYSCALL_DEFINEn(name) 转换为 sys_name3.1 函数的宏转换参数的宏转换4. 附录4.1 数组实现系统调用表4.2 系统调用复杂宏处理的安全漏洞4.3 涉及到的一些基本用法1. outline1.1 概念操作系统区分内核空间和用户空间,内核空间拥有更高的权限,可以直接操作硬件,而用户空间则需要通过内核空原创 2020-05-23 11:37:34 · 506 阅读 · 0 评论 -
ubuntu 20.04 编译yocto 错误集锦
4. ubuntu 20.04 编译yocto4.1 错误1:m4-native failed| 92 | #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."| | ^~~~~| make[3]: *** [Makefil原创 2021-01-20 23:14:54 · 12229 阅读 · 12 评论 -
yocto 打包外部应用到 system.img
yocto 打包外部应用到 system.img项目中难免需要将第三方编译完成的库或者应用打包到系统中使用,这里记录yocto中以shell 命令追加的方法:添加bbclass文件在项目源码中找到打包system.img的bbclass(类似于create-system-image,bbclass),在同级目录中添加add_test.bbclassvim add_test.class 添加类似于如下内容:add_test () {mkdir ${IMAGE_ROOTFS}/usr/bin/tes原创 2021-01-19 07:46:55 · 878 阅读 · 0 评论 -
移植opengl应用到yocto sdk
移植应用到yocto sdk1. yocto sdk 安装sdk 包解压tar -xf sdk.tarsdk 安装cd sdk./poky-glibc-x86_64-xxx-full-aarch64-toolchain-2.5.sh 具体如下图:安装完成后进行环境变量配置:cd xxx/xxx/sdk/sumo/lssource environment-setup-aarch64-poky-linuxaarch64-poky-linux-gcc -v 配置完成后原创 2021-01-16 22:44:16 · 407 阅读 · 0 评论 -
ubuntu系统工具记录
持续更新Ubuntu 20.04 双系统记录系统安装常规软件安装typora软件源配置安装nvida显卡Ubuntu 20.04 双系统记录由于2020年攒了一台主机,笔记本在使用频次上急剧降低,又因为平时需要在ubuntu环境下做一些实验程序,故搭建双系统;系统安装网上一堆教程,这里不再废话:压缩分区制作U盘启动ubuntu系统分区常规软件安装typora常用的markdown编辑工具,属于常用类软件:wget -qO - https://typora.io/linux/pub原创 2021-01-07 22:43:43 · 102 阅读 · 0 评论 -
QtCreator导入yocto sdk记录
QT安装以及导入vendor sdk1. QT-Creator安装本次前后安装了几个版本验证问题,方法具有一致性,但是不同版本对于系统依赖可能不同:主机环境:Ubuntu 14.04QT creator(QT版本):5.9.2 / 5.12.0 / 5.14.01.1 版本5.9.2 下载安装过程下载安装包官网路径:http://download.qt.io/official_releases/qt/执行命令安装cd ~/Download/chmod a+x qt-ope原创 2020-12-12 11:14:58 · 1148 阅读 · 2 评论 -
Linux 文件系统启动记录
Linux 文件系统启动记录1. 两个脚本1.1 inittab该脚本路径:/etc/inittab[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SctSKgOJ-1607260724411)(Linux%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%90%AF%E5%8A%A8%E8%AE%B0%E5%BD%95.assets/image-20201206173119963.png)]基本inittab就是上述这张图这个形式,原创 2020-12-06 21:28:04 · 349 阅读 · 0 评论 -
ubuntu 14.04 编译yocto源码--环境配置篇
ubuntu 14.04 编译yocto源码1. 环境安装ubuntu 14.04yocto依赖工具链sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping源码已经就原创 2020-10-30 21:37:02 · 830 阅读 · 1 评论