Linux内核模块定时器中断频率?

Linux内核模块定时器中断频率?,linux,linux-kernel,arm,kernel,raspberry-pi3,Linux,Linux Kernel,Arm,Kernel,Raspberry Pi3,我只是在评估树莓圆周率的可能性,因此有一个(可能是愚蠢的)问题,只是为了理解我所想的是否可能 我想将Pi的GPIOs与一些额外的硬件一起使用,并对其进行一些调试。为此,我需要一个相当快的计时器。具有>1GHz时钟和可用硬件定时器的SoC完全能够提供相关的定时器频率 但是:我想在Linux系统中使用Pi,在内核模块中使用定时器中断。所以我的问题是:是否有可能设置一个内核内部定时器,例如2MHz?内核能够做到这一点吗?或者其中一个硬件定时器是免费提供的,并且可以用于此作业吗?请cat/proc/ti

我只是在评估树莓圆周率的可能性,因此有一个(可能是愚蠢的)问题,只是为了理解我所想的是否可能

我想将Pi的GPIOs与一些额外的硬件一起使用,并对其进行一些调试。为此,我需要一个相当快的计时器。具有>1GHz时钟和可用硬件定时器的SoC完全能够提供相关的定时器频率


但是:我想在Linux系统中使用Pi,在内核模块中使用定时器中断。所以我的问题是:是否有可能设置一个内核内部定时器,例如2MHz?内核能够做到这一点吗?或者其中一个硬件定时器是免费提供的,并且可以用于此作业吗?

cat/proc/timer\u list
。此虚拟文件列出了硬件上的所有可用频率。根据,最大速率为1000Hz或0.001MHz,但根据文件的不同,您可能可以提高计时器速度。另请参见此处,以获取加速延迟的解决方案@Penn。该解决方案列出了一些(未使用的)时钟/计时器,范围为几纳秒,因此这将是合适的。但是,它们可以在内核模块之外定期触发中断序列例程吗?在我的系统上,仅调度程序计时器中断就导致4us延迟(通过
perf record-e irq:softirq\u entry-e irq:softirq\u exit
测量。但不确定其中有多少是由“perf”引起的)。我怀疑linux在Pi上是否有500ns的延迟。我会运行一个循环,并定期检查CPU周期计数器,以查看500ns的运行时间。但是,您可以尝试使用实时内核,或者使用HZ=秒数(而不是ns)的内核构建Johannes Schaub这听起来是个好主意。但是:这个永久性循环不会使整个内核/系统停滞吗?或者可以强制一个内核模块以独占方式在CPU的一个特定内核上运行吗?我知道,使用isolcpu内核参数可以避免内核的所有负载。。。