在Android上ftrace?

时间:2012-02-17 02:38:04

标签: android profiling

我一直试图让ftrace在Android上运行,但无济于事。我正在使用内核3.08的ICS。 以下是我遵循的步骤:

  • 使用了menuconfig并启用了KernelHacking-> Tracers下的所有选项。生成的最终.config启用了所有ftrace选项。
  • 使用生成的zImage创建新系统和启动映像。
  • 如果我尝试mount -t debugfs nodev / sys / kernel / debug,我会收到一条消息“mount:Device or resource busy”。我猜它已经装好了。我尝试卸载并重新安装它,但这对我没有任何作用。
  • 现在在adb shell中我已经可以看到/ sys / kernel / debug已经创建了。但是,如果我查看available_tracers,我只能看到blk和nop。
  • 现在,如果我运行输出跟踪文件,这就是我得到的:

tracer:nop

       TASK-PID    CPU#    TIMESTAMP  FUNCTION
          | |       |          |         |
 rb_producer-15    [000]   606.337706: ring_buffer_producer_thread: Starting  ring buffer hammer
 rb_producer-15    [000]   616.264577: ring_buffer_producer_thread: End ring buffer hammer
 rb_producer-15    [000]   616.264606: ring_buffer_producer_thread: RunningConsumer at nice: 19
 rb_producer-15    [000]   616.264609: ring_buffer_producer_thread: RunningProducer at nice: 19
 rb_producer-15    [000]   616.264612: ring_buffer_producer_thread: WARNING!!! This test is running at lowest priority.
 rb_producer-15    [000]   616.264614: ring_buffer_producer_thread: Time:  9932418 (usecs)
 rb_producer-15    [000]   616.264616: ring_buffer_producer_thread: Overruns: 0
 rb_producer-15    [000]   616.264619: ring_buffer_producer_thread: Read:  10514159  (by pages)
 rb_producer-15    [000]   616.264621: ring_buffer_producer_thread: Entries:  3491
 rb_producer-15    [000]   616.264623: ring_buffer_producer_thread: Total:  10517650
 rb_producer-15    [000]   616.264625: ring_buffer_producer_thread: Missed:  0
 rb_producer-15    [000]   616.264626: ring_buffer_producer_thread: Hit:  10517650
 rb_producer-15    [000]   616.264629: ring_buffer_producer_thread: Entriesper millisec: 1058
 rb_producer-15    [000]   616.264630: ring_buffer_producer_thread: 945 ns per entry
 rb_producer-15    [000]   616.264633: ring_buffer_producer_thread: Sleeping for 10 secs
 rb_producer-15    [000]   626.261167: ring_buffer_producer_thread: Starting ring buffer hammer

如何启用其他跟踪选项,如功能?

这不是很困难,特别是当我读到有关在Android上使用过ftrace的人时。我必须在这里找到一些东西。

任何帮助/建议都将受到高度赞赏。

谢谢!

-Kanav

2 个答案:

答案 0 :(得分:2)

不要启用RING_BUFFER_BENCHMARK。这是用于测试环形缓冲区的调试选项。您的输出显示它已启用并浪费了大量CPU。

答案 1 :(得分:0)

啊,明白了。忘了做一个herring_defconfig。还仅启用了功能跟踪器而不是所有功能跟踪器。立即行动。