From aea8ebae917ffcdbf3ada0b1c8f762ff0b960682 Mon Sep 17 00:00:00 2001 From: Cheng Jian Date: Wed, 20 Oct 2021 17:36:35 +0800 Subject: [PATCH] description/memory: ZONE_MOVABLE --- study/kernel/00-DESCRIPTION/ARCH.md | 5 +++ study/kernel/00-DESCRIPTION/MEMORY_MANAGER.md | 36 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/study/kernel/00-DESCRIPTION/ARCH.md b/study/kernel/00-DESCRIPTION/ARCH.md index 867acc2..4eade8b 100644 --- a/study/kernel/00-DESCRIPTION/ARCH.md +++ b/study/kernel/00-DESCRIPTION/ARCH.md @@ -217,6 +217,11 @@ TLB entry shootdown 常常或多或少的带来一些性能问题. | 2019/07/17 | Julien Thierry | [arm_pmu: Use NMI for perf interrupt](https://patchwork.kernel.org/project/linux-arm-kernel/cover/1563351432-55652-1-git-send-email-julien.thierry@arm.com) | ARM64 perf 的中断通过伪 NMI 上报, 这样会使 perf 的热点采样更加精准. | v4 ☑ 5.10-rc1 | [Patchwork v4,0/9](https://patchwork.kernel.org/project/linux-arm-kernel/cover/1563351432-55652-1-git-send-email-julien.thierry@arm.com) | +## 2.5 PAN +------- + +[armv8/arm64 PAN 深入分析](https://cloud.tencent.com/developer/article/1413360) + # 3 RISC-V ------- diff --git a/study/kernel/00-DESCRIPTION/MEMORY_MANAGER.md b/study/kernel/00-DESCRIPTION/MEMORY_MANAGER.md index 38ed24c..92d870d 100644 --- a/study/kernel/00-DESCRIPTION/MEMORY_MANAGER.md +++ b/study/kernel/00-DESCRIPTION/MEMORY_MANAGER.md @@ -89,6 +89,7 @@ |:----:|:----:|:---:|:----------:|:---:| | 1991/01/01 | [示例 sched: Improve the scheduler]() | 此处填写描述【示例】 | ☑ ☒☐ v3/5.4-rc1 | [LWN](), [PatchWork](), [lkml]() | | 2016/06/27 | [mm: mirrored memory support for page buddy allocations](http://lore.kernel.org/patchwork/patch/574230) | 内存镜像的功能 | RFC v2 ☐ | [PatchWork](https://lore.kernel.org/patchwork/patch/574230) | +| 2016/01/08 | [mm: Introduce kernelcore=mirror option](http://lore.kernel.org/patchwork/patch/574230) | 内存镜像的功能 | RFC v2 ☐ | [LKML](https://lkml.org/lkml/2016/1/8/88), [PatchWork](https://lore.kernel.org/lkml/1452241523-19559-1-git-send-email-izumi.taku@jp.fujitsu.com) | ## 0.3 主线内存管理分支合并窗口 @@ -3264,6 +3265,11 @@ DAMON 利用两个核心机制 : **基于区域的采样**和**自适应区域 2. 自适应区域调整机制使 DAMON 在保持用户配置的权衡的同时, 最大限度地提高精度, 减少开销. +作者 SeongJae Park +> github :https://github.com/sjp38/linux / +> 后期切到了 git.kernel.org https://git.kernel.org/pub/scm/linux/kernel/git/sj/linux.git + + | 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 | |:----:|:----:|:---:|:----:|:---------:|:----:| | 2021/07/16 | SeongJae Park / | [Introduce Data Access MONitor (DAMON)](https://damonitor.github.io) | 数据访问监视器 DAMON | v34 ☑ 5.15-rc1 | [PatchWork v24,00/14](https://lore.kernel.org/patchwork/cover/1375732), [LWN](https://lwn.net/Articles/1461471)
*-*-*-*-*-*-*-*
[PatchWork v34,00/13](https://patchwork.kernel.org/project/linux-mm/cover/20210716081449.22187-1-sj38.park@gmail.com) | @@ -3518,6 +3524,36 @@ DAMON 利用两个核心机制 : **基于区域的采样**和**自适应区域 | 2021/10/04 | "Matthew Wilcox (Oracle)" | [Assorted improvements to usercopy](https://lore.kernel.org/patchwork/cover/856356) | usercopy 的各种改进 | v1 ☐ | [PatchWork 0/3](https://patchwork.kernel.org/project/linux-mm/cover/20211004224224.4137992-1-willy@infradead.org) | +## 14.13 ZONE_MOVABLE + + +### 14.13.1 ZONE_MOVABLE +------- + +[Preserving the mobility of ZONE_MOVABLE](https://lwn.net/Articles/843326/) + +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2a1e274acf0b1c192face19a4be7c12d4503eaaf +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7e63efef857575320fb413fbc3d0ee704b72845f + +### 14.13.1 内存镜像 +------- + +| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 | +|:----:|:----:|:---:|:----:|:---------:|:----:| +| 2016/01/08 | Taku Izumi | [handle kernelcore=: generic](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ed7ed365172e27b0efe9d43cc962723c7193e34e) | 之前 kernelcore 启动参数的处理是架构相关的, 可能导致某些架构出现问题. 这个补丁使用通用代码来处理 `kernelcore` 参数. 适用于支持独立于 arch 的区域大小调整(即定义 CONFIG_ARCH_POPULATES_NODE_MAP) 的架构, 其他架构将忽略引导参数. | v1 ☑ 2.6.23-rc1 | [commit](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ed7ed365172e27b0efe9d43cc962723c7193e34e) | + + + + +| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 | +|:----:|:----:|:---:|:----:|:---------:|:----:| +| 2016/01/08 | Taku Izumi | [mm: Introduce kernelcore=mirror option](http://lore.kernel.org/patchwork/patch/574230) | 内存镜像, 提供内存可靠性分级的功能.
通过 BIOS 上报高可靠(mirrored/reliable)和低可靠的两种内存. 使用标记区分, 内核默认使用高可靠的内存, 用 NORMAL ZONE 管理, 用户态优先使用普通(低可靠的)内存, 使用 MOVABLE ZONE 管理. | v4 ☑ 4.6-rc1 | [LKML](https://lkml.org/lkml/2016/1/8/88), [PatchWork v4,0/2](https://lore.kernel.org/lkml/1452241523-19559-1-git-send-email-izumi.taku@jp.fujitsu.com) | +| 2016/06/27 | Xishi Qiu | [mm: mirrored memory support for page buddy allocations](http://lore.kernel.org/patchwork/patch/574230) | 内存镜像的功能 | RFC v2 ☐ | [PatchWork RFC,v2,0/8](https://lore.kernel.org/lkml/558E084A.60900@huawei.com) | +| 2018/2/12 | David Rientjes | [mm: Introduce kernelcore=mirror option](http://lore.kernel.org/patchwork/patch/574230) | `kernelcore=` 和 `movablecore=` 都可以分别用于定义系统上 ZONE_NORMAL 和 ZONE_MOVABLE 的数量. 然而, 这需要在指定命令行时知道系统内存容量. 这个补丁引入了将 `kernelcore` 和 `movablecore` 定义为系统总内存的百分比的能力. 这对于希望将 ZONE_MOVABLE 的数量定义为系统内存的比例(而不是硬编码的字节值)的系统软件来说是很方便的. 要定义百分比, 参数的最后一个字符应该是 '%'. | v4 ☑ 4.17-rc1 | [LKML 1/2](https://lkml.org/lkml/2018/2/12/1024) | + + + + --- **引用:**