LWN:5.14合并周期的第一部分!

深入剖析 split locks,i++ 可能导致的灾难 动手点关注干货不迷路????Split lock 是 CPU 为了支持跨 cache line 进行原子内存访问而支持的内存总线锁。有些处理器比如 ARM、RISC-V 不允许未对齐的内存访问,不会产生跨 cache line 的原子访问,所以不会产生 split lock,而 X86 是支持的。split lock 对开发者来说是很方便的,因为不需要考虑内存不对齐访问的问... 阅读详情

关注了就能看到更多这么棒的文章哦~

The first half of the 5.14 merge window

By Jonathan Corbet
July 2, 2021
DeepL assisted translation
https://lwn.net/Articles/861248/

目前为止,在 5.14 开发周期中只合入了不到 5000 个 non-merge changeset。这还不到 linux-next 中仍在排队的 patch 数量的一半,所以可以说这个合并窗口的开始阶段进展的速度有点慢。尽管如此,还是有相当多的重大修改已经合入了进来。

到目前为止,一些比较有趣的变化如下:

Architecture-specific

  • Arm64 的指针认证(pointer authentication)现在针对内核和用户空间来分别配置了。

  • x86 的 split-lock detection 设计目标是用来将那些跨越 cacheline 的原子操作进程 kill 掉,因为这些操作会严重影响性能。5.14 内核增加了一个新的命令行参数(split_lock_detect=ratelimit:N),可以设置一个速率上限,单位是用每秒发生的 lock 操作的次数。如果超过了这个限制(这里是统计整个系统中的次数),那么今后触发了这类 split lock 操作的进程就会被强制 sleep 20ms,而不用再被 kill 掉。

Core kernel

  • 新增一个 futex 操作,FUTEX_LOCK_PI2,它使用单调递增时钟(monotoic)来计算 timeout,而不是使用 realtime clock。

  • core scheduling 功能用来控制哪些进程可以共享同一个 CPU core,已经被合入 mainline 了。core scheduling 可以作为防御某些 Spectre 漏洞的措施,但在其他一些场景也有用处。

  • burstable CFS bandwidth controller 也合入 mainline 了。此功能允许那些突发性的(bursty)workload 在某些条件下可以短暂地超出其 CPU 时间上限。

  • BPF program loader 的初版基础设施代码已经被合入。这项工作最终要达到的目的是可以让内核只加载那些由可信密钥来签名的 BPF program。

