如何在dyntick模式下卸载1HZ的tick?

Shu*_*Cui 5 linux kernel

似乎在内核 4.19 和 4.20 中,剩余的 1Hz 滴答可以在 dyntick 模式下卸载到工作队列。但究竟要实现这一目标吗?

我尝试通过执行以下操作来实现这一目标:

  1. 设置 CONFIG_NOHZ_FULL=y、CONFIG_RCU_FAST_NO_HZ=y、CONFIG_RCU_NOCB_CPU=y

  2. 设置启动参数: GRUB_CMDLINE_LINUX_DEFAULT=“安静启动 isolcpus=nohz,domain,1-3 nohz=on nohz_full=1-3 rcu_nocbs=1-3 intel_pstate=disable irqaffinity=0 nmi_watchdog=0 nosoftlockup

  3. 修改 /sys/devices/virtual/workqueue/cpumask 为 1
  4. systemctl 停止 irqbalance
  5. 在 BIOS 中关闭 Turbo 模式、P 状态和超线程

但是,在 CPU 1 或 2 上运行任务时,1HZ 滴答声仍然存在。

我还使用https://kernel.googlesource.com/pub/scm/linux/kernel/git/frederic/dynticks-testing/中给出的工具测试了 dyntick 模式。它输出很多:

tick_stop: success=0 dependency=SCHED.
Run Code Online (Sandbox Code Playgroud)

为了卸载 1 HZ 滴答声,我错过了什么?