如何调用make kernel module调用或禁用中断?

时间:2015-06-19 13:23:31

标签: c linux linux-kernel kernel kernel-module

我在单独的核心上运行低延迟服务器/客户端音频应用程序。 (通过cpuset) 没有检测到xruns,我怀疑调度程序会中断我的关键例程。由于在用户空间中无法禁用中断,我的想法是创建内核模块并为local_irq_disable()/ local_irq_enable()编写包装函数。安全不是问题。正在使用具有完全可抢占内核的rt Linux。

  1. 我认为纳米睡眠功能在没有中断的情况下也无法工作?
  2. 什么是更优雅的方式来禁用调度程序但保持 计时器在运行?
  3. 如何从用户空间调用这些包装函数?
  4. 编辑:SMP亲缘关系是此处的关键字:SMP IRQ Affinity

1 个答案:

答案 0 :(得分:0)

我建议首先尝试使用lttng和tracecompass来跟踪内核调度,以了解系统上发生了什么,以及其他进程,资源锁定或中断是否会强制您的进程退出cpu。

你真的需要这个过程在没有cpu时间间隔的情况下运行吗?如果不是:你需要以微秒或毫秒为单位的响应时间吗?