- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oprofile源码解读
oprofile代码分析-1??Oprofile由应用层和内核模块构成其中应用层有如下程序Opcontrol, oprofiled, opreport..内核由 kernel/arch/mips/oprofile和kernel/driver/oprofile构成。?Oprofile的原理?我们先来看oprofile内核模块。Kernel/driver/oprofile它是oprofile的框架,与体系结构无关,也是模块的起点buffer_sync:这个文件主要是把存储在每个CPU buffer中的采样,做一些处理后,存储在event buffer中,这个文件是模块的核心,也是分析的重点。cpu_buffer这个文件提供接口给CPU采样,在mips采到一次采样后,它必须把采样信息存储起来,于是调用这个文件的函数,就完成了采样的最原始信息的存储。event_buffer这个文件提供读写接口给用户层的demon程序oprofiled。在cpu_buffer的采样信息被buffer_sync转换后,存储在event_buffer中,然后等待着oprofiled读取。OprofOprofile内核模块的起始文件,它做的事情就是初始化。初始化mips的采样操作,初始化各个buffer等。oprofile_filesoprofilefs以上两个提供了各种文件供opcontrol进行操作,以便达到对采样进行配置。?oprofile_stats一些统计信息timer_int如果体系结构没有提供performance counter,那我们还是可以profile,这个时候我们借助于时钟中断,但它并没有performance counter那么精确了。?前者只是框架,但具体如何profile,它当然与体系结构有关,因为它需要用到cpu的performance count。在kernel/arch/mips/oprofile中Common.c这个文件提供了与kernel/driver/oprofile相联系的接口。op_model_mipsxx.c这个文件完成了具体的采样,它与具体体系结构相关,MIPS CPU也有很多类型,例如24K, 74K都使用这个文件。?1???????? 初始化代码很简单了这里会初始化几个文件接口,位于/dev/oprofile1???????? enable开始profile,它会调用体系层的start函数,然后开始采样2???????? dump强制执行wq_sync_buffer函数,使oprofiled醒来读数据。一般来说,event_buffer的数据量要达到buffer_watershed,才会唤醒oprofiled。3???????? buffer只读的,oprofiled正是从这个文件读event_buffer数据。4???????? buffer_sizeevent_buffer的大小5???????? buffer_watershedevent_buffer的门限值,大于这个值将唤醒oprofiled。6???????? cpu_buffer_sizecpu_buffer的大小7???????? cpu_type8???????? backtrace_depth没有用到,对于mips来说9???????? pointer_size只读的,对于32位系统来说,等于410???? 0,1此外,还会存在0,1,2,3等文件夹,这是用来配置performance counter,有多少个counter就有多少个文件夹.它的创建与体系结构有关。11???? enabled该counter是否使能12???? event该counter使用哪种事件13???? count该counter触发中断的门限14???? kernel是否采样内核15???? user是否采样用户层16???? exl是否采样EXL置位17???? unit_mask对于MIPS来说,没用用处。以上这些文件都由opcontrol来进行配置。?2 如何进行采样2.1 设置采样performance counter看MD00090-2B-MIPS32PRA-AFP-03.05 P180看MD00343-2B-24K-SUM-03.11 P196看MD00355-2B-24KPRG-PRG-04.63 P92?第一个文档是MIPS32的描述,第二,三个文档是对24k的描述。第三个文档包括对event的详细描述。?强调如下:1时钟中断和performance中断是同一个中断线,对于MIPS R2以后,可以通过CAUSE[PCI]来进行判断2 Control寄存器中的U,K等并不是对所有事件都有效的,比如说cycle, U,K并不生效。3 每个co
您可能关注的文档
- 2013年11月份考试专业能力部分真题及解析.docx
- 2013医学检验士考题.doc
- 2013年1月自考西方政治制度试题及答案.docx
- 2013年4月自考中国近现代史.doc
- 2013体育政策.docx
- 2013市中医院年终检查汇报2014年工作计划.doc
- 2012水务行业凭实力推进以合作共赢.docx
- 2013年7月淘宝电子商务运营专才考题及答案.docx
- 2013年7月全国高等教育自学考试资产评估试题及答案.docx
- 2013年Powerpoint2007中文演示文稿考试大纲(2013版).doc
- 《GB/T 12668.7202-2024调速电气传动系统 第7-202部分:电气传动系统的通用接口和使用规范 2型规范说明》.pdf
- 《GB/T 15692-2024制药机械 术语》.pdf
- GB/T 15692-2024制药机械 术语.pdf
- 中国国家标准 GB/T 15692-2024制药机械 术语.pdf
- GB/T 19633.1-2024最终灭菌医疗器械包装 第1部分:材料、无菌屏障系统和包装系统的要求.pdf
- 中国国家标准 GB/T 19633.1-2024最终灭菌医疗器械包装 第1部分:材料、无菌屏障系统和包装系统的要求.pdf
- 《GB/T 19633.1-2024最终灭菌医疗器械包装 第1部分:材料、无菌屏障系统和包装系统的要求》.pdf
- 《GB/T 30117.1-2024非相干光产品的光生物安全 第1部分:通用要求》.pdf
- 《GB/T 33348-2024高压直流输电用电压源换流器阀 电气试验》.pdf
- GB/T 33348-2024高压直流输电用电压源换流器阀 电气试验.pdf
文档评论(0)