Filesystems and block I/O

  • 新增了一个 I/O priority controller,用来供 cgroup 里管理每个 cgroup 中的成员进程所产生的 block I/O request(包括 writeback)的优先级。这个提交(https://git.kernel.org/linus/556910e39249)里包含了一些关于这个功能的文档。此外也更新了 mq-deadline I/O scheduler 来支持这些优先级。

Hardware support

  • 硬件监控。MPS MP2888 脉宽调制器,Sensiron SHT4x 湿度和温度传感器,Flex PIM4328 电源接口模块,以及 Delta DPS920AB 电源。

  • 多媒体。索尼 IMX208 图像传感器和 Atmel 扩展图像传感器控制器。

  • Miscellaneous 杂项。Stormlink SL3516 加密卸载器,PolarFire SoC(MPFS)mailbox 控制器,联想基于 WMI 的系统管理控制器,以及英特尔 SkyLake ACPI INT3472 相机电源控制器。

  • 网络。英特尔 M.2 WWAN IPC-over-shared-memory 控制器,Ingenic 以太网控制器,Loongson PCI DWMACs,Sparx5 网络交换机,以及 Mellanox BlueField 千兆以太网接口。

  • 稳压器。Richtek RT6160 BuckBoost 和 RT6245 稳压器,联发科 MT6359 电源管理 IC,Silergy SY7636A 稳压器,以及 Maxim 8893 稳压器。

  • 移除:终于,移除了旧的 IDE block driver;而 libata 子系统用来控制所有这些旋转磁盘 IDE 设备。

Networking

  • 精心设计了一个新的机制,允许自定义 multipath IP 网络流量的 hash policy 的配置;详情请见此提交(https://git.kernel.org/linus/22ba9d0d6c0d)。

  • 网络层差点就支持了 NVMe/TCP offload adapter 适配器;详情见此提交(https://git.kernel.org/linus/5ff5622ea1f1)。不幸的是,合入的代码并没有存在很长时间;在 NVMe 开发者的要求下,它被 revert 掉了,因为开发者们觉得代码还没有完全做好合入的充分准备。

  • virtio 这个虚拟传输层(virtual transport)已经支持了 SOCK_SEQPACKET (在 socket() man page 里有简要描述)。

  • 改进了 SO_REUSEPORT socket 机制,应用程序可以对故障出现之后的处理方式进行更多地控制,避免误判一些连接失败的情况。

Security-related

  • seccomp()的用户空间处理程序 handler 有了一个新的操作方式,用来为 sandboxed task 创建一个文件描述符,并在系统调用处理完成后把该文件描述符返回回去。所有这一切都是在单个原子操作中完成的。这是对四月份提到的 signal 处理问题(https://lwn.net/Articles/851813/ )的部分解决方案。

  • 新增一个机制在 user namespace 之内更好地控制 resource limit 资源限制。

Virtualization and containers

  • KVM 现在支持了 guest OS 中的 Arm64 memory tagging extension。

Internal kernel changes

  • 之前介绍的 DISCONTIGMEM memory model 已经被移除了,因为没有体系架构还在使用它了。

5.14 合并窗口可望持续到 7 月 11 日,尽管总是有可能提前关闭的。当然,等合并窗口关闭之后 LWN 会再发表另一篇文章来介绍后续这部分的改动,敬请关注。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

Linux: sys: split_lock_detect; 性能相关的split-lock 这个的意思是说,一个原子变量的内存位置横跨两个缓存线(cache line)导致,锁单元被分裂。这种情况导致的一个主要问题就是性能影响比较严重。所以如果出现性能问题的时候,这一点也算是一个调查的方向。x86特有的一种情况。从RHEL的版本看,没有这个配置文件。Intel的开发手册。 阅读详情

相关推荐

跨境TRS投资操作指南与系统解决方案

3 点击【申请 TRS 账户】,查看风险披露,录入账户参数、确定录入的参数信息,进行身份验证,输入验证码,TRS 账户开户申请已提交,后台对已提交的 TRS 开户申请进行审核,审核成功后,短信邮箱提醒,进行登录;2.点击【申请TRS账户】,查看风险披露,录入账户参数、确定录入的参数信息,进行身份验证,输入验证码,TRS账户开户申请已提交,后台对已提交的TRS开户申请进行审核,审核成功后,短信邮箱提醒,进行登录;4)更广泛的投资选择:相比A股通,TRS可以交易更多的A股标的,提供了更广泛的投资选择。

2401_85487119的博客 2842

LWN:开发者争论split-lock检测机制!

关注了就能看到更多这么棒的文章哦~Developers split over split-lock detectionByJonathan CorbetDecember 6, 2019...

Linux News搬运工 2608

状态机设计与实现( stm32小车避障为例)

本文以STM32小车避障为例,介绍了状态机设计与实现方法。首先阐述了状态机的事件驱动特性、清晰结构和易扩展优势,并给出硬件组成框架。核心实现部分展示了状态枚举定义、状态转移图和主循环框架,通过switch-case结构实现状态切换。关键状态示例包括前方扫描和转向决策逻辑,通过传感器数据驱动状态转移。总结指出状态机设计需定义枚举状态、实现状态函数、使用switch跳转并更新全局状态。文章最后声明内容为学习笔记,欢迎读者指正交流。全文结构清晰,代码示例具体,为嵌入式系统状态机设计提供了实用参考。

2302_80219536的博客 1046

LWN:检测Intel CPU的split locks以及阻止攻击

点击上方蓝色字关注我们~Detecting and handling split locksJune 7, 2019This article was contribute...

Linux News搬运工 2535

别再乱删文件了!修复Print Spooler服务自动停止的3个关键检查点(附Win10/Win11实测)

本文深入解析Windows系统中Print Spooler服务自动停止的常见原因及修复方法。从第三方驱动冲突、权限与服务依赖关系到打印队列积压,提供3个关键检查点的详细排查步骤,帮助用户彻底解决打印服务异常问题,适用于Win10/Win11系统。

weixin_31569671的博客 672

4 屏 + 8 摄像头一开,谁在悄悄拖慢你的座舱域控?

如果你觉得座舱卡顿:❌ 别第一反应怪 SoC❌ 别盲目堆算力。

weixin_43199439的博客 148

Split Lock日志分析

这很可能是主机夯死的主因。可进一步精准定位问题模块!Split Lock 是。

weixin_53389944的博客 1332

【个人学习总结】CRC校验原理及实现

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 ..................

星Yeah 的博客 7967

Linux kernel 命令行参数四

rfkill.default_state= 0 "airplane mode". All wifi, bluetooth, wimax, gps, fm, etc. communication is blocked by default. 1 Unblocked. rfkill.master_switch_mode= ...

哦,原来你也在这里。 1559

【RT-DETR实战】117、华为昇腾CANN部署探索:从模型转换到推理踩坑实录

本文总结了RT-DETR模型在昇腾310B芯片上部署的关键挑战与解决方案。主要遇到四大问题:1)模型转换时需注意ONNX导出设置,建议先固定尺寸验证;2)内存布局差异导致推理异常,需精确匹配NHWC/NCHW格式;3)流水线并发优化中内存复用和异步处理是关键;4)调试阶段需利用专用工具逐层比对。作者提出六条实用建议,包括小尺寸验证、预处理对齐、内存池设计等,强调部署是持续适配过程,需建立完整的测试体系应对工具链迭代。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 190

