获取更多关于Xen执行的信息:xentrace、xentrace_format和xenalyze

在Xen进行测试或调优的时候,需要进行比较底层的细节分析(比如统计VMExit的频率、VMExit的类型、VMExit消耗了多少CPU时间),这时就可以使用xentrace这个工具了。
xentrace是在xen源代码中自带的一个工具,在“make tools”编译时就会默认生成。xentrace生成的数据是二进制的格式,人的肉眼不能直接读取,可以使用xentrace_format转换为凡人能够直接读取的信息,xentrace_format解析后的数据信息量一般也比较大,可能还需要自己编写解析工具来提取自己需要的数据。
使用xentrace/xentrace_format来分析HVM的VMExit的情况,可以有如下操作:

其中-e 0x81000 是指“TRC_HVM_ENTRYEXIT”这类event的trace信息,包括VMEntry和VMExit,关于其他各种event的代号是多少,可以参考文末的参考文档;-T 30表示trace执行时间为30s。
使用xentrace_format时,需要一个格式文件作为参数,一般可以选择xen源代码中的tools/xentrace/formats这个文件。
另外,这里我还有一个自己的脚本提取自己感兴趣的数据,得到结果示例如下:

对于各种VMExit类型,可以参考Intel SDM 3C 中的附录 Appendix C "VMX Basic Exit Reasons" 中的介绍。

xen社区中也做了一个解析xentrace数据的工具,叫做xenalyze(没有在xen源代码中,是offline维护着的一个repository),我就使用过一下,对其还不是很熟悉。
xenalyze的源代码可以从http://xenbits.xen.org/ext/xenalyze/下载(使用hg clone命令)。
在使用时,注意的是,xenalyze中用到了CPU的频率,需要根据自己CPU实际频率进行修改,否则计算出来每秒钟多少事件这样的信息就不准了。修改xenalyze.c文件中的“#define DEFAULT_CPU_HZ 2400000000LL”这一行(已经表示2.4GHz了)。

参考资料:
xentrace和xen_format:http://support.citrix.com/article/CTX121583
xentrace和xenalyze:http://blog.xen.org/index.php/2012/09/27/tracing-with-xentrace-and-xenalyze/
xenalyze的设计:http://www.slideshare.net/xen_com_mgr/5-xs-asia11gdunlapxenalyze

master

Stay hungry, stay foolish.

2 Comments

  1. 博主您好,请教个问题
    我在学习xen的调试技术,参考了
    http://zhigang.org/wiki/XenDebugging#send-debug-keys-to-xen-by-xm-debug-http://docs.huihoo.com/xen/summit/2012/aug27/7a-from-printk-to-qemu.pdf

    我想用gdb对hypervisor进行调试,
    现在用minicom连接串口输出正常,输入3次ctrl+a后也正确显示了
    (XEN) *** Serial input -> Xen (type 'CTRL-a' three times to switch input to DOM0)

    但是按照zhigang介绍的,输入ctrl+\ 却没有进入kdb
    按照summit2012介绍的,输入%,确实显示
    (XEN) '%' pressed -> trapping into debugger

    但是在gdb中,设置
    (gdb)target remote /dev/ttyS2
    gdb的响应却是:
    Remote debugging using /dev/ttyS2
    Ignoring packet error, continuing...
    warning: unrecognized item "SBFTBLt" in "qSupported" response
    Ignoring packet error, continuing...
    等等
    Malformed response to offset query, timeout

    请问您尝试过类似的方法吗,知道是怎么回事吗
    我调试的版本是xen-4.1.2
    先谢过啦

发表评论

邮箱地址不会被公开。 必填项已用*标注

*