19.3. trace-cmd の例

以下のコマンド例で、trace-cmd ユーティリティーを使用してカーネル機能をトレースする方法を示します。

  • myapp の実行中に、カーネル内で実行中の記録機能を有効にして開始します。

    # trace-cmd record -p function myapp

    これにより、myapp に無関係なタスクであっても、すべての CPU およびすべてのタスクの関数が記録されます。

  • 結果を表示します。

    # trace-cmd report
  • myapp の実行中に、sched で始まる関数のみを記録します。

    # trace-cmd record -p function -l 'sched*' myapp
  • すべての IRQ イベントを有効にします。

    # trace-cmd start -e irq
  • wakeup_rt トレーサーを起動します。

    # trace-cmd start -p wakeup_rt
  • 関数トレースを無効にしながら、preemptirqsoff トレーサーを起動します。

    # trace-cmd start -p preemptirqsoff -d
    注記

    RHEL 8 の trace-cmd は、function-trace ではなく ftrace_enabled を無効にします。trace-cmd start -p 機能を使用すると、ftrace を再度有効にできます。

  • trace-cmd が変更を開始する前の状態にシステムを戻します。

    # trace-cmd start -p nop

    trace-cmd を使用した後に debugfs ファイルシステムを使用する場合は、システムを再起動したかどうかに関係なく、これが重要になります。

  • 1 つのトレースポイントをトレースします。

    # trace-cmd record -e sched_wakeup ls /bin
  • トレースを停止します。

    # trace-cmd record stop