https://lwn.net/ml/linux-kernel/20201027063217.211096-2-ying.huang@intel.com/ 解决快速内存和慢速内存共存场景下的内存使用问题: 1、识别hot/cold页,将hot页迁移到快速内存 2、快速内存内存紧张时,换出cold内存。
Kenrel autonuma
Kernel Data Access Monitor
DAMON:Linux Kernel官方的内存访问频次监控统计框架 DAMON(Data Access MONitor)是linux kernel的内存访问频次监控统计框架。在5.15进入了Kernel主线,一直在迭代(去看看)。 DAMON可以做虚拟内存和物理内存的访问监控,监控的结果是数据的访问频繁程度,可以通过回调函数(比如利用MADV),对冷热内存做很多内存优化的操作,包括冷内存...
Kernel Virtual Function I/O
一、vfio Virtual Function I/O (VFIO) 是一种现代化的设备直通方案,它充分利用了VT-d/AMD-Vi技术提供的DMA Remapping和Interrupt Remapping特性, 在保证直通设备的DMA安全性同时可以达到接近物理设备的I/O的性能。 用户态进程可以直接使用VFIO驱动直接访问硬件,并且由于整个过程是在IOMMU的保护下进行因此十分安全, ...
linux Slab
一、slab https://zhuanlan.zhihu.com/p/166649492 Linux内存管理:slub分配器 https://www.jianshu.com/p/95d68389fbd1 slab分配器 细节拉满,80 张图带你一步一步推演 slab 内存池的设计与实现 https://segmentfault.com/a/1190000043626203 内...
The Kernel Memory Sanitizer (KMSAN)
一、kmsan https://github.com/google/kmsan/blob/master/Documentation/dev-tools/kmsan.rst KMSAN is a dynamic error detector aimed at finding uses of uninitialized values. It is based on compiler instr...
Kernel Electric Fence (kfence)
一、kfence Kfence (Kernel Electric Fence) 是 Linux 内核引入的一种低开销的内存错误检测机制,因为是低开销的所以它可以在运行的生产环境中开启,同样由于是低开销所以它的功能相比较 Kasan 会偏弱。 Kfence 的基本原理非常简单,它创建了自己的专有检测内存池 kfence_pool。在 data page 的两边加上了 fence page ...
The Kernel Address Sanitizer (KASAN)
Reference: https://cloud.tencent.com/developer/article/1381068 KASAN实现原理 一、KASAN概念 KASAN是一个动态检测内存错误的工具。KASAN可以 。功能比SLUB DEBUG齐全并且支持实时检测。 CONFIG_SLUB_DEBUG=y CONFIG_KASAN=y 二、KASAN检测机制 在代码运行...
mmap_lock debugger
一、背景 通过内核的新增的mmap_lock tracepoint结合ebpf,实现对mmap_lock的调测,监控线程持锁时间 二、实现 1、社区在mmap_lock增加tracepoint https://github.com/torvalds/linux/commit/2b5067a8143e34aa3fa57a20fb8a3c40d905f942 https://github....
High Performance OS - caladan
Caladan: Mitigating Interference at Microsecond Timescales 1 场景 交互式、数据密集型Web服务 —— 可变负载。在真实场景,资源使用以及干扰频繁变化的情况下,隔离分区式的解决方案存在低CPU利用率(负载低)和长尾时延(负载高)的问题。即便有些方案增加了CPU资源流动的设计,但是从负载变化到资源流动收敛,需要毫秒级甚至是秒级的时间,...
Direct memory access(DMA)
一、DMA DMA,全称Direct Memory Access,即直接存储器访问。 DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直...