From c7cebcd7e01ac801052064354e94f9020954ac65 Mon Sep 17 00:00:00 2001 From: Cheng Jian Date: Mon, 31 Jan 2022 08:48:59 +0800 Subject: [PATCH] description: update 20220129 --- study/kernel/00-DESCRIPTION/PERFORMANCE.md | 2 ++ study/kernel/00-DESCRIPTION/SCHEDULER.md | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/study/kernel/00-DESCRIPTION/PERFORMANCE.md b/study/kernel/00-DESCRIPTION/PERFORMANCE.md index f002c16..b6dde5f 100644 --- a/study/kernel/00-DESCRIPTION/PERFORMANCE.md +++ b/study/kernel/00-DESCRIPTION/PERFORMANCE.md @@ -78,6 +78,8 @@ https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.17-AF_UNIX-Optimizat https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.17-Faster-csum_partial +https://www.phoronix.com/scan.php?page=news_item&px=UDP-IPV6-5P-Optimization + # 3 IO ------- diff --git a/study/kernel/00-DESCRIPTION/SCHEDULER.md b/study/kernel/00-DESCRIPTION/SCHEDULER.md index bc39cc3..b2866c3 100644 --- a/study/kernel/00-DESCRIPTION/SCHEDULER.md +++ b/study/kernel/00-DESCRIPTION/SCHEDULER.md @@ -800,9 +800,15 @@ NUMA 机器一个重要特性就是不同 node 之间的内存访问速度有差 [NUMA placement problems [LWN.net]](https://link.zhihu.com/?target=https%3A//lwn.net/Articles/591995/) +[Scheduler/NUMA](https://lwn.net/Kernel/Index/#Scheduler-NUMA) + +[NUMA in a hurry](https://lwn.net/Articles/524977) +[RFC: Unified NUMA balancing tree, v1](https://lkml.org/lkml/2012/12/2/87) + | 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 | |:----:|:----:|:---:|:---:|:----------:|:----:| -| 2013/10/07 | Mel Gorman | [Basic scheduler support for automatic NUMA balancing V9](https://lwn.net/Articles/557427/) | | v9 ☑ 3.13-rc1 | [LWN v2](https://lwn.net/Articles/568619), [LKML v8](https://lkml.org/lkml/2013/9/27/211), [LORE 00/63](https://lore.kernel.org/all/1381141781-10992-1-git-send-email-mgorman@suse.de) | +| 2012/12/07 | Paul Gortmaker | [Automatic NUMA Balancing V11](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?id=d28d433512f4f387e2563c14db45a7bb8a338b1a) | 包含了 [Latest numa/core patches, v15](https://lore.kernel.org/lkml/1352826834-11774-1-git-send-email-mingo@kernel.org) | v11 ☑ 3.8-rc1 | [LORE v4 00/46](https://lore.kernel.org/lkml/1353493312-8069-1-git-send-email-mgorman@suse.de)
*-*-*-*-*-*-*-*
[LORE v10,00/49](https://lore.kernel.org/lkml/1354875832-9700-1-git-send-email-mgorman@suse.de), [LKML v10,00/49](https://lkml.org/lkml/2012/12/7/119)
*-*-*-*-*-*-*-*
[LORE v11,00/50](https://lore.kernel.org/lkml/20121212100338.GS1009@suse.de) | +| 2013/10/07 | Mel Gorman | [Basic scheduler support for automatic NUMA balancing V9](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?id=2739d3eef3a93a92c366a3a0bb85a0afe09e8b8c) | | v9 ☑ 3.13-rc1 | [LORE v2,00/13](https://lore.kernel.org/lkml/1372861300-9973-1-git-send-email-mgorman@suse.de), [LKML v8](https://lkml.org/lkml/2013/9/27/211), [LORE 00/63](https://lore.kernel.org/all/1381141781-10992-1-git-send-email-mgorman@suse.de) | | 2021/10/27 | Gang Li | [sched/numa: add per-process numa_balancing](https://lkml.org/lkml/2021/10/27/517) | 这个补丁在 prctl 中添加了一个新的 api PR_NUMA_BALANCING 来控制当个进程参与和禁止 numa_balancing. 在执行 numa_balancing 时, 大量的页面错误会导致性能损失. 因此, 那些关心最坏情况下性能的进程需要禁用 numa_balancing. 相反, 另一些则允许暂时的性能损失以换取更高的平均性能, 因此启用 numa 平衡对它们来说更好. 但是当前 numa balancing 只能由 `/proc/sys/kernel/numa_balancing` 全局控制. 因此这个特性希望禁用/启用每个进程的 numa_balancing. 在 mm_struct 下添加 numa_balancing. 然后在 task_tick_numa 中使用来控制. mm ->numa_balancing 仅在全局 numa_balancing 启用时有效. 当全局 numa_balancing 被禁用时, mm->numa_blancing 不会改变, 当你想要获得进程 numa_balancing 状态时, 你总是会得到 0, 并且当你使用 prctl set 它时, 内核将返回 err. | v1 ☐ | [LKML](https://lkml.org/lkml/2021/10/27/517) | | 2014/05/14 | Rik van Riel | [sched/numa: Allow task switch if load imbalance improves](https://linuxplumbersconf.org/event/4/contributions/480) | 目前 NUMA 平衡代码只允许在 NUMA 节点上的负载处于平衡状态时在 NUMA 节点之间移动任务. 当负载开始不平衡时, 它就崩溃了. 因此这个补丁引入 load_too_imbalanced() 来判定, 如果不平衡较小, 或者新的不平衡小于原来的不平衡, 则允许在 NUMA 节点之间移动任务. | v1 ☑ 3.16-rc1 | [COMMIT](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e63da03639cc9e6e83b62e7ef8ffdbb92421416a) | | 2018/09/21 | Srikar Dronamraju | [sched/numa: Avoid task migration for small NUMA improvement](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6fd98e775f24fd41520928d345f5db3ff52bb35d) | 如果 NUMAC 层次的任务迁移带来的改进非常小(小于 SMALLIMP), 那么应该尽量避免任务迁移. 否则可能会带来 pingpong(进程来回迁移颠簸), 甚至 cache-miss 引起的性能下降. | v1 ☑ 4.19-rc7 | [COMMIT](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6fd98e775f24fd41520928d345f5db3ff52bb35d) |