我在 Linux-4.19.188 + patch-4.19.188-rt77 中运行测试,启用了 PREEMPT_RT_FULL 和 NO_HZ_FULL。
我在一个独立的 CPU 上放置了一个带有 SCHED_FIFO(优先级为 99)的无限循环。根据 NO_HZ_FULL 实现,预期的结果是在隔离的 CPU 中不会看到任何滴答声。
但是那个隔离 CPU 中的“本地 APCI 定时器中断”的数量随着 HZ 的增加而增加(在我的 Linux 中为每秒 250),这意味着激活了滴答声!
我在网上搜索了一下,发现 2018 年 9 月报告了一个类似的问题,https: //marc.info/?t=153534185000001&r=1&w=2 。从那时起,Linux 似乎就没有修复它。
问题随机发生并不总是存在。
我想知道是什么在那个隔离的 CPU 上设置了滴答计时器,我应该在哪里挖掘根本原因?