2

我有一个 kthread,它在多核 CPU 的一个核心上单独运行。此 kthread 禁用该内核的所有 IRQ,尽可能快地运行循环并在 TSC 的帮助下测量最大循环持续时间。整个 ACPI 的东西都被禁用(没有频率缩放,没有省电等)。

我的问题是,最大循环持续时间显然取决于 gpu。

  1. 当系统正常使用时(有点办公室、互联网和编程的东西/不是很忙),那么最大循环持续时间约为 5 us :-(
  2. 相同的情况,但 CPU 压力过大(其他三个内核 100% 忙)导致最大循环持续时间约为 1 us :-|
  3. 但是当 GPU 切换到空闲模式(关闭屏幕)时,最大循环持续时间会下降到小于 300 ns :-)

这是为什么?我如何影响这种行为?我以为CPU和RAM是直接连接的。我认识到,对于第一种情况,在带有外部显卡的系统上,最大循环持续时间会变得更好。对于第二种和第三种情况,我看不出有什么不同。我还测试了 AMD 和 Intel 系统但没有成功 - 总是一样的:-(

我对第二种情况很好。但是是否有可能在不给 CPU 额外压力的情况下实现这一目标?

提前谢谢了!

比利

4

0 回答 0