只是想运行kvm_service_time.stp

只是想运行一下kvm_service_time.stp,提示这个错误:

semantic error: while resolving probe point: identifier 'kernel' at ./kvm_service_time.stp:25:7 source: probe kernel.trace("kvm_exit")

探针kernel.trace("kvm_exit")不存在,运行命令:stap -vl 'kernel.trace("*")'。发现确实没有kvm_exit。现在面临两个选择:寻找systemtap,kernel.trace的原理,看看如何获得kernel的trace信息。另一个选择:直接进入内核查看kvm_exit。我决定选择后者。

在kvm_service_time.stp中,我发现了头文件:vmx.h。里面定义了exit reason的类型。这个应该是关键,运行命令:find /usr -name 'vmx.h'。获得如下信息:

/usr/include/x86_64-linux-gnu/asm/vmx.h

在内核源码中运行命令:grep -nr 'include <asm/vmx.h>' ./。获得如下信息:

./tools/arch/x86/include/uapi/asm/kvm_perf.h:5:#include

./tools/perf/arch/x86/util/kvm-stat.c:3:#include

./arch/x86/include/uapi/asm/kvm_perf.h:5:#include

./arch/x86/include/asm/virtext.h:20:#include

./arch/x86/kvm/vmx.c:42:#include  

./arch/x86/kvm/mmu.c:47:#include

./arch/x86/kvm/trace.h:5:#include

arch/x86/kvm/trace.h看起来像我要的东西。kvm trace的用法

为什么对trace这么感兴趣,因为trace其实就是探针(具体请看“工作中什么能力最重要”)。这个也许就是理解原理的一条捷径!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • make menuconfig过程解析作者 codercjg 在 28 九月 2015, 5:27 下午 make...
    codercjg阅读 4,673评论 0 1
  • 前言 随着云计算技术与服务的发展和进步,越来越多的客户选择将业务部署到云端。但由于引入了虚拟化层,在业务部署过程中...
    UCloud云计算阅读 5,289评论 0 2
  • 性能调优工具如 perf,Oprofile 等的基本原理都是对被监测对象进行采样,最简单的情形是根据 tick 中...
    abeb6ca9bb86阅读 13,660评论 2 15
  • 今天是育婴师培训的第一天,为我们授课的是柏馨教育的苏曼老师,老师很优秀很专业,讲的知识也是我特别感兴趣的,可是我...
    日光倾城_625c阅读 1,345评论 0 0
  • 以前很是迷信微信里面的塔罗,星盘,八字的大神。后来,久病成医,自己开始研究琢磨,梅花易数也好,八字也好,到现在的...
    凤筱紫霄阅读 1,098评论 0 0