11 2019 档案
摘要:参考链接:https://blog.csdn.net/youfuchen/article/details/23179799 https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
阅读全文
摘要:为啥第6点直接用 “虚拟时间差值” 与 “实际时间片” 作比较???是否会有误差? 由git log提交信息来看,是为了让nice > 0的进程更容易被抢占,即虚拟时间走得比实际时间快的进程更容易被抢占; 调用schedule tick有两个路径,一个是系统HZ tick,一个hrtimer tic
阅读全文
摘要:参考:http://www.wowotech.net/process_management/PELT.html 本文是对https://lwn.net/Articles/531853/的翻译 mark!
阅读全文
摘要:参考:http://www.wowotech.net/memory_management/454.html 宋大侠的文章精彩,郭大侠的评论也精彩。 结论简单摘录如下: 无论是内核态还是用户态访问合法的用户空间地址,当虚拟地址并未建立物理地址的映射关系的时候,page fault的流程几乎一样,都会帮
阅读全文
摘要:参考:https://www.byteisland.com/arm64-%E7%9A%84-memcpy-%E6%B1%87%E7%BC%96%E5%88%86%E6%9E%90/ libc/string.c 拷贝是一个字节一个字节拷贝,太慢了,现在的系统支持4/8字节拷贝,甚至16字节拷贝,故li
阅读全文
摘要:内核在更新非连续内存区对应的页表项是非常懒惰的。--《深入理解linux内核》 arm 32 只有一个PGD 寄存器,即每个进程的内核态和用户态是共享一份PGD,不同于内核主页表 vmalloc分配内存时,实际是将物理内存映射到内核的主页表(即init_task的页表); 当用户进程访问vmallo
阅读全文
摘要:undefined reference是经常遇到的链接错误,一般是函数未定义或未正确链接引起的问题; but 有一种case,比较坑。。。 c++ 调用 c 的函数,当c函数未加:extern “C” {} 进行包裹时,会出现函数未定义的问题; 根本原因是c++有重载的特性,函数/类型等符号并不是代
阅读全文
摘要:工具准备 ubuntu:sudo apt-get install perf 嵌入式平台:下载源码编译 注意:编译过程中会有Auto-detectiing system feature的依赖库打印,注意其中off的,代表此库没有符号表; 测试程序增加-fno-omit-fram-pointer -fn
阅读全文
摘要:https://github.com/google/sanitizers/wiki https://github.com/google/sanitizers/wiki/MemorySanitizer Introduction MemorySanitizer (MSan) is a detector
阅读全文
摘要:https://github.com/google/sanitizers/wiki https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual Introduction ThreadSanitizer (aka TSan) i
阅读全文
摘要:https://github.com/google/sanitizers/wiki https://github.com/google/sanitizers/wiki/AddressSanitizer AddressSanitizer (aka ASan) is a memory error det
阅读全文
摘要:前言 gperf tools有很多功能,其中有一个heap profiler,可按函数级别定位分配内存的累积量 原理 gperf tools需要替换libc的malloc库,替换为tcmalloc:thread cache malloc,通过在tcmalloc加打桩,即可定位函数级别的内存的累积量
阅读全文