gpt4 book ai didi

linux-kernel - _spin_unlock_irqrestore() 在我的 kvm 中有非常高的采样率,为什么?

转载 作者:行者123 更新时间:2023-12-04 23:57:57 24 4
gpt4 key购买 nike

我在 KVM 虚拟机中运行 SPECJbb 基准测试。它显示仓库 2 和仓库 3 之间的吞吐量急剧下降(它们之间的区别只是增加了并发任务)

然后我在我的 guest 虚拟机中使用 perf。这表明 _spin_unlock_irqrestore 具有非常高的采样率。

事件:31K 周期

  • 74.89% [内核] [k] _spin_unlock_irqrestore
  • 7.36% perf-1968.map [.] 0x7f84b913e064
  • 6.82% [内核] [k] __do_softirq
  • 6.39% [内核] [k] handle_IRQ_event

  • ...

    似乎只有 7.36% 的 cpu 时间运行我的 Java 程序。为什么_spin_unlock_irqrestore 的采样率这么高?它有什么作用?

    最佳答案

    来自 perf 的不良报告, 不是 _spin_unlock_irqrestore 消耗的周期.

    当 IRQ 被禁用时,不会处理 perf 的中断。相反,它们会在重新启用中断时进行处理。当 perf 的中断处理程序查看指令指针以查看正在运行的代码时,它会找到启用中断的函数 - 通常是 _spin_unlock_irqrestore .

    所以你所知道的是,这些周期被禁用中断的代码消耗,并使用 _spin_unlock_irqrestore 启用它们。 .

    如果你能得到 perf 来使用 NMI(不可屏蔽中断),它就可以解决这个问题。
    我知道可以通过更改 makefile 使用 oprofile(perf 的前身)来完成,但不知道 perf。

    关于linux-kernel - _spin_unlock_irqrestore() 在我的 kvm 中有非常高的采样率,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14703328/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com