OPROFILE无法获得性能数据

我正在使用OPROFILE来收集一些性能数据。 但我陷入困境。

这是我的shell:

~ # rm -f /root/.oprofile/daemonrc ~ # opcontrol --setup --no-vmlinux ~ # opcontrol --init ~ # opcontrol --reset ~ # opcontrol --start ~ # opcontrol --status Daemon running: pid 14909 Separate options: none vmlinux file: none Image filter: none Call-graph depth: 0 ~ # opcontrol --shutdown Stopping profiling. Killing daemon. ~ # opreport error: no sample files found: profile specification too strict? ~ # tree /var/lib/oprofile/ /var/lib/oprofile/ ├── abi ├── complete_dump ├── jitdump ├── opd_pipe └── samples ├── current │ └── stats │ ├── bt_lost_no_mapping │ ├── cpu0 │ │ ├── backtrace_aborted │ │ ├── sample_invalid_eip │ │ ├── sample_lost_overflow │ │ └── sample_received │ ├── event_lost_overflow │ ├── multiplex_counter │ ├── sample_lost_no_mapping │ └── sample_lost_no_mm └── oprofiled.log 5 directories, 13 files ~ # dmesg |grep oprofile oprofile: using NMI interrupt. ~ # uname -a Linux localhost.localdomain 2.6.32-220.4.2.el6.x86_64 #1 SMP Tue Feb 14 04:00:16 GMT 2012 x86_64 x86_64 x86_64 GNU/Linux ~ # cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU E5620 @ 2.40GHz stepping : 2 cpu MHz : 2400.085 cache size : 12288 KB fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm ida arat epb dts bogomips : 4800.17 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: 

某些CPU类型不提供使用硬件性能计数器所需的hardware support 。 在这些机器上,OProfile回退到使用timer interrupt for profiling ,回到使用实时时钟中断来收集样本。

你可以使用timer = 1模块参数强制使用定时器中断。如果OProfile是作为内核模块构建的,那么你必须使用modprobe命令传递’timer = 1’参数。 在执行’opcontrol –init’之前执行此操作或编辑opcontrol命令调用modprobe以传递’timer = 1’参数

modprobe oprofile timer=1

然后继续您的分析过程

我在基于RHEL6的发行版上遇到了类似的问题。 在某些时候,我开始使用perf ,我可以获得探查器报告和带注释的源代码。