USB驱动(URB)

本文介绍了Linux内核中USB驱动开发的核心概念URB(USB Request Block)。URB是主机与USB设备间传输数据的抽象结构体,包含目标设备、端点信息、数据缓冲区等关键字段。文章详细解析了URB的生命周期(分配、填充、提交、回调、释放)、四种传输类型(控制、批量、中断、等时)及其应用场景,并提供了鼠标设备的中断传输示例代码。最后强调了URB使用注意事项,包括DMA缓冲区分配、错误处理和资源释放等。URB作为USB驱动与内核通信的桥梁,是构建稳定USB驱动程序的基础。

m0_49476241的博客 915

LWN:6.14合并窗口第一部分!

关注了就能看到更多这么棒的文章哦~The first part of the 6.14 merge windowBy Jonathan CorbetJanuary 23, 2025Gemini-1.5-flash translationhttps://lwn.net/Articles/1005651/截至本文撰写之时,已有超过 4300 个非合并变更集 (non-merge changeset) ...

Linux News搬运工 963

5、Raspberry Pi CPU架构与多线程编程详解

本文详细介绍了Raspberry Pi的CPU架构(包括ARMv6Z、ARMv7-A和ARMv8-A),通过/proc/cpuinfo解析硬件信息,并深入探讨了多线程编程的核心技术。内容涵盖pthread库的使用,如线程创建、属性设置、等待与分离、线程同步机制(互斥锁),以及实际应用场景如多媒体处理和网络服务。同时强调了线程安全、死锁预防和资源管理等关键注意事项,帮助开发者在Raspberry Pi上构建高效稳定的多线程应用。

sre5engineer的博客 93

LWN:5.14 开发周期数据分析!

