gpt4 book ai didi

linux bottom-half 抢占

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:55 27 4
gpt4 key购买 nike

据我所知,在 Linux 中有许多机制可以实现 bottom-halves:

  • 软中断
  • 任务
  • 工作队列
  • 线程中断 ( request_threaded_irq() )

它们在可调度性方面都有自己的特点。我无法从文献中得到的是它们的先发制人可能性。什么样的任务可以抢占各种不同的bottom-half实现?

更具体地说,我对线程 irq 和工作队列很感兴趣。有多少人可以确信,一旦安排好线程中断或工作队列在完成之前不会被抢占,即一次性运行?哪些类型的任务可以抢占它们?

例如,Robert Love 的 Linux Kernel Development 指出只有 top-halves 可以抢占 softirqs,所以我会说 softirqs 在大多数情况下一次完成(或者如果它们被抢占,那只是很短的时间).

我的目标是定性评估同一线程 irq 或工作队列中两个操作之间的时间。特别是 i2c 数据读取和系统时钟读取之间的时间。

谢谢。

最佳答案

Worqueue 和线程 IRQ 处理程序在进程上下文中运行并且可以被抢占。它们何时可以被抢占实际上取决于您的内核配置(CONFIG_PREEMPTCONFIG_PREEMPT_VOLUNTARY)以及您在处理线程上设置的实时优先级。

您不能假设您的工作队列或您的下半部分不会被中断。这意味着如果您与上半部分共享资源,则必须使用适当的锁定。

关于linux bottom-half 抢占,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19748528/

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