Linux 6.13 准备就绪 为代理执行打补丁

站长云网 2024-10-19 5iter.com 站长云网

多年来,Linux内核一直在酝酿"代理执行"(ProxyExecution)这一概念,通过利用任务调度上下文及其执行上下文中的信息来实现优先级继承。虽然ProxyExecution补丁本身尚未排到上游合并的队列中,但一些预备补丁看起来会在即将到来的Linux6.13合并窗口中出现。

Linux代理执行功能在早期的补丁中被描述为:

"ProxyExecution是一种实现优先级继承的方法,其基础是区分任务的调度器上下文(就任务何时运行做出调度决策所需的信息,如调度器类和优先级)和执行上下文(实际运行任务所需的信息,如CPU亲和性)。启用代理执行后,阻塞在互斥任务上的任务p1会保留在运行队列中,但其"阻塞"状态和阻塞的互斥任务会被记录下来。如果p1被选择在阻塞状态下运行,则锁所有者p2可以"代表"它运行,并继承p1的调度上下文。

在实践中,可能会出现一些更复杂的情况:互斥体所有者本身可能被另一个互斥体阻塞,也可能处于休眠状态、在不同的CPU上运行、正在CPU之间迁移等。"

Linux6.13可能合并的准备工作是此补丁系列,在引入代理执行优先级继承之前需要进行更改。Google的JohnStultz在该补丁信息中评论道:

"Iwantedtore-send(again)v12ofthepreparatorypatchesforProxyExecution-anapproachforageneralizedformofpriorityinheritance.在此,我再次只提交早期/准备性修改供审核,希望我们能推进这些更简单的补丁,然后迭代推进代理执行系列中更有趣的补丁。"

截至本周,这些准备性修改已合并到tip/tip.

在即将到来的Linux6.13合并窗口之前,这些预处理补丁已经合并到TIP代码中,如果没有任何最后出现的问题或LinusTorvalds提出的批评意见,这些补丁应该会在那个时候被上传到上游。经过多年的讨论,希望在Linux内核中主推实际的代理执行支持的时间不会太长。

责任编辑:站长云网