博客地址:http://home.cnblogs.com/u/zengjianrong/

11 2019 档案

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