内核新特性功能跟踪

有兴趣的朋友可以评论分享针对某个特性功能的资料链接,谢谢。

资料来源: https://kernelnewbies.org/LinuxChanges

 6.12 kernel

 调度

别是为实时应用提供了更强的支持。在众多改进中,"PREEMPT_RT"(实时Linux补丁)的主线支持无疑是最引人瞩目的亮点。

Linux Kernel 6.12 进一步扩展了内核对进程的抢占能力,允许内核代码中的关键段被实时任务中断,从而在实时应用中大幅提升性能。这一变革使得Linux在处理时间敏感的任务时表现更加出色,例如工业控制、机器人技术及高频交易系统等领域,这些应用通常要求系统能快速响应外部事件。

Linux 6.12 内核引入了革命性的sched_ext功能,这是一个基于 BPF 技术的可编程调度器框架。根据官方文档的描述,它允许通过一组 BPF 程序自定义调度器的行为。

 

6.6 kernel

EEVDF(新调度器)

Linux_6.6 - Linux Kernel Newbies

The task scheduler is the part of the kernel that decides which task should be run next when there are many to pick, its role is critical to achieve good performance and latency. The previous algorithm, called CFS, was merged in Linux 2.6.23. In this release, it is replaced by code that uses a new algorithm, called EEVDF ("Earliest Eligible Virtual Deadline First").

This algorithm is designed to ensure that processes that are not getting the attention they should are automatically picked the next time, while processes that got more than they deserved are "punished". This is done in a clean, algorithmic way, where as CFS used heuristics and tunable knobs to attempt to guess which processes needed more attention. Many of these tunables have been removed. For these reasons, this new scheduler should improve the latency of tasks that would be left behind by CFS while leting other tasks be routinely over-scheduled. For more details, read the LWN article.

Recommended LWN article: An EEVDF CPU scheduler for Linux

Recommended paper: Earliest Eligible Virtual Deadline First : A Flexible and Accurate Mechanism for Proportional Share Resource Allocation

 5.17 kernel

large folios

 Linux_5.17 - Linux Kernel Newbies

 Support using (but not creating) large folios 

 

5.16 kernel

内存管理

 Linux_5.16 - Linux Kernel Newbies

 

1.3. Memory folios infrastructure for a faster memory management

To manage the system's memory, the available RAM is split into small units, called pages. The size of these pages vary depending on the architecture, but on x86 systems it's KB. In modern systems with several tens of GB, such small page size equals to a vast amount of pages, which are difficult to manage. To solve this problem, the Linux kernel developed the concept of compound pages, which are page structures that can contain more than one physical page. But the way these compound pages work is not clear, and it has bug-prone APIs that also introduce some overhead all across the kernel.

This release introduces the concept of page folios, which are like compound pages, but with better semantics. Using page folios in some core parts of the kernel brings some performance improvements in common workloads. This release will include the core infrastructure of page folios and converts some parts of the core memory management subsystem and the page cache. Future releases will convert some file systems and introduce multi-page folios.

Recommended LWN articles: Clarifying memory management with page folios, and The folio pull-request pushback

5.12 kernel

1.4. Support for the ACRN hypervisor

This release adds support for the ACRN hypervisor. ACRN is a Type 1 reference hypervisor stack, running directly on the bare-metal hardware, and is suitable for a variety of IoT and embedded device solutions. It implements a hybrid VMM architecture, using a privileged Service VM. The Service VM manages the system resources (CPU, memory, etc.) and I/O devices of User VMs. Multiple User VMs are supported, with each of them running Linux, Android OS or Windows. Both Service VM and User VMs are guest VM.

Documentation: ACRN documentation

1.7. Non-blocking path lookup while opening a file

This release supports path name lookups that will not block under any circumstance. This means that the kernel will try to resolve the path with the cached data, but if it needs to do I/O, it will return an error. This is needed for io_uring(), but support in openat2() with the RESOLVE_CACHED flag has been added, too.

Recommended LWN article: Avoiding blocking file-name lookups

1.9. Dynamic Thermal Power Management

The density of components greatly increased the last decade bringing a numerous number of heating sources which are monitored by more than 20 sensors on recent SoC. The skin temperature, which is the case temperature of the device, must stay below approximately 45°C in order to comply with the legal requirements.

The skin temperature is managed as a whole by an user space daemon, which is catching the current application profile, to allocate a power budget to the different components where the resulting heating effect will comply with the skin temperature constraint. This technique is called the Dynamic Thermal Power Management.

This series provides a Dynamic Thermal Power Management framework to provide an unified way to act on the power of the devices.

Documentation: Dynamic Thermal Power Management framework

  • cpufreq_cooling: Get effective CPU utilization from scheduler: makes the cpufreq_cooling driver reuse the CPU utilization metric provided by the scheduler instead of depending on idle and busy times of a CPU, which aren't that accurate to measure the busyness of a CPU for the next cycle commitcommitcommit

virtio-input: add multi-touch support commit

1.6. CPU Capacity awareness for the deadline scheduling class

Since Linux 3.14 the Linux task scheduler supports a deadline scheduling class, designed around real-time concepts for applications that need strict time requirements. This scheduling class was not aware of the existence of heterogeneous platforms where CPUs have not the same performance (ie. ARM big.LITTLE), which leads to wrong scheduling decisions. This release makes the deadline class aware of the capacity of each CPU.

Recommended LWn article: Capacity awareness for the deadline scheduler

Capacity awareness for the deadline scheduler [LWN.net]

阿里提交的 cpu burst功能

sched/fair: Introduce the burstable CFS controller

https://lkml.org/lkml/2021/6/21/227

kernel/git/torvalds/linux.git - Linux kernel source tree

字节跳动针对内存方面的提交

https://lkml.org/lkml/2021/8/14/27

6行代码,性能提升40%

With A Few Lines Of Code, AMD's Nice Performance Optimization For Linux 5.20 - Phoronix

 With A Few Lines Of Code, AMD's Nice Performance Optimization For Linux 5.20 - Phoronix Forums

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

proware

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值