- 博客(10)
- 收藏
- 关注
原创 mremap:用户态调用mremap后VMA的pgoff以及page会发生发生
先说结论:1、执行mremap后,如果新的addr之前被映射过,之前映射过的page会被释放掉,新的addr先unmap掉。重新把旧addr的page重新映射到新的addr,中间出现一段未映射的地址空隙。那么就会新建一个vma。3、旧的page内容不会变,page->index(pgoff)也不会变。
2026-04-09 14:42:12
168
原创 Linux水线和内存分配快速路径和慢路径的关系
这意味着:只有目标内存区域(zone)的空闲页数。(compaction),直到满足分配或最终失败。,并传入水位标志 ALLOC_WMARK_LOW。进行后台异步回收(因为此时可能已低于。,则快速路径分配失败,返回 NULL。(direct reclaim)和/或。时,才能从该 zone 成功分配。快速路径失败后,内核进入。
2026-03-08 22:41:28
20
原创 Linux内核调度器的发展历史(上)
调度器的具体实现模块是通过调度类来实现的,所以任何一个调度器必然有自己的一套调度类sched_class结构体,结构体抽象类一系列所有调度器都必须要实现的接口,必须enqueue_task|dequeue_task,pick_next_task,balance(怎么把进程均衡到CPU的runqueue上)因此,当它被唤醒时,它会立即位于红黑树的最左侧,从而被迅速调度,带来非常流畅的用户体验。:随着多核处理器的普及,O(1)调度器在每个CPU的运行队列负载均衡方面表现不佳,容易出现CPU负载不均的情况。
2026-03-08 17:13:39
337
原创 详解KSM(内存合并) 页跟踪原理
随着内存合并近几年发展的成熟(KSM页面进程级跟踪或扫描优化)以及bug修复,内存合并技术在越来越多的厂商得到应用,除了应用到最初的目标场景:KVM虚拟机场景以外,在容器或普通应用如桌面浏览器应用等也有很高的价值,例如Meta公司就曾分享过KSM在facebook的应用内存收益很大,另外在一些通信、嵌入式设备等内存资源紧张的设备上也有很多的应用。),KSM的基本原理已有KSM官方资料,此处不再赘述。这里主要深入讲解下KSM的页跟踪原理,该内容本文独一份,其他地方没有看到这块讲解。
2026-02-04 15:59:14
762
原创 用vmware安装没有桌面的OpenEuler怎么用本地Windows远程连接虚拟机中的Linux?
ip addr add dev ens33 192.168.1.99/24 (这一步是为了和Host上的网卡配置保持同网段)systemctl restart NetworkManager (网络模式切换为网桥后,我们重新启动网络管理)2、配置vmware的模式为桥接模式(这种模式下host的Windows才能访问虚拟机中的Linux)ping 192.168.1.1 (ping一下网关,你家的路由器默认是这个)1、给vmware安装VMware Tools。Host上的原始配置如下(Host不动)
2025-08-17 15:55:41
201
转载 linux内存-内存回收
一、什么时候回收内存?1、直接内存回收有新的大块内存分配请求,但是剩余内存不足。这个时候系统就需要回收一部分内存,进而尽可能地满足新内存请求。2、定期扫描回收(kswapd)操作系统内核线程kswapd定期进行回收内存,并通过设定三个内存阈值来衡量内存的使用情况,分别是页最小阈值(pages_min) 页低阈值(pages_low) 页高阈值(pages_high)kswapd定期扫描内存的使用情况,并根据剩余内存落在这三个阈值的空间位置,进行内存的回收操作。1)free
2022-05-18 16:33:45
2889
转载 To Linux kernel社区发送补丁patch
本文主要参考提交内核补丁到Linux社区的步骤 - 广漠飘羽 - 博客园为了便于自己记忆,和备份。记录一下提交patch的流程:一、下载源码(clone分支)在官网下载最新代码,或者通过MAINTAINERS寻找对应子系统的仓库代码。通常linux-next的仓库是最新的分支代码,git clone这个就行。二、创建补丁1. 下载后修改代码2. 然后 git add -A3. git commit -m "information about this patch"4.
2021-12-04 11:22:12
1938
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