gpt4 book ai didi

linux - 在 Linux 内核中调用给定函数的上下文

转载 作者:IT王子 更新时间:2023-10-29 00:32:07 41 4
gpt4 key购买 nike

是否有一种直接的机制来识别给定函数是在中断上下文中调用还是从进程上下文中调用。这是问题的第一部分。第二部分是:如何同步 2 个进程,一个在中断上下文中,另一个在进程上下文中。如果我的理解是正确的,我们不能在中断上下文中为进程使用互斥锁,因为它不允许休眠。另一方面,如果我使用自旋锁,其他进程将使用 CPU 周期。同步这两个进程的最佳方法是什么。如果我的理解完全错误,请纠正我。

最佳答案

您可以使用 in_irq() 判断函数是否作为 IRQ 处理程序运行功能。但我认为使用它不是一个好习惯。您应该只从代码中看到您的函数在哪个上下文中运行。否则我会说你的代码设计不好。

至于同步机制——你是对的,你必须使用自旋锁,因为你需要在原子上下文中进行同步(例如中断)——在这里你没有太多选择。等待自旋锁时会浪费大量 CPU 周期也是正确的,因此您应该尽量减少处于锁定状态的代码量。

关于linux - 在 Linux 内核中调用给定函数的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29615556/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com