【问题标题】:system_call_after_swapgs, where is my code spending most of the time?system_call_after_swapgs,我的代码大部分时间都花在了哪里?
【发布时间】:2018-08-30 08:30:57
【问题描述】:

我正在尝试使用 intel Vtune 分析我的代码。查看函数调用堆栈时,看起来大部分时间都花在了一个名为 system_call_after_swapgs 的函数上。但是没有堆栈信息。我的问题是: system_call_after_swapgs 是什么?我怎么知道它是从哪里调用的?

【问题讨论】:

  • 它似乎是一个 Linux(内核?)系统功能。如果你实际上不使用 Linux,你可以删除我添加的标签。
  • 你对它在做什么有任何猜测吗?我的感觉是,由于负载不平衡,程序花费了大量时间等待线程完成。但是我看不到代码的哪一部分运行缓慢。
  • 我的猜测是一样的。我不知道任何细节。

标签: linux optimization fortran system-calls intel-vtune


【解决方案1】:

我还看到sysret_check 非常高。我敢打赌,如果您进行一般探索,然后扩展前端绑定/前端延迟,您会看到高百分比的分支重新引导。如果是这样,这可能是针对 Spectre 攻击的 u-code 补丁的性能副作用,即清除系统调用/返回用户模式时的 BTB。

如果此系统是气隙的,或者您有其他良好的保护措施来防止获得本地 shell 的攻击,您可以将 BIOS 恢复到不包含 u-code 补丁的 2018 之前的版本。

【讨论】:

  • 这条评论是我能找到的最接近 sysret_check IS 的评论。您能否扩展这个答案,也许可以参考?
猜你喜欢
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
相关资源
最近更新 更多