Linux学习小标兵,专注Linux资讯分享,技术文章分享
分类: LINUX
2022-04-12 22:51:05
导读 | AMD提交了一个补丁,可以AMD CPU从Zen 1和英特尔Core 2之后的CPU ,让内核在系统不使用CPU空闲驱动时使用MWAIT指令而不是HALT,原因是BIOS禁用了C状态或者驱动不是内核构建的一部分。反过来,这可以使受影响系统的退出延迟提高21%左右。 |
监控器等待 “MWAIT “指令可用于电源管理目的,提示处理器在等待事件或MONITOR存储操作完成时可以进入一个指定的目标C状态。MWAIT的使用是为了比HALT指令更有效。
英特尔酷睿2和更高版本的处理器在进入C1状态时已经倾向于使用MWAIT而不是HALT指令,这也是Linux内核中的行为。AMD CPU虽然在这个代码路径中继续使用HALT,但在不使用CPU空闲驱动(由于被禁用或不属于内核构建的一部分)或C状态被系统BIOS禁用的情况下,所以承认有点小众。
本周AMD提出的补丁现在对所有AMD Zen处理器的Zen 1和更新的处理器以及Hygon Dhyana也切换到使用MWAIT。在AMD Zen 3上(旧版Zen也有类似的结果),发现使用MWAIT而不是HALT,退出延迟会降低21%左右。大多数用户会发现自己使用的是CPU空闲驱动,因此不受这个补丁的影响,但对于那些不使用的用户来说,这个变化可能是有益的。使用HALT的高延迟显然是在实际测试/使用中出现的,当时是作为 “客户性能观察 “的一部分,在一个未指定的网络程序中探索数据包丢失。