linux 并行实时
研究基于linux实现高确定性的并行系统。
os从业人员
os从业人员,研究方向主要涉及linux操作系统、并行实时系统。个人邮箱wdjjwb@163.com
展开
-
vmlinux 和普通elf文件的差别 linux kernel加载简述
vmlinux其实也是一个elf格式文件,它和普通elf是有些区别的。linux下可执行程序格式是elf的。elf格式的文件中有一个Program Headers,这个数据结构告诉 程序加载器,应该如何把 这个elf文件加载到虚拟地址空间中去执行。elf格式还有一个数据结构是Section Headers,这个不是用于程序加载,是用于编译、链接的。 因此gcc -c也可以生成目标代...原创 2018-07-21 15:32:12 · 2521 阅读 · 0 评论 -
Linux NO_HZ_FULL NO_HZ 框架实现分析
解决一个问题重要的是了解问题的领域知识和相关背景,本文的目的是介绍linux内核的NO_HZ_FULL相关领域知识,以便涉及相关问题时候能更容易上手。 简单的说linux NO_HZ_FULL的作用是消除Linux内核不必要的周期时钟,提高系统的性能或者节省能耗。NO_HZ需要内核高精度时钟框架的支持。NO_HZ有几种选择,NO_HZ_IDLE是在CPU IDLE的时候关掉该CPU的周期tick...原创 2018-07-12 16:35:29 · 5757 阅读 · 0 评论 -
linux 透明巨页khugepaged 后台进程分析
简介: 透明巨页Transparent Hugepage 可以代替以前的hugetlbfs方式。 相关说明可以参考内核Documentation\vm\transhuge.txt文档。khugepaged : khugepaged 是透明巨页的守护进程,它的主要功能是定时唤醒,根据配置尝试将4k 的普通page转成2M等巨页,减少TLB压力,提高内存使用效率。 khugepaged的处...原创 2018-06-26 14:14:28 · 11851 阅读 · 0 评论 -
linux DO_ONCE、Static Keys、jump label和IPI
本文基于linux4.4问题的来源: 研究的起始来源与发现linux4.4内核在x86机器上text_poke_bp函数会向每个在线cpu发送IPI,执行do_sync_core动作。 虽然do_sync_core只是在每个cpu上执行一下简单的CPUID指令,但毕竟会触发中断,打断当前进程,对系统确定性造成影响。 下面主要分析下这个IPI的来龙去脉。一种分支判断优化方法: 要说明...原创 2018-06-28 16:46:30 · 1095 阅读 · 1 评论 -
linux prctl系统调用触发IPI
prctl系统调用提供了一系列操作进程的方法。这里主要说明一下PR_SET_SECCOMP参数是如何触发IPI的。seccomp 是 secure computing 的缩写,是 Linux kernel 从2.6.23版本引入的一种简洁的沙盒 sandboxing 机制。 在 Linux 系统里,大量的系统调用(system call)直接暴露给用户态程序。但是,通常的程序并不需要所有...原创 2018-06-29 11:02:15 · 1493 阅读 · 0 评论 -
计算机优化的一些随想
Wolpert and Macready 在 1997 年在优化领域中提出的 No Free Lunch Theorems(NFL),可以简单理解为:针对某一具体域内的所有优化问题 Q,经过 m 步迭代之后达到目标函数给定值的所有可能性的累加和是相等。 周志华老师在其《机器学习》一书中引申到机器学习领域:“针对某一域的所有问题,所有算法的期望性能是相同的”其实在计算机优化中上面的道理非常普遍...原创 2018-07-03 16:58:21 · 215 阅读 · 0 评论 -
linux 后台clocksource_watchdog 线程的启动条件
如果启动参数没有设置tsc=reliable,系统认为tsc时钟源需要检查后能被使用 2.检查的方法是启动clocksource_watchdog加入时钟源的时候,如果tsc时钟源不是reliable,则会在执行list_add(&cs->wd_list, &watchdog_list);,即将时钟源加入watchdog_list链表。 而启动watchdog的条...原创 2018-07-04 14:13:47 · 1288 阅读 · 0 评论