mirror of
https://github.com/gatieme/LDD-LinuxDeviceDrivers.git
synced 2026-08-19 10:26:03 +08:00
description: openanolis
This commit is contained in:
@@ -168,14 +168,22 @@ bcc32a75cf6b psi: fix reference to kernel commandline enable
|
||||
d09e62bab8d0 kernel/sched/psi.c: simplify cgroup_move_task()
|
||||
d26da1947f48 psi: cgroup support
|
||||
8b2bf0799111 psi: pressure stall information for CPU, memory, and IO
|
||||
```
|
||||
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|:----:|:----:|:---:|:----:|:---------:|:----:|
|
||||
| 2020/04/03 | Johannes Weiner <hannes@cmpxchg.org> | [psi: pressure stall information for CPU, memory, and IO v4](https://lwn.net/Articles/815342) | NA | v4 ☑ [4.20-rc1](https://kernelnewbies.org/Linux_5.9#Memory_management) | [Patchwork](https://lore.kernel.org/patchwork/patch/978495) |
|
||||
|
||||
```cpp
|
||||
d26da1947f48 psi: cgroup support
|
||||
8b2bf0799111 psi: pressure stall information for CPU, memory, and IO
|
||||
ec035638f0c2 sched: introduce this_rq_lock_irq()
|
||||
420e6dea146e sched: sched.h: make rq locking and clock functions available in stats.h
|
||||
3bf93774b166 sched: loadavg: make calc_load_n() public
|
||||
4ca637b41664 sched: loadavg: consolidate LOAD_INT, LOAD_FRAC, CALC_LOAD
|
||||
2dde6f773e87 delayacct: track delays from thrashing cache pages
|
||||
|
||||
e2d3e3cb0d60 mm: workingset: tell cache transitions from workingset thrashing
|
||||
b027d193c877 mm: workingset: don't drop refault information prematurely
|
||||
```
|
||||
|
||||
|
||||
@@ -396,7 +404,10 @@ c5cfeb3e2b18 mm: memcontrol: fix stat-corrupting race in charge moving
|
||||
## mm: fix page aging across multiple cgroups
|
||||
-------
|
||||
|
||||
https://lore.kernel.org/patchwork/cover/1150211
|
||||
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|:----:|:----:|:---:|:---:|:----------:|:----:|
|
||||
| 2019/11/07 | Johannes Weiner <hannes@cmpxchg.org> | [mm: fix page aging across multiple cgroups](https://lore.kernel.org/patchwork/cover/1150211) | NA | v2 ☑ [5.5-rc1](https://kernelnewbies.org/Linux_5.5#Memory_management) | [PatchWork v1](https://lore.kernel.org/patchwork/cover/1150211) |
|
||||
|
||||
```cpp
|
||||
af77f2589a48 mm: vmscan: enforce inactive:active ratio at the reclaim root
|
||||
@@ -407,10 +418,18 @@ af77f2589a48 mm: vmscan: enforce inactive:active ratio at the reclaim root
|
||||
## mm: vmscan: cgroup-related cleanups
|
||||
-------
|
||||
|
||||
https://lore.kernel.org/patchwork/cover/1142997
|
||||
一组 cleanup 也合入了, 我表示深刻的不理解. cleanup 没改变逻辑, 只是上代码更清晰. 合入的原因是啥
|
||||
|
||||
|
||||
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|:----:|:----:|:---:|:---:|:----------:|:----:|
|
||||
| 2019/11/07 | Johannes Weiner <hannes@cmpxchg.org> | [mm: fix page aging across multiple cgroups](https://lore.kernel.org/patchwork/cover/1142997) | 对回收代码与cgroups的交互进行了一些清理. 它们不应该改变任何行为, 而只是让实现更容易理解和使用. | v1 ☑ [5.5-rc1](https://kernelnewbies.org/Linux_5.5#Memory_management) | [PatchWork v1](https://lore.kernel.org/patchwork/cover/1142997) |
|
||||
|
||||
|
||||
```cpp
|
||||
#30476527
|
||||
|
||||
9f124d740916 mm: vmscan: harmonize writeback congestion tracking for nodes & memcgs
|
||||
47b5bb94e110 mm: vmscan: turn shrink_node_memcg() into shrink_lruvec()
|
||||
d144427dbe3d mm: vmscan: split shrink_node() into node part and memcgs part
|
||||
@@ -421,17 +440,23 @@ c5e78e07aaa1 mm: vmscan: move inactive_list_is_low() swap check to the caller
|
||||
385269e8de19 mm: vmscan: simplify lruvec_lru_size()
|
||||
```
|
||||
|
||||
## mm/workingset: remove unused @mapping argument in workingset_eviction()
|
||||
-------
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|:----:|:----:|:---:|:---:|:----------:|:----:|
|
||||
| 2019/02/28 | Andrey Ryabinin <aryabinin@virtuozzo.com> | [mm/workingset: remove unused @mapping argument in workingset_eviction()](https://lore.kernel.org/patchwork/cover/1046511) | NA | v1 ☑ [5.5-rc1](https://kernelnewbies.org/Linux_5.5#Memory_management) | [PatchWork v2](https://lore.kernel.org/patchwork/cover/1046511) |
|
||||
|
||||
https://lore.kernel.org/patchwork/patch/1046511
|
||||
|
||||
```cpp
|
||||
f2116b7f9274 mm/workingset: remove unused @mapping argument in workingset_eviction()
|
||||
4f466c091b62 mm/vmscan: remove unused lru_pages argument
|
||||
```
|
||||
|
||||
## mm/workingset: remove unused @mapping argument in workingset_eviction()
|
||||
-------
|
||||
|
||||
又一组 cleanup
|
||||
|
||||
|
||||
```cpp
|
||||
91ae8e0cd768 mm: vmscan: do not share cgroup iteration between reclaimers
|
||||
1a8869efe950 mm: vmscan: do not iterate all mem cgroups for global direct reclaim
|
||||
54c1b36ed43a mm/memcontrol: update lruvec counters in mem_cgroup_move_account
|
||||
|
||||
@@ -490,7 +490,7 @@ SLUB 在解决了上述的问题之上, 提供与 SLAB 完全一样的接口,
|
||||
|:----:|:----:|:---:|:----:|:---------:|:----:|
|
||||
| 2017/03/17 | Nicholas Piggin <npiggin@gmail.com> | [huge vmalloc mappings](https://lore.kernel.org/patchwork/cover/1397495) | 实现 SLOB 分配器 | v2 ☑ 2.6.16-rc1 | [PatchWork v2](https://lore.kernel.org/patchwork/cover/1397495) |
|
||||
| 2019/04/06 | "Uladzislau Rezki (Sony)" <urezki@gmail.com> | [improve vmap allocation](https://lore.kernel.org/patchwork/cover/1059021) | 实现 SLOB 分配器 | v2 ☑ [5.2-rc7](https://kernelnewbies.org/Linux_5.2#Memory_management) | [PatchWork RFC](https://lore.kernel.org/patchwork/cover/1002038)<br>*-*-*-*-*-*-*-* <br>[PatchWork RFC v4](https://lore.kernel.org/patchwork/cover/1028793), [PatchWork v2](https://lore.kernel.org/patchwork/cover/1059021) |
|
||||
|
||||
| 2019/01/03 | "Uladzislau Rezki (Sony)" <urezki@gmail.com> | [test driver to analyse vmalloc allocator](https://lore.kernel.org/patchwork/cover/1059021) | 实现一个 test 驱动来帮助分析和测试 vmalloc | RFC v4 ☐ | [PatchWork RFC v4](https://lore.kernel.org/patchwork/cover/1028793) |
|
||||
|
||||
|
||||
### 2.1.3.2 连续内存分配器(CMA)
|
||||
@@ -500,7 +500,7 @@ SLUB 在解决了上述的问题之上, 提供与 SLAB 完全一样的接口,
|
||||
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|:----:|:----:|:---:|:----:|:---------:|:----:|
|
||||
| 2007/02/28 | Mel Gorman | [Introduce ZONE_CMA](https://lore.kernel.org/patchwork/cover/778794) | 新增了 ZONE_CMA 区域, 使用新的分区不仅可以有H/W 寻址限制, 还可以有 S/W 限制来保证页面迁移. | v7 ☐ | [PatchWork v7](https://lore.kernel.org/patchwork/cover/778794) |
|
||||
| 2007/02/28 | Mel Gorman | [Introduce ZONE_CMA](https://lore.kernel.org/patchwork/cover/778794) | 新增了 ZONE_CMA 区域, 使用新的分区不仅可以有H/W 寻址限制, 还可以有 S/W 限制来保证页面迁移. | v7 ☐ | [PatchWork v7](https://lore.kernel.org/patchwork/cover/778794) |
|
||||
| 2007/02/28 | Mel Gorman | [mm/cma: manage the memory of the CMA area by using the ZONE_MOVABLE](https://lore.kernel.org/patchwork/cover/857428) | 新增了 ZONE_CMA 区域, 使用新的分区不仅可以有H/W 寻址限制, 还可以有 S/W 限制来保证页面迁移. | v2 ☐ | [PatchWork v7](https://lore.kernel.org/patchwork/cover/857428) |
|
||||
| 2010/11/19 | Mel Gorman | [big chunk memory allocator v4](https://lore.kernel.org/patchwork/cover/224757) | 大块内存分配器 | v4 ☐ | [PatchWork v4](https://lore.kernel.org/patchwork/cover/224757) |
|
||||
| 2015/02/12 | Joonsoo Kim <iamjoonsoo.kim@lge.com> | [mm/compaction: enhance compaction finish condition](https://lore.kernel.org/patchwork/patch/542063) | 同样的, 之前 NULL 指针和错误指针的输出也很混乱, 进行了归一化. | v1 ☑ 4.1-rc1 | [PatchWork](https://lore.kernel.org/patchwork/cover/542063)<br>*-*-*-*-*-*-*-* <br>[关键 commit 2149cdaef6c0](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2149cdaef6c0eb59a9edf3b152027392cd66b41f) |
|
||||
@@ -645,7 +645,6 @@ Linux 一开始是在一台i386上的机器开发的, i386 的硬件页表是2
|
||||
|:----:|:----:|:---:|:----:|:---------:|:----:|
|
||||
| 2008/06/11 | Rik van Riel <riel@redhat.com> | [VM pageout scalability improvements (V12)](https://lore.kernel.org/patchwork/cover/118967) | 在大内存系统上, 扫描 LRU 中无法(或不应该)从内存中逐出的页面. 它不仅会占用CPU时间, 而且还会引发锁争用. 并且会使大型系统处于紧张的内存压力状态. 该补丁系列通过一系列措施提高了虚拟机的可扩展性:<br>1. 将文件系统支持的、交换支持的和不可收回的页放到它们自己的LRUs上, 这样系统只扫描它可以/应该从内存中收回的页<br>
|
||||
2. 为匿名 LRUs 切换到双指针时钟替换, 因此系统开始交换时需要扫描的页面数量绑定到一个合理的数量<br>3. 将不可收回的页面完全远离LRU, 这样 VM 就不会浪费 CPU 时间扫描它们. ramfs、ramdisk、SHM_LOCKED共享内存段和mlock VMA页都保持在不可撤销列表中. | v12 ☑ [2.6.28-rc1](https://kernelnewbies.org/Linux_2_6_28#Various_core) | [PatchWork v2](https://lore.kernel.org/patchwork/cover/118967), [LWN](https://lwn.net/Articles/286472) |
|
||||
| 2017/03/17 | Nicholas Piggin <npiggin@gmail.com> | [Multigenerational LRU Framework](https://lore.kernel.org/patchwork/cover/1412560) | 实现 SLOB 分配器 | v2 ☑ 2.6.16-rc1 | [PatchWork v2](https://lore.kernel.org/patchwork/cover/1412560) |
|
||||
|
||||
### 2.4.1.2 二次机会法
|
||||
-------
|
||||
@@ -791,7 +790,7 @@ aaba9265318 [PATCH] make pagemap_lru_lock irq-safe
|
||||
|
||||
|
||||
|
||||
### 2.4.1.3 active 与 inactive 链表拆分
|
||||
### 2.4.1.3 页面老化(active 与 inactive 链表拆分)
|
||||
-------
|
||||
|
||||
|
||||
@@ -843,6 +842,10 @@ active 头(热烈使用中) > active 尾 > inactive 头 > inactive 尾(被驱逐
|
||||
| 2010/02/22 | Johannes Weiner <hannes@cmpxchg.org> | [vmscan: detect mapped file pages used only once](https://lore.kernel.org/patchwork/patch/189878) | 在文件页面线性流的场景, 源源不断的文件页面在被一次引用后, 被激活到 active LRU list 中, 将导致 active LRU list 中充斥着这样的页面. 为了解决这个问题, 通过重用 PG_referenced 页面标志检测和识别这类引用, 设置其只有在第二次引用后, 才能被激活. | v2 ☑ 2.6.31-rc1 | [PatchWork](https://lore.kernel.org/patchwork/cover/189878), [commit](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=645747462435d84c6c6a64269ed49cc3015f753d) |
|
||||
| 2011/08/08 | Konstantin Khlebnikov <khlebnikov@openvz.org> | [vmscan: promote shared file mapped pages](https://lore.kernel.org/patchwork/patch/262019) | 上面的补丁极大地减少了一次性使用的映射文件页的生存期. 不幸的是, 它还减少了所有共享映射文件页面的生存时间. 在这个补丁之后, 如果这个页面已经通过几个 ptes 被多次使用, page_check_references() 也会在第一次非活动列表扫描时激活文件映射页面. | v2 ☑ 3.3-rc1 | [PatchWork v2](https://lore.kernel.org/patchwork/cover/262019), [commit](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34dbc67a644f11ab3475d822d72e25409911e760) |
|
||||
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|:----:|:----:|:---:|:----:|:---------:|:----:|
|
||||
| 2017/03/17 | Nicholas Piggin <npiggin@gmail.com> | [Multigenerational LRU Framework](https://lwn.net/Articles/851184) | 实现 SLOB 分配器 | v2 ☑ 2.6.16-rc1 | [PatchWork v2](https://lore.kernel.org/patchwork/cover/1432175) |
|
||||
|
||||
|
||||
|
||||
## 2.4.1.4 LRU 中的内存水线
|
||||
|
||||
Reference in New Issue
Block a user