【问题标题】:Vtune report Outside any known moduleVtune 报告 在任何已知模块之外
【发布时间】:2013-04-11 00:14:54
【问题描述】:

我正在使用 Intel(R) VTune(TM) Amplifier XE 2013 Update 5 (build 274450) 进行我的 linux 应用程序热点收集,但报告说“[在任何已知模块之外]”消耗大部分时间,所以我想了解有关未知模块的更多信息。

当我阅读 vtune Amplifier 的发行说明时,它说“热点列表可能包含”在内核早于 2.6.20 (200233501) 的系统上的“任何已知模块之外””,但我的 linux 内核是“2.6. 32",有什么想法吗?

【问题讨论】:

    标签: intel-vtune


    【解决方案1】:

    检查您的程序是否没有即时生成代码(即不是 JIT-ing)。您可能还想将分组切换到“模块/代码位置/调用堆栈”,并查看 VTune 无法将哪些虚拟地址映射到任何已知模块。

    【讨论】:

    • 导致问题的并非总是 JIT。我的系统工作得非常好,直到我更新了我的 Ubuntu 设置(Java 没有改变),我遇到了他的问题。
    【解决方案2】:

    我过去也遇到过这个问题,如果您不知道为什么会这样,那会非常令人沮丧。

    2 周前,我安装了 Ubuntu 13.04 和 vtune update 14,我欣喜若狂,因为我可以(再次)看到我的代码中发生了什么。

    在我的 Ubuntu 上做了一些更新后,vtune 开始显示你的问题

    • 我安装了内核源..没有帮助..

    • 我重新安装了驱动程序,没有帮助。

    • 我重新安装了 intel vtune.. 没有帮助。

    然后我决定在 root 下运行,你知道什么.. 它可以工作;不再有“在任何已知模块之外”。我切换回我的普通用户,它停止工作。我切换回我的根目录,它可以工作。所以也许是某种访问问题。

    也许你可以试试这个。

    【讨论】:

      【解决方案3】:

      可能你有一些被 kptr_restrict 隐藏的内核地址,你可以查看“/proc/sys/kernel/kptr_restrict”的值:

      kptr_restrict = 0,内核地址提供无限制(推荐)。

      kptr_restict = 1,如果当前用户具有 CAP_SYSLOG 能力,则提供地址。

      kptr_restrict = 2,不管当前用户有什么权限,内核地址都是隐藏的。

      您可以在运行跟踪之前使用此选项:

      sysctl -w kernel.kptr_restrict=0

      更多详情:https://software.intel.com/en-us/vtune-help-enabling-linux-kernel-analysis

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2014-12-04
        • 2012-10-01
        • 2018-12-15
        • 2017-09-13
        • 2011-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-21
        相关资源
        最近更新 更多