Linux 5.19 将“让生活变得悲惨”以减缓表现不佳的拆分锁应用程序
admin
2023-07-31 17:37:44
0

早在 2020 年,从事 Linux 内核工作的英特尔工程师就添加了拆分锁检测,以在原子操作跨越多个缓存行并需要全局总线锁以实现原子性时发出警告。警告现在被认为不够有用,因此前进的意图是通过减慢性能来让这些行为不端的用户空间应用程序“让生活变得悲惨”,希望应用程序开发人员更好地处理他们的代码。

虽然默认行为是为滥用拆分锁的用户空间应用程序提供警告,但之前的补丁确实允许杀死应用程序. 与单个高速缓存行中的原子操作相比,拆分锁至少需要多 1,000 个周期。拆分锁会导致其他 CPU 被阻塞,并且其他用于控制的总线代理也被阻塞 – 影响整体系统性能。

此 Linux 拆分锁检测依赖于现代 x86_64 CPU 功能,以便能够在遇到拆分锁时生成对齐检查异常。可以使用“split_lock_detect=”内核参数调整现有内核行为。 英特尔工程师 Tony Luck 提议让事情变得更具侵略性,并通过补丁

“让分体式储物柜的生活变得悲惨”今年早些时候发布。现在排队等待 Linux 5.19 的补丁正试图大大降低有问题的应用程序的速度,以便开发人员有望解决这个问题。新的“顺序”模式强制对用户空间拆分锁进行顺序访问。反过来,此模式还确保在这些条件下整体系统性能更好。

因此,一个新的选项可以“以一种令人讨厌的方式减慢它”。

此更改的主要原因是为系统上运行的其他应用程序提供更好的服务质量。内部测试表明,即使有许多进程拆分锁,系统其余部分的性能也更加敏感。

为现有的“split_lock_detect”引导参数“sequential”添加一个新选项。在此模式下,启用拆分锁定检测。当应用程序尝试执行总线锁时,#AC 处理程序。

1)阻塞(中断)直到它可以得到信号量
如果被中断,就返回。假设该信号将终止任务,或直接执行远离试图获得总线锁定的指令。
2) 禁用当前核心的拆分锁检测
3) 安排一个工作队列以在 2 个 jiffies 内重新启用拆分锁检测
4) 返回

这种“让生活变得悲惨”的变化是作为 Linux 5.19 的 x86 拆分锁更新 提交的。

image.php_-57image.php_-57

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
在 iCloud 上关闭“查找... 如果您是 Apple 的长期用户,您肯定会遇到过 Find My 应用程序,它本机安装在 iPhon...
iPhone 屏幕上有亮绿色斑... iPhone 是市场上最稳定的智能手机之一,这主要归功于专为它们设计的 iOS 操作系统。然而,他们...
farols1.1.501.0... faro ls 1.1.501.0(64bit)可以卸载,是一款无需连接外部PC机或笔记本计算机即可...
balenaEtcher烧录后... balenaEtcher烧录后u盘或者内存卡无法识别不能使用的解决方法想要恢复原来的方法,使用win...