"perf Trace -p"を実行するかどうか`すべてのスレッドを追跡しますか?

strace -f -p <PID>マルチスレッドプロセスのすべてのスレッドでシステムコールを追跡します。 (これもフォークに従い、-b execveこの問題を解決するオプションがあります)。

perf trace -p <PID>プロセスのすべてのスレッドが追跡されますか?それそうだ同様に--tidオプションもあるからです。

gnome-shellシステムのすべてのPIDを追跡したようです。しかし同時に私は走ったperf trace -a。フィルタリングされた2つのトレースを使用しました-e fsync。グローバルトレースは、gnome-shellfsyncを呼び出した操作を示しています。しかし、PID固有のトレースはそうではありません。

グローバルトレースでは、ジョブはgnome-shell/9822またはとして識別されますpool/9822。呼び出しの呼び出しスタックfsync(私が使用したもの--call-graph=dwarf)は非常にスレッドのように見えます。下部の2つの項目はと__GI___cloneですstart_thread (/usr/lib64/libpthread-2.27.so)。の現在の出力でスレッドが見つかりませんps -eLF。これと名前を見るとpool一時的なワーカースレッドであると疑われます。perf trace -p <PID>新しく作成されたスレッドをフォローしないのではないでしょうか。

バージョン: perf-4.19.3-200.fc28.x86_64

ベストアンサー1

おすすめ記事