ftrace

カーネル空間でのファイル権限/アクセスの決定はいつ(そしてどのように)行われますか?
ftrace

カーネル空間でのファイル権限/アクセスの決定はいつ(そしてどのように)行われますか?

私はLinux権限がどのように機能するか(既存のUnix DAC権限と表示方法、プロセス関連のセキュリティコンテキスト(資格情報構造、機能など)、LSMフックなど)について比較的よく理解しています。 (E)UID / E(GID)などへのリンク私が理解しておらず、カーネルコードで見つけるのが難しいのは、ftrace(pass trace-cmd)を使用してこれらのチェックが実際にカーネル空間で(おそらく)実行されるときです。どのポイント実際にアクセス決定が下されます。 詳細な説明: /dirルートchmodが所有するディレクトリがありますr-x------(...

Admin

LinuxでFtraceを使用して予約遅延を取得するには?
ftrace

LinuxでFtraceを使用して予約遅延を取得するには?

ftraceはアクティブですが、.ftraceはアクティブではない組み込みLinux(kernel-5.10.24)システムを開発していますperf。 システムでトレースを確認した結果、次の情報が得られました。 # ls /sys/kernel/tracing/events/sched/ -l total 0 -rw-r--r-- 1 root root 0 Jan 1 1970 enable -rw-r--r-- 1 root root 0 Jan 1 1970 filte...

Admin

ftraceとblktraceトラッキングポイントの違いは何ですか?
ftrace

ftraceとblktraceトラッキングポイントの違いは何ですか?

たとえば、基本的にIO完了トラッキングポイントで/sys/kernel/debug/tracing/events/block/block_bio_completeあるandがあるとします。これを使用すると、次の行を表示できます。block_rq_completeftracesudo blktrace -d /dev/sdb1 -o - | blkparse -i - 8,33 1 3 0.001086286 0 C RA 1158137880 + 8 [0] ...

Admin

カスタムプローブ機能で追跡されたイベントのCPU番号を取得するには?
ftrace

カスタムプローブ機能で追跡されたイベントのCPU番号を取得するには?

イベント追跡用のプローブ機能を登録するためにカーネルモジュールを使用しています。たとえば、 sched_kthread_stop イベントを追跡するプローブ関数は次のとおりです。 void handle_kthread_stop(void *data, struct task_struct *t) 以下を使って登録します。 tracepoint_probe_register() これでトレースバッファの実際のトレースは次のようになります。 bash-9002 [000] d..5 2145.303974: sched_wakeup: com...

Admin

マルチトラッキングイベントリーダー
ftrace

マルチトラッキングイベントリーダー

質問 Linuxでイベントを追跡するためのトレースパイプラインは同時リーダーを許可しますか? コンテキスト RASいくつかのベンチマークの実行中にサブシステムからトレース情報を取得しようとしています。このサブシステムはトレースイベントを使用してハードウェアエラーイベントを報告します。 イベントの取得に使用するツールRASデーモンツール。私はこのツールがtracing_pipe_raw各CPUでFIFOを購読していることを知っています。また、ベンチマークはパフォーマンスイベントを購読します。私は信じる、また同じチャンネルを介して広告します。 tra...

Admin

/proc/pid/stat の Linux ジョブの状態は、スケジュールされたイベントの Ftrace 出力とは異なります。
ftrace

/proc/pid/stat の Linux ジョブの状態は、スケジュールされたイベントの Ftrace 出力とは異なります。

タスクがD / S / R状態(無中断/中断可能/実行中)に入る点を理解するために、コードスニペットの流れを追跡しようとしています。各状態が何を意味するのか理解していますが、練習を実行すると混乱した結果が現れ、これまではその理由がわかりませんでした。 私が実行しているコードスニペット: void foo() { pthread_setname_np(pthread_self(), "lock_func/1"); while(quit == false) { for(int64_t idx=0; idx<1...

Admin

debugfsで制御ftraceを作成する方法は?
ftrace

debugfsで制御ftraceを作成する方法は?

Ftrace はデバッグ fs ファイルを操作して制御されます。しかし、これはどのように可能ですか?カーネルはこのファイルの書き込みをどのように知って必要な作業を開始しますか?たとえば、tracing_onに1を書き込むと、カーネルはトレースをオンにします。特別なファイル構造やdebugfsのカーネルサブスクリプションの変更に関連していますか?それとも明らかなものが欠けていますか? ...

Admin

システムコールイベントトレース出力形式をftraceに変更
ftrace

システムコールイベントトレース出力形式をftraceに変更

sys_enter_openat システムコールに対して ftrace イベントトレースをイネーブルにしました。 events/syscalls/sys_enter_openat/format で提供される対応する出力形式は次のとおりです。 print fmt: "dfd: 0x%08lx, filename: 0x%08lx, flags: 0x%08lx, mode: 0x%08lx", ((unsigned long)(REC->dfd)), ((unsigned long)(REC->filename)), ((unsigned lon...

Admin

ftraceのTrace_statフォルダにある関数フォルダ
ftrace

ftraceのTrace_statフォルダにある関数フォルダ

私はftraceを学んでいますが、次のリンクで "function_profile_enabled"ファイルを使用して関数プロファイリングを有効にできることを学びました。 mount -t tracefs nodev /sys/kernel/tracing cd /sys/kernel/tracing echo 1 > function_profile_enabled echo "function" > current_tracer https://www.kernel.org/doc/html/v4.18/trace/ftrace.htm...

Admin

function_trace カーネルモジュール割り込みに ftrace を使う方法は?
ftrace

function_trace カーネルモジュール割り込みに ftrace を使う方法は?

ftraceカーネルデバッグオプションが有効になっているDebianカーネルを実行する2つのコア(1.2 GHz)を持つBanana Pi Armデバイスがあります。カーネルモジュールの機能にかかる時間を確認したいと思います。この関数の形は static irq_handler_t vtgpio_irq_handler(unsigned int irq, void *dev_id, struct pt_regs *regs); モジュールをロードした後、デバッグファイルシステムに名前がフィルタで公開されていることがわかります。すべての機能を追跡していま...

Admin

カーネル/ユーザー空間実行トレースのタイムラインビューを表示するツール
ftrace

カーネル/ユーザー空間実行トレースのタイムラインビューを表示するツール

ftraceツールを使用しました。トレースコマンドスケジューリング追跡ポイントとシステムコール追跡ポイントを記録するために使用されます。以下を使用して視覚的に検査できます。カーネルシャークグラフィカルユーザーインターフェースプログラム。下のスクリーンショットに示すように、コアごとのタイムラインとタスク別のタイムラインを表示します。 割り込みが発生した時期、スケジューラが呼び出される時期、システムコールが行われた時期、返される時期を確認できます。ただし、システムコールを行う場合、kernelshark はユーザー空間で実行されるタスクとカーネル空間で実行...

Admin

PMUと追跡ポイント
ftrace

PMUと追跡ポイント

追跡点生成メカニズムに関する情報を探しています。このトピックで始めましょうperf_eventsリストのカーネルPMUイベントは何ですか?そしてこのブログブレンデンレッグトレースポイントがアクティブになったときに呼び出されるカーネルコードの一部のマクロであることはわかっていますが、トレースポイントがPMUにどのように接続されるか(両方のリンクで述べたように)少し混乱しています。 ...

Admin

ftraceを使用したマルチコアプラットフォームの特定のPIDの機能分析の実行
ftrace

ftraceを使用したマルチコアプラットフォームの特定のPIDの機能分析の実行

上記のように、ftraceを使用してfunction_profile_enabledに基づいて関数プロファイリングを実行しようとしています。ここ。同じリンクで述べたように、set_ftrace_pidを使用して特定のPIDへの関数呼び出しのみをキャプチャしたいと思います。ただし、PIDを設定してfunction_profile_enabledを実行すると、すべてのCPUで関数呼び出しがキャプチャされます。したがって、/sys/kernel/debug/tracing/trace_stat/function* で不要な CPU をフィルタリングすることは、コン...

Admin