关注了就能看到更多这么棒的文章哦~Some 5.14 development statisticsBy Jonathan CorbetAugust 30, 2021DeepL assist...

Linux News搬运工 331

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

LWN:6.14 合并窗口的后续更新!

关注了就能看到更多这么棒的文章哦~The rest of the 6.14 merge windowBy Jonathan CorbetFebruary 3, 2025Gemini-1.5-flash translationhttps://lwn.net/Articles/1006378/在Linus Torvalds 发布 6.14-rc1并关闭了此开发周期的合并窗口时,大约有 9,307 ...

Linux News搬运工 898

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LWN:5.10合并窗口的后半部分!

关注了就能看到更多这么棒的文章哦~The rest of the 5.10 merge windowBy Jonathan CorbetOctober 26, 2020https://l...

Linux News搬运工 461

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LWN: 6.0 合并周期,第二部分!

关注了就能看到更多这么棒的文章哦~6.0 Merge window, part 2By Jonathan CorbetAugust 15, 2022DeepL assisted translationhttps://lwn.net/Articles/904032/Linus Torvalds 在 8 月 14 日发布了 6.0-rc1,关闭了合并窗口,时间跟预计的一样。那时已经有 13,543 个...

Linux News搬运工 492

LWN:5.8内核合并窗口第二部分!

关注了就能看到更多这么棒的文章哦~5.8 Merge window, part 2ByJonathan CorbetJune 14, 2020原文来自:https://lwn.net/...

Linux News搬运工 573

LWN:6.8 合并窗口的剩余内容!

关注了就能看到更多这么棒的文章哦~The rest of the 6.8 merge windowBy Jonathan CorbetJanuary 22, 2024Gemini translationhttps://lwn.net/Articles/958178/尽管 Linus Torvalds 在一周的大部分时间里都处于停电状态,但他还是成功地发布了 6.8-rc1 并按时关闭 6.8 合并...

Linux News搬运工 289

LWN:5.17 中的struct slab!

关注了就能看到更多这么棒的文章哦~Struct slab comes to 5.17By Jonathan CorbetJanuary 14, 2022DeepL assisted tra...

Linux News搬运工 455

LWN:Intel CPU的间接跳转保护功能!

关注了就能看到更多这么棒的文章哦~Indirect branch tracking for Intel CPUsBy Jonathan CorbetMarch 31, 2022DeepL assisted translationhttps://lwn.net/Articles/889475/"Control-flow integrity"(CFI)是一套旨在防止攻击者改动...

Linux News搬运工 1285

LWN:6.3 开发数据分析!

关注了就能看到更多这么棒的文章哦~Development statistics for 6.3By Jonathan CorbetApril 24, 2023DeepL assisted translationhttps://lwn.net/Articles/929582/经过九个星期的开发周期之后,6.3 内核于 4 月 24 日发布了。跟之前所有的 mainline 版本一样,这是一个有很多改...

Linux News搬运工 1013

LWN:quotactl_path() 变成了 quotactl_fd()

关注了就能看到更多这么棒的文章哦~quotactl_path() becomes quotactl_fd()By Jonathan CorbetJune 14, 2021DeepL ass...

Linux News搬运工 307

LWN:5.19 合并窗口第一部分!

关注了就能看到更多这么棒的文章哦~5.19 Merge window, part 1By Jonathan CorbetMay 27, 2022DeepL assisted translationhttps://lwn.net/Articles/896140/在撰写本文时,针对 5.19 开发周期,已经有将近 4600 个 non-merge changeset 合入 m...

Linux News搬运工 543

LWN:5.7内核合并窗口第一部分!

关注了就能看到更多这么棒的文章哦~5.7 Merge window part 1ByJonathan CorbetApril 3, 2020原文来自:https://lwn.net/A...

Linux News搬运工 666

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 223
上一篇: LWN: 5.14 中支持了core scheduling!
下一篇: LWN:Rust for Linux 的最新进展!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值