Linux kernel 什么原因导致apic_定时器_中断()?

Linux kernel 什么原因导致apic_定时器_中断()?,linux-kernel,centos7,interrupt,interrupt-handling,Linux Kernel,Centos7,Interrupt,Interrupt Handling,我在CentOS 7上(内核3.10.0-1062.1.2.el7.x86_64) 由于某些原因,我的紧循环应用程序(在一个隔离的内核上,它位于nohz\u fulllist)上)大约每1秒有一次apic\u timer\u中断。这不是本地计时器中断 我的虚拟应用程序: #include <cstdio> #include <cstdlib> #include <ctime> #include <cstdint> int main(int arg

我在CentOS 7上(内核3.10.0-1062.1.2.el7.x86_64)

由于某些原因,我的紧循环应用程序(在一个隔离的内核上,它位于
nohz\u full
list)上)大约每1秒有一次
apic\u timer\u中断。这不是本地计时器中断

我的虚拟应用程序:

#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <cstdint>

int main(int argc, char** argv) {
        srand(time(nullptr));
        int32_t i = 0;
        while (i != rand()) i = rand() * -1;
        printf("%d", i);
}
dmesg
显示核心正在使用动态勾号:

[Sun Mar 15 23:11:30 2020] NO_HZ: Full dynticks CPUs: 2-11.

有什么想法吗?

是的,这是调度程序IIUC的同步标记。稍后我将找到讨论此问题的QA链接。也许这有助于@0andriy,谢谢分享此链接。实际上,我在
nohz\u full
上有一个内核(应用程序绑定到),我已经用
dmesg
确认了该内核确实是动态勾选的,并且我还确认了该内核上的
/proc/sched\u debug
中只有一个可运行任务。因此,在我的例子中,它与tick生成的中断无关。是的,它是调度程序IIUC的同步tick。稍后我将找到讨论此问题的QA链接。也许这有助于@0andriy,谢谢分享此链接。实际上,我在
nohz\u full
上有一个内核(应用程序绑定到),我已经用
dmesg
确认了该内核确实是动态勾选的,并且我还确认了该内核上的
/proc/sched\u debug
中只有一个可运行任务。因此,在我的例子中,它与勾号生成的中断无关。
[Sun Mar 15 23:11:30 2020] NO_HZ: Full dynticks CPUs: 2-11.