Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

SystemTap タップセットリファレンス

Red Hat Enterprise Linux 7

SystemTap スクリプトの一般的な tapset 定義

Red Hat Enterprise Linux Documentation

Vladimír Slávik

Red Hat Customer Content Services

Robert Krátký

Red Hat Customer Content Services

William Cohen

Red Hat Software Engineering

Don Domingo

Red Hat Customer Content Services

Jacquelynn East

Red Hat Customer Content Services

概要

tapset リファレンスガイドは』、ユーザーが SystemTap スクリプトに適用できる最も一般的な tapset 定義について説明しています。

第1章 はじめに

SystemTap はフリーソフトウェア (GPL) インフラストラクチャーを提供し、実行中の Linux システムに関する情報の収集を簡素化します。これにより、パフォーマンスまたは機能的な問題の診断が容易になります。SystemTap により、開発者はデータの収集に必要になる可能性のある未知で破壊的なインストルメント、再コンパイル、インストール、および再起動を行う必要がなくなります。
SystemTap では、ライブで実行中のカーネル用にインストルメンテーションを記述する簡単なコマンドラインインターフェースとスクリプト言語を利用できます。このインストルメンテーションは、tapset ライブラリーで提供されるプローブポイントと関数を使用します。
簡単に説明すると、tapset は、カーネルサブシステムに関する知識を他のスクリプトで使用できる事前記述されたプローブおよび関数にカプセル化するスクリプトです。tapsets は C プログラムのライブラリーに類似しています。これらのライブラリーは、カーネルエリアの基礎となる詳細を非表示にし、カーネルの管理および監視に必要な主な情報を公開します。これらは通常、カーネルの専門家によって開発されます。
tapset は高レベルなデータとサブシステムの状態遷移を公開します。多くの場合、優れた tapset の開発者であれば、SystemTap ユーザーがカーネルサブシステムの低レベルの詳細をほとんど認識していないと想定しています。そのため、tapset の開発者は、通常の SystemTap ユーザーが有用で便利な SystemTap スクリプトを記述するのに役立つ tapset を記述します。

1.1. 本ガイドの目的

本ガイドは、SystemTap の最も有用で一般的な tapset エントリーを取り上げることを目的としています。また、適切な tapset 開発やドキュメントに関するガイドラインも記載しています。本ガイドに含まれる tapset の定義は、各 tapset ファイルのコードの適切にフォーマットされたコメントから自動的に抽出されます。そのため、本ガイドの定義に対する改訂は、それぞれの tapset ファイルに直接適用する必要があります。

第2章 tapset 開発ガイドライン

本章では、適切な tapset ドキュメントのアップストリームのガイドラインについて説明します。また、本ガイドで適切に定義されるように tapset を適切に記述する方法も含まれています。

2.1. tapset の記述

適切な tapset を記述するための最初の手順は、サブジェクトエリアの単純なモデルを作成することです。たとえば、プロセスサブシステムのモデルには以下が含まれる場合があります。

キーデータ

  • プロセス ID
  • 親プロセス ID
  • プロセスグループ ID

状態遷移

  • forked (フォーク)
  • exec'd (実行)
  • running (実行中)
  • stopped (停止)
  • terminated (終了)

備考
上記のリストは両方とも例であり、完全なリストではありません。
サブシステムの知識を使用して、モデルの要素を公開するプローブポイント (関数エントリーおよび終了) を検索し、それらのポイントのプローブエイリアスを定義します。一部の状態遷移は複数の場所で発生する可能性があることに注意してください。この場合、エイリアスはプローブを複数の場所に配置できます。
たとえば、プロセス実行は、do_execve()または compat_do_execve () 関数のいずれかで発生する可能性があります。以下のエイリアスは、これらの関数の最初にプローブを挿入します。
probe kprocess.exec = kernel.function("do_execve"),
kernel.function("compat_do_execve") 
{probe body}
プローブを可能な限り安定したインターフェース (インターフェースレベルで変更できない関数など) に配置してみてください。これにより、カーネルの変更により tapset が破損する可能性が低くなります。カーネルのバージョンまたはアーキテクチャーの依存関係を回避できない場合は、プリプロセッサー条件を使用します (詳細は、stap(1) の man ページを参照してください)。
プローブポイントで利用可能なキーデータでプローブボディーを入力します。関数エントリープローブは、関数に指定されたエントリーパラメーターにアクセスできますが、終了プローブはエントリーパラメーターおよび戻り値にアクセスできます。適切な場合はデータを意味のある形式に変換します (バイトをキロバイト、状態値は文字列など)。
補助関数を使用して一部のデータにアクセスしたり、変換する必要がある場合があります。補助関数は多くの場合、埋め込み C を使用して SystemTap 言語では実行できないことを行います。たとえば、一部のコンテキスト内の構造フィールドへのアクセス、リンクされた一覧などです。他の tapset で定義された補助関数を使用するか、独自の tapset を作成することができます。
以下の例では、copy_process() は新規プロセスの task_struct へのポインターを返します。新しいプロセスのプロセス ID は task_pid()を呼び出して、タスク_ struct ポインターを渡すことで取得されます。この場合、補助関数は task.stp で定義されている埋め込み C 関数です。
probe kprocess.create = kernel.function("copy_process").return 
{
   task = $return
   new_pid = task_pid(task)
}
すべての関数にプローブを作成することは推奨されません。多くの SystemTap ユーザーには必要ありませんし、理解する必要もありません。簡単で高レベルな tapset を維持します。

2.2. tapset の要素

以下のセクションでは、tapset を作成する最も重要な側面を説明します。ここでのコンテンツの大半は、SystemTap の tapset のアップストリームライブラリーへの貢献を希望する開発者に適しています。

2.2.1. tapset ファイル

tapset ファイルは SystemTap GIT ディレクトリーのsrc/tapset/ に保存されます。ほとんどの tapset ファイルはこのレベルで保持されます。特定のアーキテクチャーまたはカーネルバージョンでのみ機能するコードがある場合は、tapset を適切なサブディレクトリーに配置することを選択できます。
インストールされた tapset は /usr/share/systemtap/tapset/ または /usr/local/share/systemtap/tapset にあります。
個人用の tapset はどこにでも保存できます。ただし、SystemTap がそれらを使用できるようにするには、-I tapset_directory を使用して stap の呼び出し時にそれらの場所を指定します。

2.2.2. Namespace

プローブエイリアス名はtapset_name.probe_name の形式にする必要があります。たとえば、シグナルを送信するプローブは signal.send になります
グローバルシンボル名(プローブ、関数、および変数)は tapset 全体で一意である必要があります。これは、複数の tapset を使用するスクリプトで名前空間の競合を回避するのに役立ちます。これを確認するには、グローバルシンボルで tapset 固有のプレフィックスを使用します。
内部シンボル名には、アンダースコア(_)のプレフィックスを付ける必要があります。

2.2.3. コメントおよびドキュメント

すべてのプローブおよび関数には、目的、提供するデータ、および実行するコンテキストを記述するコメントブロック (割り込み、プロセスなど) が含まれている必要があります。コードの読み取りでは、不明瞭なエリアでコメントを使用します。
特殊形式のコメントは、多くの tapset から自動的に抽出され、本ガイドに含まれています。これにより、tapset の貢献者が tapset を作成し、同じ場所で文書化するのに役立ちます。tapset の文書化に指定される書式は、以下のとおりです。
/**
 * probe tapset.name - Short summary of what the tapset does.
 * @argument: Explanation of argument.
 * @argument2: Explanation of argument2. Probes can have multiple arguments.
 *
 * Context:
 * A brief explanation of the tapset context. 
 * Note that the context should only be 1 paragraph short.
 *
 * Text that will appear under "Description."
 *
 * A new paragraph that will also appear under the heading "Description".
 *
 * Header:
 * A paragraph that will appear under the heading "Header".
 **/
以下に例を示します。
/**
 * probe vm.write_shared_copy- Page copy for shared page write.
 * @address: The address of the shared write.
 * @zero: Boolean indicating whether it is a zero page
 *         (can do a clear instead of a copy).
 *
 * Context:
 *  The process attempting the write.
 *
 *  Fires when a write to a shared page requires a page copy.  This is
 *  always preceded by a vm.shared_write.
 **/
自動生成されるSynopsis コンテンツをオーバーライドするには、以下を使用します。
 * Synopsis:
 * New Synopsis string
 *
以下に例を示します。
/**
 * probe signal.handle - Fires when the signal handler is invoked
 * @sig: The signal number that invoked the signal handler
 *
 * Synopsis:
 * <programlisting>static int handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
 * sigset_t *oldset, struct pt_regs * regs)</programlisting>
 */
エントリーの構文コンテンツを上書きしても必要なタグが自動的に作成されないため、この例では <programlisting> タグを使用することが推奨されます。
コメントの DocBook XML 出力を改善するため、コメントに以下の XML タグを使用することもできます。
  • command
  • emphasis
  • programlisting
  • 再マーク (タグ付けされた文字列が、ドキュメントの Publican ベータビルドに表示されます)

第3章 コンテキスト関数

コンテキスト関数では、イベントが発生した場所に関する追加情報を利用できます。これらの関数は、イベントが発生した場所へのバックトレースやプロセッサーの現在のレジスター値へのバックトレースなどの情報を提供します。

名前

function::addr — 現在のプローブポイントのアドレス。

概要

addr:long()

引数

なし

説明

現在のプローブのレジスター状態から命令ポインターを返します。ただし、すべてのプローブタイプがレジスタを持つわけではありませんが、ゼロが返されます。返されるアドレスは、symnamesymdata などの関数での使用に適しています。

名前

function::asmlinkage — 宣言関数に宣言的な関数をマーク

概要

asmlinkage()

引数

なし

説明

プローブされたカーネル関数がソースのように宣言されている場合は、*_arg 関数を使用して引数にアクセスする前にこの関数を呼び出します。

名前

function::backtrace — 現在のカーネルスタックの 16 進バックトレース。

概要

backtrace:string()

引数

なし

説明

この関数は、カーネルスタックのバックトレースである 16 進アドレスの文字列を返します。出力は文字列の最大長(MAXSTRINGLEN)に従って切り捨てられることがあります。ユーザー空間のバックトレースについては、ubacktrace を参照してください。

名前

function::caller — 呼び出し元関数の名前およびアドレスを返します。

概要

caller:string()

引数

なし

説明

この関数は呼び出し元関数のアドレスを返します。これは、sprintf(s 0xx, symname(caller_addr), caller_addr)の呼び出しと同じです。

名前

function::caller_addr — 呼び出し元アドレスを返します。

概要

caller_addr:long()

引数

なし

説明

この関数は呼び出し元関数のアドレスを返します。

名前

function::callers — カーネルスタックバックトレースの最初の n 要素を返します。

概要

callers:string(n:long)

引数

n
スタック内のサブディレクトリーに移動するレベルの数(トップレベルのカウントではありません)。n が -1 の場合は、スタック全体を出力します。

説明

この関数は、カーネルスタックのバックトレースから最初の n hex アドレスの文字列を返します。出力は文字列の最大長(MAXSTRINGLEN)に従って切り捨てられることがあります。

名前

function::cmdline_arg — コマンドライン引数の取得

概要

cmdline_arg:string(n:long)

引数

n
取得する引数(ゼロはプログラム自体)。

説明

現在のプロセスから要求された引数を返します。それほど多くの引数がない場合や、引数を取得できなかった場合は、空の文字列を返します。通常、引数 0 はコマンド自体です。

名前

function::cmdline_args — 現在のプロセスからコマンドライン引数を取得します。

概要

cmdline_args:string(n:long,m:long,delim:string)

引数

n
最初に取得する引数(ゼロはプログラム自体)。
m
最後に取得する引数 (-1 は n の後の引数すべて)。
delim
複数の引数を区切るために使用する文字列。

説明

現在のプロセスから、n から m までの引数を返します。n 未満の引数がある場合や、現在のプロセスから引数を取得できない場合は、空の文字列が返されます。m が n よりも小さい場合は、引数 n から始まるすべての引数が返されます。引数 0 は、通常コマンド自体です。

名前

function::cmdline_str — 現在のプロセスからすべてのコマンドライン引数を取得します。

概要

cmdline_str:string()

引数

なし

説明

現在のプロセスから、スペースで区切られたすべての引数を返します。引数を取得できない場合は空の文字列を返します。

名前

function::cpu — 現在の CPU 番号を返します。

概要

cpu:long()

引数

なし

説明

この関数は、現在の CPU 番号を返します。

名前

function::cpuid — 現在の CPU 番号を返します。

概要

cpuid:long()

引数

なし

説明

この関数は、現在の CPU 番号を返します。SystemTap 1.4 で非推奨となり、SystemTap 1.5 で廃止されました。

名前

function::egid — ターゲットプロセスの実効 GID を返します。

概要

egid:long()

引数

なし

説明

この関数は、ターゲットプロセスの実効 GID を返します。

名前

function::env_var — 現在のプロセスから環境変数を取得します。

概要

env_var:string(name:string)

引数

name
取得する環境変数の名前

説明

現在のプロセスの指定された環境値の内容を返します。変数が設定されていないと、空の文字列が返されます。

名前

function::euid — ターゲットプロセスの実効 UID を返します。

概要

euid:long()

引数

なし

説明

ターゲットプロセスの実効ユーザー ID を返します。

名前

function::execname — ターゲットプロセス(またはプロセスのグループ)の実行名を返します。

概要

execname:string()

引数

なし

説明

ターゲットプロセス (またはプロセスのグループ) の実行名を返します。

名前

function::fastcall — 関数の宣言が fastcall とマークします。

概要

fastcall()

引数

なし

説明

プローブされたカーネル関数が、ソースで fastcall と宣言されている場合には、*_arg 関数を使用して引数にアクセスする前にこの関数を呼び出します。

名前

function::gid — ターゲットプロセスのグループ ID を返します。

概要

gid:long()

引数

なし

説明

この関数は、ターゲットプロセスのグループ ID を返します。

名前

function::int_arg — return function argument as signed int

概要

int_arg:long(n:long)

引数

n
返す引数のインデックス

説明

署名された int(つまり 32 ビットの整数マークを 64 ビット)として n の値を返します。

名前

function::is_myproc — ユーザー独自のプロセスで現在のプローブポイントが発生したかどうかを判断します。

概要

is_myproc:long()

引数

なし

説明

ユーザー独自のプロセスで現在のプローブポイントが発生した場合、この関数は 1 を返します。

名前

function::is_return — 現在のプローブコンテキストが return プローブであるかどうか

概要

is_return:long()

引数

なし

説明

現在のプローブコンテキストが return プローブである場合は 1 を返し、それ以外の場合は 0 を返します。

名前

function::long_arg — return function argument as signed long

概要

long_arg:long(n:long)

引数

n
返す引数のインデックス

説明

引数 n の値を署名済み長として返します。長いビットが 32 ビットとなっているアーキテクチャーでは、値は 64 ビットに署名されます。

名前

function::longlong_arg — return function 引数を 64 ビット値として返します。

概要

longlong_arg:long(n:long)

引数

n
返す引数のインデックス

説明

64 ビット値として引数 n の値を返します。

名前

function::modname — アドレスでロードされたカーネルモジュール名を返します。

概要

modname:string(addr:long)

引数

addr
カーネルモジュール名にマップするアドレス

説明

既知の場合、指定のアドレスに関連付けられたモジュール名を返します。不明な場合にはエラーが発生します。アドレスがカーネルモジュールではなく、カーネル自体にない場合は、文字列 kernel を返します。

名前

function::module_name — 現在のスクリプトのモジュール名

概要

module_name:string()

引数

なし

説明

この関数は、stap モジュールの名前を返します。ランダムに生成される (stap_[0-9a-f]+_[0-9a-f]+) または stap -m <module_name> で設定されます。

名前

function::module_size — 現在のスクリプトのモジュールサイズ

概要

module_size:string()

引数

なし

説明

この関数は、stap モジュールのさまざまなセクションのサイズを返します。

名前

function::ns_egid — ユーザー namespace にあるように、ターゲットプロセスの実効 GID を返します。

概要

ns_egid:long()

引数

なし

説明

この関数は、ターゲットユーザーの namespace にあるように、ターゲットプロセスの実効 GID を返します。または、stap プロセス namespace を返します。

名前

function::ns_euid — ユーザーの namespace にあるように、ターゲットプロセスの実効ユーザー ID を返します。

概要

ns_euid:long()

引数

なし

説明

この関数は、ターゲットユーザーの namespace で表示されるようにターゲットプロセスの実効ユーザー ID を返します。または、stap プロセス namespace を返します。

名前

function::ns_gid — ユーザーの namespace にあるターゲットプロセスのグループ ID を返します。

概要

ns_gid:long()

引数

なし

説明

この関数は、ターゲットユーザーの namespace で表示されるターゲットプロセスのグループ ID を返します(ある場合)。または stap プロセス namespace を返します。

名前

function::ns_pgrp — 現在のプロセスのプロセスグループ ID を返します。これは、pid 名前空間に表示されます。

概要

ns_pgrp:long()

引数

なし

説明

この関数は、ターゲット pid namespace で表示されるプロセスグループ ID または stap プロセス namespace を返します。

名前

function::ns_pid — pid 名前空間にあるように、ターゲットプロセスの ID を返します。

概要

ns_pid:long()

引数

なし

説明

この関数は、ターゲット pid namespace で表示されるターゲットプロセスの ID を返します。

名前

function::ns_ppid — ターゲットプロセスの親プロセスのプロセス ID を pid namespace に記載のものとして返します。

概要

ns_ppid:long()

引数

なし

説明

この関数は、ターゲットプロセスの親プロセスのプロセス ID を返します。これは、ターゲット pid namespace で表示されるか、stap プロセスの名前空間を返します。

名前

function::ns_sid — 現在のプロセスのセッション ID を返します。これは、pid 名前空間に表示されます。

概要

ns_sid:long()

引数

なし

説明

プロセスの namespace 対応のセッション ID は、ターゲット pid namespace で表示されるセッションリーダーまたは stap プロセス名前空間です。Kernel 2.6.0 以降では、セッション ID は signal_struct に保存されます。

名前

function::ns_tid — pid 名前空間にあるように、ターゲットプロセスのスレッド ID を返します。

概要

ns_tid:long()

引数

なし

説明

この関数は、ターゲットプロセスのスレッド ID を、ターゲット pid namespace で表示されるか、stap プロセス名前空間を返します。

名前

function::ns_uid — ユーザー namespace で表示されるターゲットプロセスのユーザー ID を返します。

概要

ns_uid:long()

引数

なし

説明

この関数は、ターゲットユーザーの namespace で表示されるようにターゲットプロセスのユーザー ID を返します(ある場合)。または stap プロセス namespace を返します。

名前

function::pexecname — ターゲットプロセスの親プロセスの実行名を返します。

概要

pexecname:string()

引数

なし

説明

この関数は、ターゲットプロセスの親プロセスの実行名を返します。

名前

function::pgrp — 現在のプロセスのプロセスグループ ID を返します。

概要

pgrp:long()

引数

なし

説明

この関数は、現在のプロセスのプロセスグループ ID を返します。

名前

function::pid — ターゲットプロセスの ID を返します。

概要

pid:long()

引数

なし

説明

この関数はターゲットプロセスの ID を返します。

名前

function::pid2execname — 指定のプロセス識別子の名前

概要

pid2execname:string(pid:long)

引数

pid
プロセス識別子

説明

指定のプロセス ID の名前を返します。

名前

function::pid2task — 指定のプロセス識別子の task_struct

概要

pid2task:long(pid:long)

引数

pid
プロセス識別子

説明

指定のプロセス ID の task 構造を返します。

名前

function::pn — アクティブなプローブ名を返します。

概要

pn:string()

引数

なし

説明

この関数は、現在実行しているプローブハンドラーに関連するスクリプトレベルのプローブポイントを返します (ワイルドカードによる拡張を含む)。コンテキスト: 現在のプローブポイント。

名前

function::pnlabel — プローブ名から解析されたラベル名を返します。

概要

pnlabel:string()

引数

なし

説明

これにより、スクリプトレベルのプローブポイントから解析されたラベル名が返されます。この関数は、'.label' プローブポイントの本文(エイリアスなし)から直接呼び出される場合にのみ機能します。

コンテキスト

現在のプローブポイント。

名前

function::pointer_arg — ポインター値として関数引数を返す

概要

pointer_arg:long(n:long)

引数

n
返す引数のインデックス

説明

ulong_arg と同じ引数 n の未署名の値を返します。あらゆるタイプのポインターと共に使用できます。

名前

function::pp — アクティブなプローブポイントを返します。

概要

pp:string()

引数

なし

説明

この関数は、現在実行しているプローブハンドラーに関連する完全に解決されたプローブポイントを返します (エイリアスやワイルドカードによる拡張を含む)。コンテキスト: 現在のプローブポイント。

名前

function::ppfunc — 解析された関数名を返します。 pp

概要

ppfunc:string()

引数

なし

説明

現在の pp から関数名を返します。すべての pp に関数があるわけではなく、その場合は「」が返されます。

名前

function::ppid — ターゲットプロセスの親プロセスのプロセス ID を返します。

概要

ppid:long()

引数

なし

説明

この関数は、ターゲットプロセスの親プロセスのプロセス ID を返します。

名前

function::print_backtrace — カーネルスタックバックトレースの出力

概要

print_backtrace()

引数

なし

説明

この機能は print_stack(backtrace)と同等ですが、より深いスタックのネストがサポートされます。ユーザー空間のバックトレースについては、print_ubacktrace を参照してください。この関数は値を返しません。

名前

function::print_regs — レジスターダンプの出力

概要

print_regs()

引数

なし

説明

この関数はレジスターダンプを出力します。プローブポイントにレジスタがない場合は何も実行しません。

名前

function::print_stack — 文字列からカーネルスタックを出力します。

概要

print_stack(stk:string)

引数

stk
16 進アドレスのリストが含まれる文字列

説明

この関数は、backtrace への事前呼び出しの結果となることが仮定される指定の文字列でアドレスのシンボリックルックアップを実行します。
アドレスごとに 1 行出力し、アドレス、アドレスが含まれる関数の名前、およびその関数内での推定位置が含まれます。戻り値はありません。

注記

この機能の代わりに print_syms を使用することを推奨します。

名前

function::print_syms — 文字列からカーネルスタックを出力します。

概要

print_syms(callers:string)

引数

callers
16 進(カーネル)アドレスのリストが含まれる文字列

説明

この関数は、stackcallers および同様の関数への事前呼び出しの結果となることが仮定される指定の文字列でアドレスのシンボリックルックアップを実行します。
アドレスごとに 1 行出力します。アドレス、アドレスが含まれる関数の名前、および symdata で取得した関数内の推定位置が含まれます。何も返しません。

名前

function::print_ubacktrace — 現在のユーザー空間タスクのスタックバックトレースを出力します。

概要

print_ubacktrace()

引数

なし

説明

print_ustack(ubacktrace)と同等ですが、より深いスタックのネストがサポートされます。何も返しません。カーネルバックトレースについては、print_backtrace を参照してください。

注記

ユーザー空間アプリケーションと現在のスクリプトに記述されていない共有ライブラリーの (完全な) バックトレースを取得するには、stap を -d /path/to/exe-or-so で実行するか、または --ldd を追加して必要なすべてのアンワインドデータをロードします。

名前

function::print_ubacktrace_brief — 現在のユーザー空間タスクのスタックバックトレースを出力します。

概要

print_ubacktrace_brief()

引数

なし

説明

print_ubacktrace と同等ですが、各シンボルの出力は短くなります(名前とオフセットのみ、もしくはシンボルなしの 16 進数アドレスのみ)。

備考

ユーザー空間アプリケーションと現在のスクリプトに記述されていない共有ライブラリーの (完全な) バックトレースを取得するには、stap を -d /path/to/exe-or-so で実行するか、または --ldd を追加して必要なすべてのアンワインドデータをロードします。

名前

function::print_ustack — 文字列から現在のタスクのスタックを出力します。

概要

print_ustack(stk:string)

引数

stk
現在のタスクの 16 進アドレスのリストが含まれる文字列。

説明

現在のタスクの ubacktrace への事前呼び出しの結果となることが仮定される指定の文字列でアドレスのシンボリックルックアップを実行します。
アドレスごとに 1 行出力し、アドレス、アドレスが含まれる関数の名前、およびその関数内での推定位置が含まれます。戻り値はありません。

注記

この機能の代わりに print_usyms を使用することを推奨します。

名前

function::print_usyms — 文字列からユーザースタックを出力します。

概要

print_usyms(callers:string)

引数

callers
16 進(ユーザー)アドレスのリストが含まれる文字列

説明

この関数は、ustackucallers および同様の関数への事前呼び出しの結果となることが仮定される指定の文字列でアドレスのシンボリックルックアップを実行します。
アドレスごとに 1 行出力します。アドレス、アドレスが含まれる関数の名前、および usymdata で取得した関数内の推定位置が含まれます。何も返しません。

名前

function::probe_type — 現在のプローブの低レベルプローブハンドラータイプ。

概要

probe_type:string()

引数

なし

説明

現在のプローブポイントの低レベルプローブハンドラータイプを記述する短い文字列を返します。これは情報提供のみを目的としています。低レベルプローブハンドラーによると、現在のイベントに関する情報を提供したり、現在のイベントに関する情報を提供できません(たとえば、プローブハンドラーはユーザー空間でのみトリガーされ、関連するカーネルコンテキストはありません)。高レベルのプローブは、(systemtap のバージョンや使用されるカーネルによって)同じまたは異なる低レベルのプローブにマッピングされる可能性があります。

名前

function::probefunc — 既知の場合は、プローブポイントの関数名を返します。

概要

probefunc:string()

引数

なし

説明

この関数は、プローブのコンテキスト(プローブがユーザープローブまたはカーネルプローブの場合は)に応じて、現在のアドレスに基づいてプローブされる関数の名前を返します。addruaddr

注記

この関数は、SystemTap 2.0 とそれ以前のバージョン間で異なります。2.0 より前のバージョンでは、probefuncpp によって返されるプローブポイント文字列から関数名を取得し、現在のアドレスをフォールバックとして使用します。
代わりに ppfunc の使用を検討してください。

名前

function::probemod — プローブポイントのカーネルモジュール名を返します。

概要

probemod:string()

引数

なし

説明

この関数は、プローブポイントが含まれるカーネルモジュールの名前を返します(判明している場合)。

名前

function::pstrace — プロセスと pids のチェーンを init(1)に戻す

概要

pstrace:string(task:long)

引数

task
プロセスのタスク構造へのポインター

説明

この関数は、task から始まる各プロセスの execname および pid の文字列リストを返します。

名前

function::register — 名前付き CPU レジスターの署名済み値を返します。

概要

register:long(name:string)

引数

name
返すレジスターの名前

説明

現在のプローブポイントに到達するときに保存された名前付き CPU レジスターの値を返します。レジスターが 32 ビットの場合、これは 64 ビットに署名されます。
i386 アーキテクチャーの場合、以下の名前が認識されます(name1/name2 は name1 および name2 が同じレジスターの代替名であることを示します)。eax/ax、ebp/bp、ebx/bx、ecx/cx、edi/di、edi/di、edx/dx、eflags/flags, EIP/ip、esi/si、esp/sp、またはig_eax/orig_ax、xcs/cs、xds/ds、xes/es、xfs/fs、xs/ss.
x86_64 アーキテクチャーの場合は、次の名前が認識されます: 64 ビットレジスター: r8、r9、r10、r11、r12、r13、r14、r15、rax/ax、rbp/bp、rbx/bx、rcx/cx、rdi/di、rdx/dx、rip/ip、rsi/si、rsp/sp; 32 ビットレジスター: eax、ebp、ebx、ecx、edx、edi、edx、eip、esi、esp、flags/eflags、orig_eax; セグメントレジスター: xcs/cs、xss/ss。
powerpc の場合は、次の名前が認識されます: r0、r1、... r31、nip、msr、orig_gpr3、ctr、link、xer、ccr、softe、trap、dar、dsisr、result。
s390x の場合は、次の名前が認識されます: r0、r1、... r15、args、psw.mask、psw.addr、orig_gpr2、ilc、trap。
AArch64 の場合、次の名前が認識されます。x0、x1、... x30、fp、lr、sp、pc、および orig_x0。

名前

function::registers_valid — 現在のコンテキストの register および u_register の有効性を決定します。

概要

registers_valid:long()

引数

なし

説明

この関数は、registeru_register を現在のコンテキストで使用できる場合に 1 を返します。そうでない場合は 0 を返します。たとえば、registers_valid は begin または end プローブから呼び出されると 0 を返します。

名前

function::regparm — 関数をコンパイルするために使用される regparm 値を指定します。

概要

regparm(n:long)

引数

n
元の regparm 値

説明

*_arg 関数を使用して関数引数にアクセスする前に、この関数を n で呼び出すと、gcc -mregparm=n オプションを指定して関数が構築されました。
(i386 カーネルは \-mregparm=3 で構築されているため、systemtap はそのアーキテクチャーのカーネル機能のデフォルトとして regparm(3)と見なします)。 i386 および x86_64 でのみ有効です(32 ビットアプリケーションの場合)。他のアーキテクチャーでエラーを生成します。

名前

function::remote_id — リモート実行でのこのインスタンスのインデックス。

概要

remote_id:long()

引数

なし

説明

この関数は、stap --remote A --remote B ... run の swarm から、この特定のスクリプト実行の一意のインデックスである 0..N を返します。これは、stap --remote-prefix が出力する数値になります。この関数は、stap --remote でスクリプトを起動しなかった場合や、リモート staprun/stapsh のバージョン 1.7 より古い場合は -1 を返します。

名前

function::remote_uri — リモート実行内のこのインスタンスの名前。

概要

remote_uri:string()

引数

なし

説明

この関数は、stap --remote の実行のスイムから、この特定のスクリプト実行を呼び出すために使用されるリモートホストを返します。swarm 間で一意でない場合があります。関数は、stap --remote でスクリプトを起動しなかった場合には空の文字列を返します。

名前

function::s32_arg — 署名済み 32 ビット値として関数引数を返します。

概要

s32_arg:long(n:long)

引数

n
返す引数のインデックス

説明

署名された 32 ビットの値(int_arg)を返します。

名前

function::s64_arg — 署名済み 64 ビット値として関数引数を返します。

概要

s64_arg:long(n:long)

引数

n
返す引数のインデックス

説明

longlong_arg と同じように、署名済み 64 ビットの値 n を返します。

名前

function::sid — 現在のプロセスのセッション ID を返します。

概要

sid:long()

引数

なし

説明

プロセスのセッション ID は、セッションリーダーのプロセスグループ ID です。Kernel 2.6.0 以降では、セッション ID は signal_struct に格納されます。

名前

function::sprint_backtrace — スタックバックトレースを文字列として返します。

概要

sprint_backtrace:string()

引数

なし

説明

単純な (カーネル) バックトレースを返します。1 つのアドレスにつき 1 行。シンボル名 (シンボルが解決できない場合は 16 進アドレス) およびモジュール名 (見つかった場合) が含まれます。見つかった場合は、関数の開始点からのオフセットが含まれます。そうでなければ、オフセットはモジュールに追加されます (見つかった場合は括弧間)。文字列としてバックトレースを返します (改行文字で終端される各行)。返されたスタックは MAXSTRINGLEN に切り捨てられます。より完牢で優れたスタックを出力するには、print_backtrace を使用することに注意してください。Sprint_stack(backtrace)と同等ですが、より効率的です(16 進文字列と最終バックトレース文字列間の変換は不要)。

名前

function::sprint_stack — 文字列からカーネルアドレスのスタックを返します。

概要

sprint_stack:string(stk:string)

引数

stk
16 進(カーネル)アドレスのリストが含まれる文字列

説明

backtrace への事前呼び出しの結果となることが仮定される指定の文字列でアドレスのシンボリックルックアップを実行します。
指定の 16 進文字列から単純なバックトレースを返します。1 つのアドレスにつき 1 行。シンボル名 (シンボルが解決できない場合は 16 進アドレス) およびモジュール名 (見つかった場合) が含まれます。見つかった場合は、関数の開始点からのオフセットが含まれます。そうでなければ、オフセットはモジュールに追加されます (見つかった場合は括弧間)。文字列としてバックトレースを返します (改行文字で終端される各行)。返されたスタックは MAXSTRINGLEN に切り捨てられます。より完結され、優れたスタックを出力するには、print_stack を使用することに注意してください。

注記

この機能の代わりに sprint_syms を使用することを推奨します。

名前

function::sprint_syms — 文字列からカーネルアドレスのスタックを返します。

概要

sprint_syms(callers:string)

引数

callers
16 進(カーネル)アドレスのリストが含まれる文字列

説明

stackcallers および同様の関数への事前呼び出しの結果となることが仮定される指定の文字列でアドレスのシンボリックルックアップを実行します。
指定の 16 進文字列から単純なバックトレースを返します。1 つのアドレスにつき 1 行。symdata から取得したシンボル名(シンボルが解決できない場合には 16 進アドレス)とモジュール名(見つかった場合)が含まれます。見つかった場合は、関数の先頭からのオフセットが含まれます。そうでないと、オフセットがモジュールに追加されます(見つかった場合は括弧間)。文字列としてバックトレースを返します (改行文字で終端される各行)。返されたスタックは MAXSTRINGLEN に切り捨てられます。より完牢で優れたスタックを出力するには、print_syms を使用することに注意してください。

名前

function::sprint_ubacktrace — 現在のユーザー空間タスクのスタックバックトレースを文字列として返します。

概要

sprint_ubacktrace:string()

引数

なし

説明

現在のタスクの単純なバックトレースを返します。1 つのアドレスにつき 1 行。シンボル名 (シンボルが解決できない場合は 16 進アドレス) およびモジュール名 (見つかった場合) が含まれます。見つかった場合は、関数の開始点からのオフセットが含まれます。そうでなければ、オフセットはモジュールに追加されます (見つかった場合は括弧間)。文字列としてバックトレースを返します (改行文字で終端される各行)。返されたスタックは MAXSTRINGLEN に切り捨てられます。より完牢で優れたスタックを出力するには、print_ubacktrace を使用することに注意してください。Sprint_ustack(ubacktrace)と同等ですが、より効率的です(16 進文字列と最終バックトレース文字列間の変換は不要)。

備考

ユーザー空間アプリケーションと現在のスクリプトに記述されていない共有ライブラリーの (完全な) バックトレースを取得するには、stap を -d /path/to/exe-or-so で実行するか、または --ldd を追加して必要なすべてのアンワインドデータをロードします。

名前

function::sprint_ustack — 文字列から現在のタスクのスタックを返します。

概要

sprint_ustack:string(stk:string)

引数

stk
現在のタスクの 16 進アドレスのリストが含まれる文字列。

説明

現在のタスクの ubacktrace への事前呼び出しの結果となることが仮定される指定の文字列でアドレスのシンボリックルックアップを実行します。
指定の 16 進文字列から単純なバックトレースを返します。1 つのアドレスにつき 1 行。シンボル名 (シンボルが解決できない場合は 16 進アドレス) およびモジュール名 (見つかった場合) が含まれます。見つかった場合は、関数の開始点からのオフセットが含まれます。そうでなければ、オフセットはモジュールに追加されます (見つかった場合は括弧間)。文字列としてバックトレースを返します (改行文字で終端される各行)。返されたスタックは MAXSTRINGLEN に切り捨てられます。より完密で優れたスタックを出力するには、print_ustack を使用することに注意してください。

注記

この機能の代わりに sprint_usyms を使用することを推奨します。

名前

function::sprint_usyms — 文字列からユーザーアドレスのスタックを返します。

概要

sprint_usyms(callers:string)

引数

callers
16 進(ユーザー)アドレスのリストが含まれる文字列

説明

ustackucallers および同様の関数への事前呼び出しの結果となることが仮定される指定の文字列でアドレスのシンボリックルックアップを実行します。
指定の 16 進文字列から単純なバックトレースを返します。1 つのアドレスにつき 1 行。usymdata から取得したシンボル名(シンボルが解決できない場合には 16 進アドレス)とモジュール名(見つかった場合)が含まれます。見つかった場合は、関数の先頭からのオフセットが含まれます。そうでないと、オフセットがモジュールに追加されます(見つかった場合は括弧間)。文字列としてバックトレースを返します (改行文字で終端される各行)。返されたスタックは MAXSTRINGLEN に切り捨てられます。より完牢で優れたスタックを出力するには、print_usyms を使用することに注意してください。

名前

function::stack — カーネルスタックバックトレースの指定の深さでアドレスを返します。

概要

stack:long(n:long)

引数

n
スタック内のサブディレクトリーレベルの数。

説明

単純な(カーネル)バックトレースを実行し、指定の位置で要素を返します。バックトレース自体がキャッシュされ、バックトレース計算は stack が呼び出される回数、またはどの順序でも何が 1 回ずつ実行されるようにします。

名前

function::stack_size — カーネルスタックのサイズを返します。

概要

stack_size:long()

引数

なし

説明

この関数は、カーネルスタックのサイズを返します。

名前

function::stack_unused — 現在使用可能なカーネルスタックの容量を返します。

概要

stack_unused:long()

引数

なし

説明

この関数は、カーネルスタックの現在の空き容量 (バイト数) を判断します。

名前

function::stack_used — 使用されたカーネルスタックの容量を返します。

概要

stack_used:long()

引数

なし

説明

この関数は、カーネルスタックで現在使用されている容量 (バイト数) を判断します。

名前

function::stp_pid — stapio プロセスのプロセス ID

概要

stp_pid:long()

引数

なし

説明

この関数は、このスクリプトを起動した stapio プロセスのプロセス ID を返します。システム上では、その他の SystemTap スクリプトや stapio プロセスが実行されている可能性があります。

名前

function::symdata — アドレスのカーネルシンボルとモジュールオフセットを返します。

概要

symdata:string(addr:long)

引数

addr
変換するアドレス

説明

既知の場合、指定のアドレスに関連する (関数) シンボル名、シンボルの開始およびサイズ、およびモジュール名 (括弧間) を返します。シンボルが不明でもモジュールが分かっている場合は、モジュール内のオフセットとモジュールのサイズが追加されます。要素が不明な場合は省略され、シンボル名が不明な場合は、指定のアドレスの 16 進文字列を返します。

名前

function::symfile — 指定のアドレスのファイル名を返します。

概要

symfile:string(addr:long)

引数

addr
変換するアドレス。

説明

既知の場合、指定のアドレスのファイル名を返します。ファイル名が見つからない場合は、アドレスの 16 進文字列表現が返されます。

名前

function::symfileline — アドレスのファイル名と行数を返します。

概要

symfileline:string(addr:long)

引数

addr
変換するアドレス。

説明

既知の場合は、指定のアドレスのファイル名と(approximate)の行番号を返します。ファイル名または行番号が見つからない場合は、アドレスの 16 進文字列表現が返されます。

名前

function::symline — アドレスの行数を返します。

概要

symline:string(addr:long)

引数

addr
変換するアドレス。

説明

既知の場合は、指定のアドレスの(approximate)行番号を返します。行番号が見つからない場合は、アドレスの 16 進文字列表現が返されます。

名前

function::symname — 指定のアドレスに関連するカーネルシンボルを返します。

概要

symname:string(addr:long)

引数

addr
変換するアドレス

説明

既知の場合、指定のアドレスに関連する (関数) シンボル名を返します。分からない場合は、addr の 16 進文字列表記を返します。

名前

function::target — ターゲットプロセスのプロセス ID を返します。

概要

target:long()

引数

なし

説明

この関数は、ターゲットプロセスのプロセス ID を返します。これは、stap に対する -x PID または -c CMD コマンドラインオプションと併用する場合に便利です。その使用例として、特定のプロセスでフィルターするスクリプトを作成できます。
-x <pid> target は、-x で指定した pid を返します。
target -c で指定された実行したコマンドの pid を返します。

名前

function::task_ancestry — 指定タスクのancestry

概要

task_ancestry:string(task:long,with_time:long)

引数

task
task_struct pointer
with_time
プロセスの開始時間も出力するには、1 に設定します(ブート時間からのデルタとして)。

説明

given タスクの ancestry を、grandparent_process=>parent_process=>process の形式で返します

名前

function::task_backtrace — 任意タスクの 16 進バックトレース。

概要

task_backtrace:string(task:long)

引数

task
pointer to task_struct

説明

この関数は、特定タスクのスタックのバックトレースである 16 進アドレスの文字列を返します。出力は文字列の最大長に従って切り捨てられることがあります。SystemTap 1.6 で非推奨となりました。

名前

function::task_cpu — タスクのスケジュールされた CPU

概要

task_cpu:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクのスケジュールされた CPU を返します。

名前

function::task_current — 現在のタスクの現在の task_struct。

概要

task_current:long()

引数

なし

説明

この関数は、現在のプロセスを表す task_struct を返します。このアドレスは、タスク固有のデータを抽出するためにさまざまな task_*() 関数に渡すことができます。

名前

function::task_cwd_path — タスクの現在の作業ディレクトリーのパス構造ポインターを取得します。

概要

task_cwd_path:long(task:long)

引数

task
task_struct pointer.

名前

function::task_egid — タスクの実効グループ識別子

概要

task_egid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクの実効グループ ID を返します。

名前

function::task_euid — タスクの実効ユーザー識別子

概要

task_euid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクの実効ユーザー ID を返します。

名前

function::task_exe_file — タスク実行可能ファイルのファイル構造ポインターを取得します。

概要

task_exe_file:long(task:long)

引数

task
task_struct pointer.

名前

function::task_execname — タスクの名前

概要

task_execname:string(task:long)

引数

task
task_struct pointer

説明

指定タスクの名前を返します。

名前

function::task_fd_lookup — タスクの fd のファイル構造の取得

概要

task_fd_lookup:long(task:long,fd:long)

引数

task
task_struct ポインター
fd
ファイル記述子番号。

説明

タスクのファイル記述子のファイル構造ポインターを返します。

名前

function::task_gid — タスクのグループ識別子

概要

task_gid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクのグループ ID を返します。

名前

function::task_max_file_handles — タスクのオープンファイルの最大数

概要

task_max_file_handles:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクのファイルハンドラーの最大数を返します。

名前

function::task_nice — タスクの nice 値

概要

task_nice:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクの nice 値を返します。

名前

function::task_ns_egid — タスクの実効グループ識別子

概要

task_ns_egid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクの実効グループ ID を返します。

名前

function::task_ns_euid — タスクの実効ユーザー識別子

概要

task_ns_euid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクの実効ユーザー ID を返します。

名前

function::task_ns_gid — 名前空間で示されているタスクのグループ識別子

概要

task_ns_gid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定のユーザー namespace で表示される指定タスクのグループ ID を返します。

名前

function::task_ns_pid — タスクのプロセス識別子

概要

task_ns_pid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定の pid 名前空間に基づいて、指定タスクのプロセス ID を返します。

名前

function::task_ns_tid — 名前空間で示されているタスクのスレッド識別子

概要

task_ns_tid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、pid namespace にあるように、指定タスクのスレッド ID を返します。

名前

function::task_ns_uid — タスクのユーザー識別子

概要

task_ns_uid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクのユーザー ID を返します。

名前

function::task_open_file_handles — タスクのオープンファイルの数

概要

task_open_file_handles:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクのオープンファイルハンドラーの数を返します。

名前

function::task_parent — 親タスクの task_struct

概要

task_parent:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクの親 task_struct を返します。このアドレスは、タスク固有のデータを抽出するためにさまざまな task_*() 関数に渡すことができます。

名前

function::task_pid — タスクのプロセス識別子

概要

task_pid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクのプロセス ID を返します。

名前

function::task_prio — タスクの優先順位の値

概要

task_prio:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクの優先度の値を返します。

名前

function::task_state — タスクの状態

概要

task_state:long(task:long)

引数

task
task_struct pointer

説明

指定タスクの状態を返します(TASK_RUNNING(0)、TASK_INTERRUPTIBLE(1)、TASK_UNINTERRUPTIBLE(2)、TASK_STOPPED(4)、TASK_TRACED(8)、EXIT_ZOMBIE(16)、または EXIT_DEAD(32)のいずれか)。

名前

function::task_tid — タスクのスレッド識別子

概要

task_tid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクのスレッド ID を返します。

名前

function::task_uid — タスクのユーザー識別子

概要

task_uid:long(task:long)

引数

task
task_struct pointer

説明

この関数は、指定タスクのユーザー ID を返します。

名前

function::tid — ターゲットプロセスのスレッド ID を返します。

概要

tid:long()

引数

なし

説明

この関数はターゲットプロセスのスレッド ID を返します。

名前

function::u32_arg — 32 ビットなしの値として関数引数を返します。

概要

u32_arg:long(n:long)

引数

n
返す引数のインデックス

説明

uint_arg と同じように、引数 n の非署名の値を返します。

名前

function::u64_arg — 未署名の 64 ビット値として関数引数を返します。

概要

u64_arg:long(n:long)

引数

n
返す引数のインデックス

説明

ulong_arg と同じように、未署名の 64 ビットの引数 n を返します。

名前

function::u_register — 名前付き CPU レジスターの未署名の値を返します。

概要

u_register:long(name:string)

引数

name
返すレジスターの名前

説明

register(name)と同じですが、レジスタが 32 ビットを広ければ 64 ビットに拡張されます。

名前

function::uaddr — 現在実行しているタスクのユーザー空間アドレス

概要

uaddr:long()

引数

なし

説明

プローブの発生時に現在のタスクが存在していたユーザー空間のアドレスを返します。現在実行中のタスクがユーザー空間スレッドではない場合やアドレスが見つからない場合は、ゼロが返されます。現在のタスクが usymname または usymdata と組み合わされる場所を確認するために使用できます。多くのタスクは、カーネルを入力した VDSO にあります。

名前

function::ubacktrace — 現在のユーザー空間タスクスタックの 16 進バックトレース。

概要

ubacktrace:string()

引数

なし

説明

現在のタスクのスタックのバックトレースである 16 進アドレスの文字列を返します。出力は文字列の最大長に従って切り捨てられることがあります。現在のプローブポイントがユーザーのバックトレースを判断できない場合は空の文字列を返します。カーネルのトレースバックは、backtrace を参照してください。

注記

ユーザー空間アプリケーションと現在のスクリプトに記述されていない共有ライブラリーの (完全な) バックトレースを取得するには、stap を -d /path/to/exe-or-so で実行するか、または --ldd を追加して必要なすべてのアンワインドデータをロードします。

名前

function::ucallers — ユーザースタックバックトレースの最初の n 要素を返します。

概要

ucallers:string(n:long)

引数

n
スタック内のサブディレクトリーに移動するレベルの数(トップレベルのカウントではありません)。n が -1 の場合は、スタック全体を出力します。

説明

この関数は、ユーザースタックのバックトレースから最初の n hex アドレスの文字列を返します。出力は文字列の最大長(MAXSTRINGLEN)に従って切り捨てられることがあります。

注記

ユーザー空間アプリケーションと現在のスクリプトに記述されていない共有ライブラリーの (完全な) バックトレースを取得するには、stap を -d /path/to/exe-or-so で実行するか、または --ldd を追加して必要なすべてのアンワインドデータをロードします。

名前

function::uid — ターゲットプロセスのユーザー ID を返します。

概要

uid:long()

引数

なし

説明

この関数は、ターゲットプロセスのユーザー ID を返します。

名前

function::uint_arg — 未署名の int として関数引数を返します

概要

uint_arg:long(n:long)

引数

n
返す引数のインデックス

説明

引数 n の値を、非署名の int(つまり 32 ビット整数の 0 ビットから 64 ビット)として返します。

名前

function::ulong_arg — 未署名の関数引数を返します。

概要

ulong_arg:long(n:long)

引数

n
返す引数のインデックス

説明

引数 n の値を非署名で返します。長いビットが 32 ビットとなっているアーキテクチャーでは、値はゼロに 64 ビットに拡張されます。

名前

function::ulonglong_arg — return function 引数を 64 ビット値として返します。

概要

ulonglong_arg:long(n:long)

引数

n
返す引数のインデックス

説明

64 ビット値として引数 n の値を返します。(long_arg と同じ)

名前

function::umodname — ユーザーモジュールの(短)名を返します。

概要

umodname:string(addr:long)

引数

addr
ユーザー空間アドレス

説明

指定のアドレスが含まれる現在のタスクのユーザー空間モジュールの短縮名を返します。アドレスが(マッピングされている)モジュールにない場合はエラーを報告し、何らかの理由でモジュールが見つからない場合はエラーを報告します。

名前

function::user_mode — プローブポイントがユーザーモードで発生するかどうかを判断します。

概要

user_mode:long()

引数

なし

説明

プローブポイントがユーザーモードで発生した場合は 1 を返します。

名前

function::ustack — ユーザースタックバックトレースの指定の深さでアドレスを返します。

概要

ustack:long(n:long)

引数

n
スタック内のサブディレクトリーレベルの数。

説明

単純な(ユーザー空間)バックトレースを実行し、指定の位置で要素を返します。バックトレース自体がキャッシュされ、バックトレース計算は ustack が呼び出される回数、またはどの順序でも何が 1 回ずつ実行されるようにします。

名前

function::usymdata — アドレスのシンボルとモジュールオフセットを返します。

概要

usymdata:string(addr:long)

引数

addr
変換するアドレス。

説明

既知の場合は、現在のタスクの指定のアドレスに関連する (関数) シンボル名、開始からのオフセット、シンボルのサイズ、およびモジュール名 (括弧間) を返します。シンボルが不明でもモジュールが分かっている場合は、モジュール内のオフセットとモジュールのサイズが追加されます。要素が不明な場合は省略され、シンボル名が不明な場合は、指定のアドレスの 16 進文字列を返します。

名前

function::usymfile — 指定のアドレスのファイル名を返します。

概要

usymfile:string(addr:long)

引数

addr
変換するアドレス。

説明

既知の場合、指定のアドレスのファイル名を返します。ファイル名が見つからない場合は、アドレスの 16 進文字列表現が返されます。

名前

function::usymfileline — アドレスのファイル名と行数を返します。

概要

usymfileline:string(addr:long)

引数

addr
変換するアドレス。

説明

既知の場合は、指定のアドレスのファイル名と(approximate)の行番号を返します。ファイル名または行番号が見つからない場合は、アドレスの 16 進文字列表現が返されます。

名前

function::usymline — アドレスの行数を返します。

概要

usymline:string(addr:long)

引数

addr
変換するアドレス。

説明

既知の場合は、指定のアドレスの(approximate)行番号を返します。行番号が見つからない場合は、アドレスの 16 進文字列表現が返されます。

名前

function::usymname — 現在のタスクでのアドレスのシンボルを返します。

概要

usymname:string(addr:long)

引数

addr
変換するアドレス。

説明

既知の場合、指定のアドレスに関連する (関数) シンボル名を返します。分からない場合は、アドレスの 16 進文字列表記を返します。

第4章 タイムスタンプ関数

各タイムスタンプ関数は、関数が実行されるタイミングを示す値を返します。返された値は、イベント発生時、イベントの順序付けの指定、または 2 つのタイムスタンプ間で経過した時間の算出に使用することができます。

名前

function::HZ — Kernel HZ

概要

HZ:long()

引数

なし

説明

この関数は、カーネル HZ マクロの値を返します。これは、jiffies 値の増加率に対応します。

名前

function::cpu_clock_ms — 指定の CPU のクロック(ミリ秒)

概要

cpu_clock_ms:long(cpu:long)

引数

cpu
読み取るプロセッサーのクロック

説明

この関数は、指定の CPU のクロックでミリ秒数を返します。これは常に同じ CPU 上にあるモノトニックですが、CPU 間で差異が生じる場合があります(jiffy について)。

名前

function::cpu_clock_ns — 指定 CPU のクロックあたりのナノ秒数

概要

cpu_clock_ns:long(cpu:long)

引数

cpu
読み取るプロセッサーのクロック

説明

この関数は、指定の CPU のクロックでナノ秒数を返します。これは常に同じ CPU 上にあるモノトニックですが、CPU 間で差異が生じる場合があります(jiffy について)。

名前

function::cpu_clock_s — 指定の CPU のクロックにある秒数

概要

cpu_clock_s:long(cpu:long)

引数

cpu
読み取るプロセッサーのクロック

説明

この関数は、指定の CPU のクロックで秒数を返します。これは常に同じ CPU 上にあるモノトニックですが、CPU 間で差異が生じる場合があります(jiffy について)。

名前

function::cpu_clock_us — 指定の CPU のクロック上のマイクロ秒数

概要

cpu_clock_us:long(cpu:long)

引数

cpu
読み取るプロセッサーのクロック

説明

この関数は、指定の CPU クロック上のマイクロ秒数を返します。これは常に同じ CPU 上にあるモノトニックですが、CPU 間で差異が生じる場合があります(jiffy について)。

名前

function::delete_stopwatch — 既存の停止監視の削除

概要

delete_stopwatch(name:string)

引数

name
stopwatch name

説明

stopwatch name を削除します。

名前

function::get_cycles — プロセッサーサイクル数

概要

get_cycles:long()

引数

なし

説明

この関数はプロセッサーサイクルカウンター値を返します (ある場合)。それ以外の場合はゼロを返します。サイクルカウンターは、各プロセッサーでフリーランで、同期されていない状態です。そのため、異なるプロセッサーの get_cycles 関数の結果を比較することでは、イベントの順序を判断できません。

名前

function::gettimeofday_ms — UNIX エポックからの経過時間(ミリ秒)

概要

gettimeofday_ms:long()

引数

なし

説明

この関数は、UNIX エポックからの経過時間をミリ秒数で返します。

名前

function::gettimeofday_ns — UNIX エポックからの経過時間(ナノ秒)

概要

gettimeofday_ns:long()

引数

なし

説明

この関数は、UNIX エポックからの経過時間をナノ秒数で返します。

名前

function::gettimeofday_s — UNIX エポックからの経過時間(秒)

概要

gettimeofday_s:long()

引数

なし

説明

この関数は、UNIX エポックからの経過時間を秒数で返します。

名前

function::gettimeofday_us — UNIX エポックからの経過時間(マイクロ秒)

概要

gettimeofday_us:long()

引数

なし

説明

この関数は、UNIX エポックからの経過時間をマイクロ秒数で返します。

名前

function::jiffies — カーネル jiffies 数

概要

jiffies:long()

引数

なし

説明

この関数は、カーネル jiffies 変数の値を返します。この値はタイマー割り込みによって定期的に増分され、32 ビットまたは 64 ビットの境界をラップする可能性があります。HZ を参照してください。

名前

function::local_clock_ms — ローカル CPU のクロック数(ミリ秒単位)

概要

local_clock_ms:long()

引数

なし

説明

この関数は、ローカルの CPU のクロックでミリ秒数を返します。これは常に同じ CPU 上にあるモノトニックですが、CPU 間で差異が生じる場合があります(jiffy について)。

名前

function::local_clock_ns — ローカル CPU のクロック上でのナノ秒数

概要

local_clock_ns:long()

引数

なし

説明

この関数は、ローカルの CPU クロック上のナノ秒数を返します。これは常に同じ CPU 上にあるモノトニックですが、CPU 間で差異が生じる場合があります(jiffy について)。

名前

function::local_clock_s — ローカル CPU のクロックにある秒数

概要

local_clock_s:long()

引数

なし

説明

この関数は、ローカルの CPU のクロックにある秒数を返します。これは常に同じ CPU 上にあるモノトニックですが、CPU 間で差異が生じる場合があります(jiffy について)。

名前

function::local_clock_us — ローカル CPU のクロック上でのマイクロ秒数

概要

local_clock_us:long()

引数

なし

説明

この関数は、ローカルの CPU クロック上のマイクロ秒数を返します。これは常に同じ CPU 上にあるモノトニックですが、CPU 間で差異が生じる場合があります(jiffy について)。

名前

function::read_stopwatch_ms — stopwatch の時間(ミリ秒単位)を読み取ります。

概要

read_stopwatch_ms:long(name:string)

引数

name
stopwatch name

説明

stopwatch name の間隔をミリ秒単位で返します。name が存在しない場合には、stopwatch を作成します。

名前

function::read_stopwatch_ns — stopwatch のナノ秒で時間を読み取ります。

概要

read_stopwatch_ns:long(name:string)

引数

name
stopwatch name

説明

stopwatch name のナノ秒で時間をナノ秒で返します。name が存在しない場合には、stopwatch を作成します。

名前

function::read_stopwatch_s — stopwatch の時間を秒単位で読み取る。

概要

read_stopwatch_s:long(name:string)

引数

name
stopwatch name

説明

stopwatch name の時間を秒単位で返します。name が存在しない場合には、stopwatch を作成します。

名前

function::read_stopwatch_us — stopwatch の時間をマイクロ秒で読み取る。

概要

read_stopwatch_us:long(name:string)

引数

name
stopwatch name

説明

stopwatch name の時間をマイクロ秒で返します。name が存在しない場合には、stopwatch を作成します。

名前

function::start_stopwatch — stopwatch の開始

概要

start_stopwatch(name:string)

引数

name
stopwatch name

説明

stopwatch name を起動します。name が存在しない場合には、stopwatch を作成します。

名前

function::stop_stopwatch — stopwatch の停止

概要

stop_stopwatch(name:string)

引数

name
stopwatch name

説明

name の停止を停止します。name が存在しない場合には、stopwatch を作成します。

第5章 時間ユーティリティー関数

ユーティリティー関数は、タイムスタンプ関数 gettimeofday_s()によって返されるエポックからの経過時間(秒数)を、人が判読できる日付/時間の文字列に変換します。

名前

function::ctime — エポックからの経過時間(秒単位)を、人が判読できる日付/時間の文字列に変換します。

概要

ctime:string(epochsecs:long)

引数

epochsecs
エポックからの経過時間( gettimeofday_sによって返された場合)

説明

gettimeofday_s によって返されるエポックからの経過時間(秒単位)の引数を取ります。フォームの文字列を返します。
Wed Jun 30 21:49:08 1993
文字列は常に 24 文字に完全になります。時間が過去の場合(エポックから秒で、32 ビットオフセットで表現できるもの前)に、エラーが発生します(try/catch で回避できます)。今後予定されていない時間が今後も発生する場合は、エラーも発生します。
エポック(ゼロ)は以下になります。
Thu Jan 1 00:00:00 1970
epochsecs -2147483648 に対応する、ctime によって提供される最も初期の日付は、Fri Dec 13 20:45:52 1901 です。epochsecs 2147483647 に対応する ctime によって提供される最新の日付は Tue Jan 19 03:14:07 2038 です。
曜日の省略形は 'Sun'、'Mon'、'Tue'、'Wed'、'Thu'、'Fri'、および 'Sat' です。月の省略形は 'Jan'、'Feb'、'Mar'、'Apr'、'Jun'、'Jul'、'Aug'、'Sep'、'Oct'、'Nov'、および 'Dec' です。
実際の C ライブラリー ctime 関数は、この関数が文字列の最後に改行文字(\n)を配置することに注意してください。また、カーネルにはタイムゾーンの概念がないため、時間は常に GMT で返されます。

名前

function::tz_ctime — ローカルのタイムゾーンを使用して、エポックからの経過時間(秒)を、人が判読できる日付/時間の文字列に変換します。

概要

tz_ctime(epochsecs:)

引数

epochsecs
エポックからの経過時間( gettimeofday_sによって返された場合)

説明

gettimeofday_s によって返されるエポックからの経過時間(秒単位)の引数を取ります。ctime と同じ形式の文字列を返しますが、ローカルタイムゾーンのエポック時間をオフセットし、ローカルタイムゾーンの名前を追加します。文字列の長さは異なる可能性があります。タイムゾーン情報はスクリプト起動時にのみ staprun に渡されます。

名前

function::tz_gmtoff — ローカルタイムゾーンオフセットを返します

概要

tz_gmtoff()

引数

なし

説明

スクリプト起動時にのみ staprun によって渡されるローカルのタイムゾーンオフセット(秒 west of UTC)を返します。

名前

function::tz_name — ローカルタイムゾーン名を返します。

概要

tz_name()

引数

なし

説明

スクリプト起動時にのみ staprun によって渡されるローカルのタイムゾーン名を返します。

第6章 シェルコマンド関数

キューシェルコマンドをキューに追加するユーティリティー関数。

名前

function::system — システムに対してコマンドを実行します。

概要

system(cmd:string)

引数

cmd
システムに問題があるコマンド

説明

この関数は、システムでコマンドを実行します。コマンドは、現在のプローブが完了した後のバックグラウンドで起動します。このコマンドは、stap または staprun コマンドを実行するユーザーと同じ UID で実行します。

第7章 メモリー tapset

この種類のプローブポイントは、メモリー関連のイベントをプローブしたり、現在のプロセスのメモリー使用量を照会するために使用されます。これには、以下のプローブポイントが含まれます。

名前

function::addr_to_node — NUMA システム内で指定のアドレスが属するノードを返します。

概要

addr_to_node:long(addr:long)

引数

addr
障害が発生しているメモリーアクセスのアドレス

説明

この関数はアドレスを受け取り、NUMA システム内で指定アドレスが属するノードを返します。

名前

function::bytes_to_string — 指定バイトの人が判読できる文字列。

概要

bytes_to_string:string(bytes:long)

引数

bytes
変換するバイト数。

説明

バイト数 (最大 1024 バイト)、’K’ が末尾のキロバイト数 (1024K 未満)、'M' が末尾のメガバイト数 (1024M 未満)、または 'G' が末尾のギガバイト数を表す文字列を返します。K、M、または G が付き、数値が 100 未満の場合は、「.」と、その残りが含まれます。返される文字列は 5 文字です (9999G バイトを超える場合や負の値である場合以外は最初に空白文字が挿入されます)。

名前

function::mem_page_size — このアーキテクチャーのページのバイト数。

概要

mem_page_size:long()

引数

なし

名前

function::pages_to_string — ページを人が判読できる文字列に変換します。

概要

pages_to_string:string(pages:long)

引数

pages
変換するページ数。

説明

ページを page_size で乗算してバイト数を取得し、bytes_to_string の結果を返します。

名前

function::proc_mem_data — ページ単位のプログラムデータサイズ (データ + スタック)。

概要

proc_mem_data:long()

引数

なし

説明

ページ単位の現在のプロセスデータサイズ (データ + スタック) を返します。現在のプロセスがない場合や、ページ数を取得できなかった場合はゼロを返します。

名前

function::proc_mem_data_pid — ページ単位のプログラムデータサイズ (データ + スタック)。

概要

proc_mem_data_pid:long(pid:long)

引数

pid
確認するプロセスの PID。

説明

ページ単位の指定のプロセスデータサイズ (データ + スタック) を返します。プロセスがない場合や、ページ数を取得できなかった場合はゼロを返します。

名前

function::proc_mem_rss — ページ単位のプログラムレジデント設定サイズ。

概要

proc_mem_rss:long()

引数

なし

説明

現在のプロセスのページ単位のレジデント設定サイズを返します。現在のプロセスがない場合や、ページ数を取得できなかった場合はゼロを返します。

名前

function::proc_mem_rss_pid — ページ単位のプログラムレジデント設定サイズ。

概要

proc_mem_rss_pid:long(pid:long)

引数

pid
確認するプロセスの PID。

説明

指定プロセスのページ単位のレジデント設定サイズを返します。指定のプロセスがない場合や、ページ数を取得できなかった場合はゼロを返します。

名前

function::proc_mem_shr — プログラム共有ページ (共有マッピングより)。

概要

proc_mem_shr:long()

引数

なし

説明

現在のプロセスの共有ページ (共有マッピングより) を返します。現在のプロセスがない場合や、ページ数を取得できなかった場合はゼロを返します。

名前

function::proc_mem_shr_pid — プログラム共有ページ (共有マッピングより)。

概要

proc_mem_shr_pid:long(pid:long)

引数

pid
確認するプロセスの PID。

説明

指定プロセスの共有ページ (共有マッピングより) を返します。プロセスがない場合や、ページ数を取得できなかった場合はゼロを返します。

名前

function::proc_mem_size — ページ単位のプログラム仮想メモリーサイズの合計。

概要

proc_mem_size:long()

引数

なし

説明

現在のプロセスのページ単位の仮想メモリーサイズ合計を返します。現在のプロセスがない場合や、ページ数を取得できなかった場合はゼロを返します。

名前

function::proc_mem_size_pid — ページ単位のプログラム仮想メモリーサイズの合計。

概要

proc_mem_size_pid:long(pid:long)

引数

pid
確認するプロセスの PID。

説明

指定プロセスのページ単位の仮想メモリーサイズ合計を返します。指定のプロセスがない場合や、ページ数を取得できなかった場合はゼロを返します。

名前

function::proc_mem_string — 人が判読できる文字列で示された現在の proc メモリー使用量。

概要

proc_mem_string:string()

引数

なし

説明

現在のプロセスによって使用されるメモリーのサイズ、rss、shr、txt、およびデータを表示する、人が判読できる文字列を返します。例: size: 301m, rss: 11m, shr: 8m, txt: 52k, data: 2248k

名前

function::proc_mem_string_pid — 人が判読できる文字列で示されたプロセスメモリー使用量。

概要

proc_mem_string_pid:string(pid:long)

引数

pid
確認するプロセスの PID。

説明

指定のプロセスによって使用されるメモリーのサイズ、rss、shr、txt、およびデータを表示する、人が判読できる文字列を返します。例: size: 301m, rss: 11m, shr: 8m, txt: 52k, data: 2248k

名前

function::proc_mem_txt — ページ単位のプログラムテキスト (コード) サイズ。

概要

proc_mem_txt:long()

引数

なし

説明

ページ単位の現在のプロセステキスト (コード)サイズを返します。現在のプロセスがない場合や、ページ数を取得できなかった場合はゼロを返します。

名前

function::proc_mem_txt_pid — ページ単位のプログラムテキスト (コード) サイズ。

概要

proc_mem_txt_pid:long(pid:long)

引数

pid
確認するプロセスの PID。

説明

ページ単位の指定のプロセステキスト (コード) サイズを返します。プロセスがない場合や、ページ数を取得できなかった場合はゼロを返します。

名前

function::vm_fault_contains — ページフォールトの理由の戻り値をテストします。

概要

vm_fault_contains:long(value:long,test:long)

引数

value
the fault_type returned by vm.page_fault.return
test
テストするフォールトタイプ(VM_FAULT_OOM または同等)

名前

probe::vm.brk — brk が要求されたときに実行されます(例: ヒープのリサイズ)。

概要

vm.brk 

name
プローブポイントの名前
address
要求されたアドレス
length
メモリーセグメントの長さ

コンテキスト

brk を呼び出すプロセス。

名前

probe::vm.kfree — kfree が要求されたときに実行されます。

概要

vm.kfree 

name
プローブポイントの名前
ptr
kmalloc によって返された割り当て済み kmemory へのポインター。
caller_function
呼び出し元関数の名前。
call_site
この kmemory 関数を呼び出す関数のアドレス

名前

probe::vm.kmalloc — kmalloc が要求されたときに実行されます。

概要

vm.kmalloc 

gfp_flags
割り当てる kmemory のタイプ。
bytes_req
要求されたバイト。
name
プローブポイントの名前
ptr
割り当てられた kmemory へのポインター
bytes_alloc
割り当てられたバイト。
caller_function
呼び出し元関数の名前
gfp_flag_name
割り当てる kmemory のタイプ (文字列形式)。
call_site
kmemory 関数のアドレス

名前

probe::vm.kmalloc_node — kmalloc_node が要求されたときに実行されます。

概要

vm.kmalloc_node 

caller_function
呼び出し元関数の名前
gfp_flag_name
割り当てる kmemory のタイプ(文字列形式)。
call_site
この kmemory 関数を呼び出す関数のアドレス
gfp_flags
割り当てる kmemory のタイプ。
bytes_req
要求されたバイト。
name
プローブポイントの名前
ptr
割り当てられた kmemory へのポインター
bytes_alloc
割り当てられたバイト。

名前

probe::vm.kmem_cache_alloc — kmem_cache_alloc が要求されたときに実行されます。

概要

vm.kmem_cache_alloc 

bytes_alloc
割り当てられたバイト。
ptr
割り当てられた kmemory へのポインター
name
プローブポイントの名前
bytes_req
要求されたバイト。
gfp_flags
割り当てる kmemory のタイプ。
caller_function
呼び出し元関数の名前。
gfp_flag_name
割り当てる kmemory のタイプ(文字列形式)。
call_site
この kmemory 関数を呼び出す関数のアドレス。

名前

probe::vm.kmem_cache_alloc_node — kmem_cache_alloc_node が要求されたときに実行されます。

概要

vm.kmem_cache_alloc_node 

gfp_flags
割り当てる kmemory のタイプ。
name
プローブポイントの名前
bytes_req
要求されたバイト。
ptr
割り当てられた kmemory へのポインター
bytes_alloc
割り当てられたバイト。
caller_function
呼び出し元関数の名前
call_site
この kmemory 関数を呼び出す関数のアドレス
gfp_flag_name
割り当てる kmemory のタイプ(文字列形式)。

名前

probe::vm.kmem_cache_free — kmem_cache_free が要求されたときに実行されます。

概要

vm.kmem_cache_free 

caller_function
呼び出し元関数の名前。
call_site
この kmemory 関数を呼び出す関数のアドレス
ptr
kmem_cache によって返された割り当て済み kmemory へのポインター。
name
プローブポイントの名前

名前

probe::vm.mmap — mmap が要求されたときに実行されます。

概要

vm.mmap 

name
プローブポイントの名前
length
メモリーセグメントの長さ
address
要求されたアドレス

コンテキスト

mmap を呼び出すプロセス。

名前

probe::vm.munmap — munmap が要求されたときに実行されます

概要

vm.munmap 

length
メモリーセグメントの長さ
address
要求されたアドレス
name
プローブポイントの名前

コンテキスト

munmap を呼び出すプロセス。

名前

probe::vm.oom_kill — OOM killer によって終了されるスレッドが選択されたときに実行されます。

概要

vm.oom_kill 

name
プローブポイントの名前
task
kill されるタスク。

コンテキスト

余分なメモリーを消費しようとし、OOM を引き起こしたプロセス。

名前

probe::vm.pagefault — ページフォールトの発生の記録

概要

vm.pagefault 

address
障害が発生しているメモリーアクセスのアドレス(例: ページフォールトの原因となったアドレス)
write_access
これが書き込みまたは読み取りアクセスであるかを示します。1 は書き込み、0 は読み取りを示します。
name
プローブポイントの名前

コンテキスト

障害を引き起こしたプロセス。

名前

probe::vm.pagefault.return — 発生した障害のタイプを示します。

概要

vm.pagefault.return 

name
プローブポイントの名前
fault_type
メモリー不足による障害は 0(VM_FAULT_OOM)、マイナー障害は 2(VM_FAULT_MINOR)、大きな障害は 3(VM_FAULT_MAJOR)を返します。障害がいずれにも該当しない場合は 1(VM_FAULT_SIGBUS)を返します。

名前

probe::vm.write_shared — 共有ページへの書き込みを試行します。

概要

vm.write_shared 

address
共有書き込みのアドレス。
name
プローブポイントの名前

コンテキスト

コンテキストは、書き込みを試行するプロセスです。

説明

プロセスが共有ページへの書き込みを試みる際に実行されます。コピーが必要な場合は、その後に vm.write_shared_copy が続きます。

名前

probe::vm.write_shared_copy — 共有ページ書き込みのページコピー

概要

vm.write_shared_copy 

zero
ゼロページであるかどうかを示すブール値(コピーの代わりに消去を実行可能)
name
プローブポイントの名前
address
共有書き込みのアドレス。

コンテキスト

書き込みを試行するプロセス。

説明

共有ページへの書き込みでページのコピーが必要な場合に実行されます。これは常に vm.write_shared の前に付けられます。

第8章 タスク時間 tapset

この tapset は、ユーティリティー関数を定義して現在のタスクの時間に関するプロパティーを問い合わせ、これらをミリ秒単位で人が判読できる文字列に変換します。

名前

function::cputime_to_msecs — 指定の CPU 時間をミリ秒に変換します。

概要

cputime_to_msecs:long(cputime:long)

引数

cputime
ミリ秒に変換する時間。

名前

function::cputime_to_string — 人が判読できる文字列で示された指定の CPU 時間。

概要

cputime_to_string:string(cputime:long)

引数

cputime
変換する時間。

説明

msec_to_string (cputime_to_msecs (cputime) の呼び出しと同等です。

名前

function::cputime_to_usecs — 指定の CPU 時間をマイクロ秒に変換します。

概要

cputime_to_usecs:long(cputime:long)

引数

cputime
マイクロ秒に変換する時間。

名前

function::msecs_to_string — 人が判読できる文字列で示された指定のミリ秒。

概要

msecs_to_string:string(msecs:long)

引数

msecs
変換するミリ秒数。

説明

ミリ秒数を人が判読できる文字列で返します。この文字列の形式は XmY.ZZZs で、X は分数、Y は秒数、ZZZ はミリ秒数を示します。

名前

function::nsecs_to_string — 人が判読できる文字列で示された指定のナノ秒

概要

nsecs_to_string:string(nsecs:long)

引数

nsecs
変換するナノ秒数

説明

ナノ秒数を表す文字列は、XmY.ZZZZZZZZZZZs で構成される人が判読できる文字列で、X は分数、Y は秒数、ZZZZZZZZZZZ はナノ秒数に置き換えます。

名前

function::task_start_time — 指定タスクの開始時間

概要

task_start_time:long(tid:long)

引数

tid
指定タスクのスレッド ID。

説明

タスクが存在しない場合には、ブート時間または 0 以降の特定のタスクの開始時間をナノ秒で返します。

名前

function::task_stime — 現在のタスクのシステム時間。

概要

task_stime:long()

引数

なし

説明

現在のタスクのシステム時間を cputime で返します。このプロセスの他のタスクが使用した時間や、このタスクの子が費やした時間は含まれません。

名前

function::task_stime_tid — 指定タスクのシステム時間。

概要

task_stime_tid:long(tid:long)

引数

tid
指定タスクのスレッド ID。

説明

指定タスクのシステム時間を cputime で返します。タスクが存在しない場合はゼロを返します。このプロセスの他のタスクが使用した時間や、このタスクの子が費やした時間は含まれません。

名前

function::task_time_string — 人が判読できる文字列で示されたタスク時間の使用量。

概要

task_time_string:string()

引数

なし

説明

現在のタスクがこれまでに使用したユーザーおよびシステム時間を示す、人が判読可能な文字列を返します。例: usr: 0m12.908s, sys: 1m6.851s

名前

function::task_time_string_tid — 人が判読できる文字列で示されたタスク時間の使用量。

概要

task_time_string_tid:string(tid:long)

引数

tid
指定タスクのスレッド ID。

説明

指定のタスクがこれまでに使用したユーザーおよびシステム時間を示す、人が判読可能な文字列を返します。例: 0m12.908s, sys: 1m6.851s

名前

function::task_utime — 現在のタスクのユーザー時間。

概要

task_utime:long()

引数

なし

説明

現在のタスクのユーザー時間を cputimeで返します。このプロセスの他のタスクが使用した時間や、このタスクの子が費やした時間は含まれません。

名前

function::task_utime_tid — 指定タスクのユーザー時間。

概要

task_utime_tid:long(tid:long)

引数

tid
指定タスクのスレッド ID。

説明

指定タスクのユーザー時間を cputime で返します。タスクが存在しない場合はゼロを返します。このプロセスの他のタスクが使用した時間や、このタスクの子が費やした時間は含まれません。

名前

function::usecs_to_string — 人が判読できる文字列で示された指定のマイクロ秒に使用する文字列。

概要

usecs_to_string:string(usecs:long)

引数

usecs
変換するマイクロ秒数。

説明

マイクロ秒の数を表す文字列は、XmY.ZZZZZZZZZZs で構成される人が判読可能な文字列として返します。X は分数、Y は秒数、ZZZZZZ はマイクロ秒の数に置き換えます。

第9章 スケジューラー tapset

この種類のプローブポイントは、タスクスケジューラーの活動をプローブするために使用されます。これには、以下のプローブポイントが含まれます。

名前

probe::scheduler.balance — より多くの作業の検索を試行する CPU。

概要

scheduler.balance 

name
プローブポイントの名前

コンテキスト

より多くの作業用の CPU の検索。

名前

probe::scheduler.cpu_off — プロセスは、CPU での実行を停止するようです。

概要

scheduler.cpu_off 

task_prev
cpu を残すプロセス(current と同じ)
idle
現在アイドル状態のプロセスかどうかを示すブール値
name
プローブポイントの名前
task_next
現在のプロセス

コンテキスト

CPU を離れるプロセス。

名前

probe::scheduler.cpu_on — プロセスが CPU の実行を開始しています。

概要

scheduler.cpu_on 

idle
- current がアイドルプロセスかどうかを示すブール値
task_prev
この CPU で以前に実行されていたプロセス
name
プローブポイントの名前

コンテキスト

再開プロセス。

名前

probe::scheduler.ctxswitch — コンテキストスイッチが発生する。

概要

scheduler.ctxswitch 

prev_tid
切り替えるプロセスの TID
name
プローブポイントの名前
next_tid
切り替えされるプロセスの TID
prev_pid
切り替えするプロセスの PID
prevtsk_state
切り替えるプロセスの状態
next_pid
切り替えするプロセスの PID
nexttsk_state
切り替えされるプロセスの状態
prev_priority
切り替えるプロセスの優先度
next_priority
切り替えるプロセスの優先度
prev_task_name
切り替わるプロセスの名前
next_task_name
切り替えるプロセスの名前

名前

probe::scheduler.kthread_stop — kthread_create によって作成されたスレッドは停止しています。

概要

scheduler.kthread_stop 

thread_pid
停止中のスレッドの PID
thread_priority
スレッドの優先順位

名前

probe::scheduler.kthread_stop.return — kthread が停止し、戻り値を取得します。

概要

scheduler.kthread_stop.return 

return_value
スレッドの停止後の値を返します。
name
プローブポイントの名前

名前

probe::scheduler.migrate — CPU 間でのタスクの移行

概要

scheduler.migrate 

priority
移行するタスクの優先順位
cpu_to
宛先 CPU
cpu_from
元の CPU
task
移行中のプロセス
name
プローブポイントの名前
pid
移行されるタスクの PID。

名前

probe::scheduler.process_exit — プロセスの終了

概要

scheduler.process_exit 

name
プローブポイントの名前
pid
終了しているプロセスの PID
priority
終了するプロセスの優先順位

名前

probe::scheduler.process_fork — フォークされたプロセス

概要

scheduler.process_fork 

name
プローブポイントの名前
parent_pid
親プロセスの PID
child_pid
子プロセスの PID

名前

probe::scheduler.process_free — プロセスのデータ構造の解放

概要

scheduler.process_free 

name
プローブポイントの名前
pid
解放されたプロセスの PID
priority
解放されたプロセスの優先度

名前

probe::scheduler.process_wait — プロセスで待機を開始するスケジューラー

概要

scheduler.process_wait 

name
プローブポイントの名前
pid
プロセススケジューラーの PID が待機中です。

名前

probe::scheduler.signal_send — シグナルの送信

概要

scheduler.signal_send 

pid
シグナルを送信するプロセスの PID
name
プローブポイントの名前
signal_number
シグナル番号

名前

probe::scheduler.tick — スケジューラーの内部ティック、プロセス timeslice のアカウンティングが更新されました。

概要

scheduler.tick 

idle
現在アイドル状態のプロセスかどうかを示すブール値
name
プローブポイントの名前

コンテキスト

アカウンティングが更新されるプロセス。

名前

probe::scheduler.wait_task — スケジューリングを解除するタスクを待つ(become inactive)

概要

scheduler.wait_task 

task_pid
スケジューラーが待機中タスクの PID
name
プローブポイントの名前
task_priority
タスクの優先順位

名前

probe::scheduler.wakeup — タスクが切り替わる

概要

scheduler.wakeup 

task_tid
停止しているタスクの tid
task_priority
停止中のタスクの優先順位
task_cpu
停止したタスクの CPU
task_pid
停止しているタスクの PID
name
プローブポイントの名前
task_state
停止しているタスクの状態

名前

probe::scheduler.wakeup_new — 新規に作成されたタスクが初めて停止している。

概要

scheduler.wakeup_new 

name
プローブポイントの名前
task_state
停止したタスクの状態
task_pid
新規タスクの PID。
task_tid
新規タスクの TID の発生
task_priority
新規タスクの優先順位
task_cpu
タスクの CPU アップ

第10章 IO スケジューラーおよびブロック IO tapset

この種類のプローブポイントは、ブロック IO レイヤーおよび IO スケジューラーの活動をプローブするために使用されます。以下のプローブポイントが含まれます。

名前

probe::ioblock.end — ブロック I/O 転送が完了したときに必ず実行されます。

概要

ioblock.end 

name
プローブポイントの名前
sector
bio 全体のセクターの開始
hw_segments
物理および DMA 再マッピングハードウェアレッシングが実行された後のセグメント数
phys_segments
物理アドレスコアレッシングが実行された後のこの bio のセグメント数。
flags
I/O 補完の _RW_BLOCK 1 RW_AHEAD 設定の後に dNSName_UPTODATE 0 ok を下回り、read/write would block dNSName_EOF 2 out-out-bounds error dNSName_SEG_VALID 3 nr_hw_seg valid dNSName_CLONED 4 doesn't own data dNSName_BOUNCED 5 bio は、bounce bio_USER_MAPPED 6 にユーザーページ dNSName_EOPNOTSUPP 7 が含まれない
devname
ブロックデバイス名
bytes_done
転送されたバイト数
error
成功時 0
size
合計サイズ(バイト単位)
idx
bio ベクターアレイへのオフセット
vcnt
この I/O 要求を構成するアレイ要素(ページ、オフセット、長さ)の数を表す bio ベクトル数
ino
マッピングされたファイルの I-node 番号
rw
読み取り/書き込み要求のバイナリートレース

コンテキスト

プロセスは転送が行われたことを示します。

名前

probe::ioblock.request — 汎用的なブロック I/O 要求を行ったときに必ず実行されます。

概要

ioblock.request 

sector
bio 全体のセクターの開始
name
プローブポイントの名前
devname
ブロックデバイス名
phys_segments
物理アドレスコアレッシングが実行された後のこの bio のセグメント数
flags
I/O 補完の _RW_BLOCK 1 RW_AHEAD 設定の後に dNSName_UPTODATE 0 ok を下回り、read/write would block dNSName_EOF 2 out-out-bounds error dNSName_SEG_VALID 3 nr_hw_seg valid dNSName_CLONED 4 doesn't own data dNSName_BOUNCED 5 bio は、bounce bio_USER_MAPPED 6 にユーザーページ dNSName_EOPNOTSUPP 7 が含まれない
hw_segments
物理および DMA 再マッピングハードウェアレッシングが実行された後のセグメント数
bdev_contains
パーティションを含むデバイスオブジェクトをポイントする(bio 構造がパーティションを表す場合)
vcnt
この I/O 要求を構成するアレイ要素(ページ、オフセット、長さ)の数を表す bio ベクトル数
idx
bio ベクターアレイへのオフセット
bdev
ターゲットブロックデバイス
p_start_sect
デバイスのパーティション構造の開始セクターを参照します。
size
合計サイズ(バイト単位)
ino
マッピングされたファイルの I-node 番号
rw
読み取り/書き込み要求のバイナリートレース

コンテキスト

ブロック I/O 要求を行うプロセス

名前

probe::ioblock_trace.bounce — ブロック I/O 要求の少なくとも 1 つのページに対してバッファーバウンスが必要なときに必ず実行されます。

概要

ioblock_trace.bounce 

q
この bio がキューに格納された要求キュー。
size
合計サイズ(バイト単位)
vcnt
この I/O 要求を構成するアレイ要素(ページ、オフセット、長さ)の数を表す bio ベクトル数
idx
bio ベクターアレイへのオフセット phys_segments: 物理アドレスコアレッシングが実行された後のセグメント数
bdev
ターゲットブロックデバイス
p_start_sect
デバイスのパーティション構造の開始セクターを参照します。
ino
マッピングされたファイルの I-node 番号
rw
読み取り/書き込み要求のバイナリートレース
name
プローブポイントの名前
sector
bio 全体のセクターの開始
bdev_contains
パーティションを含むデバイスオブジェクトをポイントする(bio 構造がパーティションを表す場合)
devname
バッファーバウンスが必要なデバイス。
flags
I/O 補完の _RW_BLOCK 1 RW_AHEAD 設定の後に dNSName_UPTODATE 0 ok を下回り、read/write would block dNSName_EOF 2 out-out-bounds error dNSName_SEG_VALID 3 nr_hw_seg valid dNSName_CLONED 4 doesn't own data dNSName_BOUNCED 5 bio は、bounce bio_USER_MAPPED 6 にユーザーページ dNSName_EOPNOTSUPP 7 が含まれない
bytes_done
転送されたバイト数

コンテキスト

ブロック I/O 要求を作成するプロセス。

名前

probe::ioblock_trace.end — ブロック I/O 転送が完了したときに必ず実行されます。

概要

ioblock_trace.end 

bdev_contains
パーティションを含むデバイスオブジェクトをポイントする(bio 構造がパーティションを表す場合)
flags
I/O 補完の _RW_BLOCK 1 RW_AHEAD 設定の後に dNSName_UPTODATE 0 ok を下回り、read/write would block dNSName_EOF 2 out-out-bounds error dNSName_SEG_VALID 3 nr_hw_seg valid dNSName_CLONED 4 doesn't own data dNSName_BOUNCED 5 bio は、bounce bio_USER_MAPPED 6 にユーザーページ dNSName_EOPNOTSUPP 7 が含まれない
devname
ブロックデバイス名
bytes_done
転送されたバイト数
name
プローブポイントの名前
sector
bio 全体のセクターの開始
ino
マッピングされたファイルの I-node 番号
rw
読み取り/書き込み要求のバイナリートレース
size
合計サイズ(バイト単位)
q
この bio がキューに格納された要求キュー。
idx
bio ベクターアレイへのオフセット phys_segments: 物理アドレスコアレッシングが実行された後のセグメント数
vcnt
この I/O 要求を構成するアレイ要素(ページ、オフセット、長さ)の数を表す bio ベクトル数
bdev
ターゲットブロックデバイス
p_start_sect
デバイスのパーティション構造の開始セクターを参照します。

コンテキスト

プロセスは転送が行われたことを示します。

名前

probe::ioblock_trace.request — bio に対して汎用的なブロック I/O 要求が作成されるときに実行されます。

概要

ioblock_trace.request 

q
この bio がキューに格納された要求キュー。
size
合計サイズ(バイト単位)
idx
bio ベクターアレイへのオフセット phys_segments: 物理アドレスコアレッシングが実行された後のセグメント数
vcnt
この I/O 要求を構成するアレイ要素(ページ、オフセット、長さ)の数を表す bio ベクトル数
bdev
ターゲットブロックデバイス
p_start_sect
デバイスのパーティション構造の開始セクターを参照します。
ino
マッピングされたファイルの I-node 番号
rw
読み取り/書き込み要求のバイナリートレース
name
プローブポイントの名前
sector
bio 全体のセクターの開始
bdev_contains
パーティションを含むデバイスオブジェクトをポイントする(bio 構造がパーティションを表す場合)
devname
ブロックデバイス名
flags
I/O 補完の _RW_BLOCK 1 RW_AHEAD 設定の後に dNSName_UPTODATE 0 ok を下回り、read/write would block dNSName_EOF 2 out-out-bounds error dNSName_SEG_VALID 3 nr_hw_seg valid dNSName_CLONED 4 doesn't own data dNSName_BOUNCED 5 bio は、bounce bio_USER_MAPPED 6 にユーザーページ dNSName_EOPNOTSUPP 7 が含まれない
bytes_done
転送されたバイト数

コンテキスト

ブロック I/O 要求を行うプロセス

名前

probe::ioscheduler.elv_add_request — 要求が要求キューに追加されたことを示すプローブ。

概要

ioscheduler.elv_add_request 

rq
要求のアドレス。
q
要求キューのポインター。
elevator_name
現在有効になっている I/O エレベーターのタイプ。
disk_major
要求のディスクメジャー番号。
disk_minor
要求のディスクマイナー番号。
rq_flags
要求フラグ。

名前

probe::ioscheduler.elv_add_request.kp — 要求が要求キューに追加されたことを示す kprobe ベースのプローブ。

概要

ioscheduler.elv_add_request.kp 

disk_major
要求のディスクメジャー番号。
disk_minor
要求のディスクマイナー番号。
rq_flags
要求フラグ。
elevator_name
現在有効になっている I/O エレベーターのタイプ。
q
要求キューへのポインター。
rq
要求のアドレス。
name
プローブポイントの名前

名前

probe::ioscheduler.elv_add_request.tp — 要求が要求キューに追加されたことを示す tracepoint ベースのプローブ。

概要

ioscheduler.elv_add_request.tp 

q
要求キューのポインター。
elevator_name
現在有効になっている I/O エレベーターのタイプ。
name
プローブポイントの名前
rq
要求のアドレス。
disk_major
要求のディスクメジャー番号。
disk_minor
要求のディスクマイナー番号。
rq_flags
要求フラグ。

名前

probe::ioscheduler.elv_completed_request — 要求が完了すると実行されます

概要

ioscheduler.elv_completed_request 

name
プローブポイントの名前
rq
要求のアドレス。
elevator_name
現在有効になっている I/O エレベーターのタイプ。
disk_major
要求のディスクメジャー番号。
disk_minor
要求のディスクマイナー番号。
rq_flags
要求フラグ。

名前

probe::ioscheduler.elv_next_request — 要求キューから要求が取得されたときに実行されます。

概要

ioscheduler.elv_next_request 

elevator_name
現在有効になっている I/O エレベーターのタイプ。
name
プローブポイントの名前

名前

probe::ioscheduler.elv_next_request.return — 要求の取得によってシグナルが返されると実行されます。

概要

ioscheduler.elv_next_request.return 

disk_major
要求のディスクメジャー番号。
disk_minor
要求のディスクマイナー番号。
rq_flags
要求フラグ。
rq
要求のアドレス。
name
プローブポイントの名前

名前

probe::ioscheduler_trace.elv_abort_request — 要求が中止されると実行されます。

概要

ioscheduler_trace.elv_abort_request 

disk_major
要求のディスクメジャー番号。
disk_minor
要求のディスクマイナー番号。
rq_flags
要求フラグ。
elevator_name
現在有効になっている I/O エレベーターのタイプ。
rq
要求のアドレス。
name
プローブポイントの名前

名前

probe::ioscheduler_trace.elv_completed_request — 要求が完了すると実行されます。

概要

ioscheduler_trace.elv_completed_request 

elevator_name
現在有効になっている I/O エレベーターのタイプ。
rq
要求のアドレス。
name
プローブポイントの名前
rq_flags
要求フラグ。
disk_minor
要求のディスクマイナー番号。
disk_major
要求のディスクメジャー番号。

説明

完了済み。

名前

probe::ioscheduler_trace.elv_issue_request — 要求が完了すると実行されます。

概要

ioscheduler_trace.elv_issue_request 

rq_flags
要求フラグ。
disk_minor
要求のディスクマイナー番号。
disk_major
要求のディスクメジャー番号。
elevator_name
現在有効になっている I/O エレベーターのタイプ。
rq
要求のアドレス。
name
プローブポイントの名前。

説明

スケジュール済み。

名前

probe::ioscheduler_trace.elv_requeue_request — 要求が完了すると実行されます。

概要

ioscheduler_trace.elv_requeue_request 

rq
要求のアドレス。
name
プローブポイントの名前
elevator_name
現在有効になっている I/O エレベーターのタイプ。
rq_flags
要求フラグ。
disk_minor
要求のディスクマイナー番号。
disk_major
要求のディスクメジャー番号。

説明

ハードウェアがこれ以上要求を受け入れることができないときにキューに戻されます。

名前

probe::ioscheduler_trace.plug — 要求キューがプラグされると実行されます。

概要

ioscheduler_trace.plug 

rq_queue
要求キュー
name
プローブポイントの名前。

説明

キュー内の要求はブロックドライバーで処理できません。

名前

probe::ioscheduler_trace.unplug_io — 要求キューがアンプラグされると実行されます。

概要

ioscheduler_trace.unplug_io 

name
プローブポイントの名前
rq_queue
要求キュー

説明

キュー内の保留中の要求の数がしきい値を超えたとき、またはキューがプラグされたときにアクティブ化されたタイマーの終了時。

名前

probe::ioscheduler_trace.unplug_timer — アンプラグタイマーが関連付けられたときに実行されます。

概要

ioscheduler_trace.unplug_timer 

rq_queue
要求キュー
name
プローブポイントの名前。

説明

要求キューの終了時。

第11章 SCSI Tapset

この種類のプローブポイントは、SCSI アクティビティーをプローブするために使用されます。以下のプローブポイントが含まれます。

名前

probe::scsi.iocompleted — ブロックデバイス I/O 要求の完了処理を行っている SCSI 中間層

概要

scsi.iocompleted 

device_state
デバイスの現在の状態
dev_id
SCSI デバイス ID
req_addr
現在の構造要求ポインター (数字)
data_direction_str
データの方向 (文字列)
device_state_str
デバイスの現在の状態 (文字列)
lun
LUN 番号
goodbytes
完了済みバイト数
data_direction
data_direction は、このコマンドがデバイスから送信されるか、デバイスに送信されるかを指定します。
channel
チャネル番号
host_no
ホスト番号

名前

probe::scsi.iodispatching — SCSI 中間層でディスパッチされるローレベル SCSI コマンド

概要

scsi.iodispatching 

device_state
デバイスの現在の状態
request_bufflen
要求バッファーの長さ
request_buffer
要求バッファーアドレス
dev_id
SCSI デバイス ID
data_direction_str
データの方向 (文字列)
req_addr
現在の構造要求ポインター (数字)
device_state_str
デバイスの現在の状態 (文字列)
lun
LUN 番号
data_direction
data_direction は、このコマンドがデバイス 0 (DMA_BIDIRECTIONAL)、1 (DMA_TO_DEVICE)、2 (DMA_FROM_DEVICE)、3 (DMA_NONE) から送信されるか、デバイスに送信されるかを指定します。
channel
チャネル番号
host_no
ホスト番号

名前

probe::scsi.iodone — 低レベルドライバーによって完了され、実行済みキューに格納される SCSI コマンド。

概要

scsi.iodone 

device_state
デバイスの現在の状態
data_direction_str
データの方向 (文字列)
req_addr
現在の構造要求ポインター (数字)
dev_id
SCSI デバイス ID
lun
LUN 番号
scsi_timer_pending
タイマーがこの要求で保留中の場合は 1
device_state_str
デバイスの現在の状態 (文字列)
host_no
ホスト番号
channel
チャネル番号
data_direction
data_direction は、このコマンドがデバイスから送信されるか、デバイスに送信されるかを指定します。

名前

probe::scsi.ioentry — SCSI 中間層要求の作成

概要

scsi.ioentry 

req_addr
現在の構造要求ポインター (数字)
disk_major
ディスクのメジャー番号 (未指定の場合は -1)
device_state_str
デバイスの現在の状態 (文字列)
disk_minor
ディスクのマイナー番号(未指定の場合は -1)
device_state
デバイスの現在の状態

名前

probe::scsi.ioexecute — 中間層 SCSI 要求の作成および結果の待機

概要

scsi.ioexecute 

host_no
ホスト番号
channel
チャネル番号
data_direction
data_direction は、このコマンドがデバイスから送信されるか、デバイスに送信されるかを指定します。
lun
LUN 番号
retries
要求を再試行する回数
device_state_str
デバイスの現在の状態 (文字列)
data_direction_str
データの方向 (文字列)
dev_id
SCSI デバイス ID
request_buffer
データバッファーアドレス
request_bufflen
データバッファーの長さ
device_state
デバイスの現在の状態
timeout
要求タイムアウト(秒単位)

名前

probe::scsi.set_state — SCSI デバイス状態の変更を要求します。

概要

scsi.set_state 

state
デバイスの新しい状態
old_state
デバイスの現在の状態
dev_id
SCSI デバイス ID
state_str
デバイスの新しい状態 (文字列)
old_state_str
デバイスの現在の状態 (文字列)
lun
LUN 番号
channel
チャネル番号
host_no
ホスト番号

第12章 TTY tapset

この種類のプローブポイントは、TTY(Teletype) のアクティビティーをプローブするために使用されます。以下のプローブポイントが含まれます。

名前

probe::tty.init — tty が初期化される際に呼び出されます。

概要

tty.init 

name
ドライバー .dev_name の名前
module
モジュール名
driver_name
ドライバー名

名前

probe::tty.ioctl — ioctl が tty に要求される際に呼び出されます。

概要

tty.ioctl 

arg
ioctl 引数
name
ファイル名
cmd
ioctl コマンド

名前

probe::tty.open — tty が開かれると呼び出されます。

概要

tty.open 

inode_state
inode 状態
file_mode
ファイルモード
inode_number
inode 番号
file_flags
ファイルフラグ
file_name
ファイル名
inode_flags
inode フラグ

名前

probe::tty.poll — tty デバイスがポーリングされる際に呼び出されます。

概要

tty.poll 

file_name
tty ファイル名
wait_key
待機キューキー

名前

probe::tty.read — tty 行が読み込まれる際に呼び出されます。

概要

tty.read 

file_name
tty に関連するファイル名
driver_name
ドライバー名
nr
読み込まれる文字数
buffer
文字を受信するバッファー

名前

probe::tty.receive — tty がメッセージを受信すると呼び出されます。

概要

tty.receive 

driver_name
ドライバー名
count
受信する文字数
index
tty インデックス
cp
受信したバッファー
id
tty id
name
モジュールファイルの名前
fp
フラグバッファー

名前

probe::tty.register — tty デバイスが登録されると呼び出されます。

概要

tty.register 

name
ドライバー .dev_name の名前
module
モジュール名
index
要求される tty インデックスです。
driver_name
ドライバー名

名前

probe::tty.release — tty が閉じると呼び出されます。

概要

tty.release 

inode_flags
inode フラグ
file_flags
ファイルフラグ
file_name
ファイル名
inode_state
inode 状態
inode_number
inode 番号
file_mode
ファイルモード

名前

probe::tty.resize — 端末のサイズが変更される際に呼び出されます。

概要

tty.resize 

new_row
新規の行の値
old_row
古い行の値
name
tty 名
new_col
新規の列の値
old_xpixel
古い xpixel
old_col
古い列の値
new_xpixel
新規の xpixel 値
old_ypixel
古い ypixel
new_ypixel
新規の ypixel 値

名前

probe::tty.unregister — tty デバイスの登録が解除されると呼び出されます。

概要

tty.unregister 

name
ドライバー .dev_name の名前
module
モジュール名
index
要求される tty インデックスです。
driver_name
ドライバー名

名前

probe::tty.write — tty 行に書き込みます。

概要

tty.write 

nr
文字数
buffer
書き込まれるバッファー
file_name
tty に関連するファイル名
driver_name
ドライバー名

第13章 割り込み要求(IRQ)tapset

この種類のプローブポイントは、割り込み要求(IRQ)アクティビティーをプローブするために使用されます。これには、以下のプローブポイントが含まれます。

名前

probe::irq_handler.entry — 割り込みハンドラーの実行

概要

irq_handler.entry 

next_irqaction
共有割り込みの次の irqaction へのポインター
thread_fn
スレッド化された割り込みの割り込みハンドラー関数
thread
スレッドされた割り込みのスレッドポインター
thread_flags
スレッドに関連するフラグ
irq
IRQ 番号
flags_str
IRQ フラグのシンボリック文字列表現
dev_name
デバイスの名前
action
この割り込み数値の struct irqaction*
dir
proc/irq/NN/name エントリーへのポインター
flags
IRQ ハンドラーのフラグ
dev_id
デバイスを識別するためのクッキー
handler
割り込みハンドラー関数

名前

probe::irq_handler.exit — 割り込みハンドラーの実行が完了しました

概要

irq_handler.exit 

flags_str
IRQ フラグのシンボリック文字列表現
dev_name
デバイスの名前
ret
ハンドラーの戻り値
action
struct irqaction*
thread_fn
スレッド化された割り込みの割り込みハンドラー関数
next_irqaction
共有割り込みの次の irqaction へのポインター
thread
スレッドされた割り込みのスレッドポインター
thread_flags
スレッドに関連するフラグ
irq
割り込み番号
handler
実行された割り込みハンドラー関数
flags
IRQ ハンドラーのフラグ
dir
proc/irq/NN/name エントリーへのポインター
dev_id
デバイスを識別するためのクッキー

名前

probe::softirq.entry — 保留中の softirq 開始のハンドラーの実行

概要

softirq.entry 

action
実行のみの softirq ハンドラーへのポインター
vec_nr
softirq vector 番号
vec
softirq_action vector
h
現在のソフトirq の struct softirq_action*

名前

probe::softirq.exit — 保留中の softirq のハンドラーの実行が完了しました。

概要

softirq.exit 

vec_nr
softirq vector 番号
action
実行が終わたずに softirq ハンドラーへのポインター。
h
実行するだけの softirq_action* struct softirq_action*
vec
softirq_action vector

名前

probe::workqueue.create — 新規ワークキューの作成

概要

workqueue.create 

wq_thread
workqueue スレッドの task_struct
cpu
ワーカースレッドが作成される CPU

名前

probe::workqueue.destroy — ワークキューの破棄

概要

workqueue.destroy 

wq_thread
workqueue スレッドの task_struct

名前

probe::workqueue.execute — 遅延作業の実行

概要

workqueue.execute 

wq_thread
workqueue スレッドの task_struct
work_func
ハンドラー関数へのポインター
work
実行されている work_struct*

名前

probe::workqueue.insert — ワークキューにおけるキュー作業

概要

workqueue.insert 

wq_thread
workqueue スレッドの task_struct
work_func
ハンドラー関数へのポインター
work
work_struct* がキューに格納される

第14章 ネットワーキングタップセット

この種類のプローブポイントは、ネットワークデバイスおよびプロトコル層の活動をプローブするために使用されます。

名前

function::format_ipaddr — IP アドレスの文字列表現を返します。

概要

format_ipaddr:string(addr:long,family:long)

引数

addr
IP アドレス
family
IP アドレスファミリー(AF_INET または AF_INET6)

名前

function::htonl — 32 ビットの長さをホストからネットワークの順序に変換します。

概要

htonl:long(x:long)

引数

x
変換する値

名前

function::htonll — 64 ビット長をホストからネットワークの順序に変換します。

概要

htonll:long(x:long)

引数

x
変換する値

名前

function::htons — 16 ビットのホストからネットワークの順序への変換

概要

htons:long(x:long)

引数

x
変換する値

名前

function::ip_ntop — IPv4 アドレスの文字列表現を返します。

概要

ip_ntop:string(addr:long)

引数

addr
整数で表される IPv4 アドレス

名前

function::ntohl — 32 ビットの長さをネットワークからホストの順序に変換します。

概要

ntohl:long(x:long)

引数

x
変換する値

名前

function::ntohll — 64 ビット長をネットワークからホストの順序に変換します。

概要

ntohll:long(x:long)

引数

x
変換する値

名前

function::ntohs — 16 ビットのネットワークからのホストの順序への変換

概要

ntohs:long(x:long)

引数

x
変換する値

名前

probe::netdev.change_mac — netdev_name により MAC が変更されたときに呼び出されます。

概要

netdev.change_mac 

mac_len
MAC 長
old_mac
現在の MAC アドレス
dev_name
MAC が変更されたデバイス
new_mac
新しい MAC アドレス

名前

probe::netdev.change_mtu — netdev MTU が変更されたときに呼び出されます。

概要

netdev.change_mtu 

old_mtu
現在の MTU
new_mtu
新しい MTU
dev_name
MTU が変更されたデバイス

名前

probe::netdev.change_rx_flag — デバイスの RX フラグが変更されたときに呼び出されます。

概要

netdev.change_rx_flag 

flags
新しいフラグ
dev_name
変更されるデバイス

名前

probe::netdev.close — デバイスが閉じられたときに呼び出されます。

概要

netdev.close 

dev_name
閉じられるデバイス

名前

probe::netdev.get_stats — デバイス統計の問い合わせが行われるときに呼び出されます。

概要

netdev.get_stats 

dev_name
統計を提供するデバイス

名前

probe::netdev.hard_transmit — デバイスが TX (ハード) に移動するときに呼び出されます。

概要

netdev.hard_transmit 

truesize
送信されるデータのサイズ
dev_name
送信するようスケジュールされたデバイス
protocol
送信で使用されるプロトコル
length
送信バッファーの長さ。

名前

probe::netdev.ioctl — デバイスで IOCTL が発生したときに呼び出されます。

概要

netdev.ioctl 

arg
IOCTL 引数(通常は netdev インターフェース)
cmd
IOCTL 要求

名前

probe::netdev.open — デバイスが開いたときに呼び出されます。

概要

netdev.open 

dev_name
開くデバイス

名前

probe::netdev.receive — ネットワークデバイスから受信されたデータ

概要

netdev.receive 

length
受信バッファーの長さ。
protocol
受信されるパケットのプロトコル。
dev_name
デバイスの名前(例: eth0、ath1)。

名前

probe::netdev.register — デバイスが登録されたときに呼び出されます。

概要

netdev.register 

dev_name
登録されるデバイス

名前

probe::netdev.rx — デバイスがパケットを受信するときに呼び出されます。

概要

netdev.rx 

dev_name
パケットを受信したデバイス。
protocol
パケットプロトコル

名前

probe::netdev.set_promiscuity — デバイスのプロミスキャスモードが開始されたとき、またはプロミスキャスモードが終了したときに呼び出されます。

概要

netdev.set_promiscuity 

dev_name
プロミスキャスモードが開始される、またはプロミスキャスモードが終了するデバイス。
enable
デバイスでプロミスキャスモードが開始される場合
inc
プロミスキャスモードオープナーの数をカウントします。
disable
デバイスが promiscuity モードを脱退する場合

名前

probe::netdev.transmit — ネットワークデバイスの送信バッファー

概要

netdev.transmit 

protocol
このパケットのプロトコル (include/linux/if_ether.h で定義されます)。
length
送信バッファーの長さ。
truesize
送信されるデータのサイズ
dev_name
デバイスの名前(例: eth0、ath1)。

名前

probe::netdev.unregister — デバイスの登録が解除されると呼び出されます。

概要

netdev.unregister 

dev_name
登録解除されるデバイス

名前

probe::netfilter.arp.forward — - 転送する各 ARP パケットに対して呼び出されます。

概要

netfilter.arp.forward 

ar_hln
ハードウェアアドレスの長さ
nf_stop
「stop」決定を示すために使用される定数
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
ar_tha
Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
nf_accept
'accept' の判断を示すのに使用する定数
ar_data
ARP パケットデータリージョンのアドレス(ヘッダーの後)
indev_name
ネットワークデバイスパケットの名前(既知の場合)
arphdr
ARP ヘッダーのアドレス
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
nf_repeat
「繰り返し」を伝えるために使用される定数
length
パケットバッファーの内容の長さ(バイト単位)。
nf_stolen
「stolen」決定を示すために使用される定数
ar_pln
プロトコルアドレスの長さ
pf
プロトコルファミリー -- 常に arp
ar_sha
Ethernet+IP のみ(ar_pro==0x800): ソースハードウェア(MAC)アドレス
indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
nf_drop
「drop」決定を示すために使用される定数
ar_pro
プロトコルアドレスの形式
ar_sip
Ethernet+IP のみ(ar_pro==0x800): ソース IP アドレス
ar_tip
Ethernet+IP のみ(ar_pro==0x800): ターゲット IP アドレス
ar_hrd
ハードウェアアドレスの形式
nf_queue
「キュー」決定を示すために使用される定数
ar_op
ARP opcode(コマンド)

名前

probe::netfilter.arp.in — - 各受信 ARP パケットに対して呼び出されます。

概要

netfilter.arp.in 

ar_hln
ハードウェアアドレスの長さ
nf_stop
「stop」決定を示すために使用される定数
nf_accept
'accept' の判断を示すのに使用する定数
ar_tha
Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
ar_data
ARP パケットデータリージョンのアドレス(ヘッダーの後)
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
nf_repeat
「繰り返し」を伝えるために使用される定数
arphdr
ARP ヘッダーのアドレス
indev_name
ネットワークデバイスパケットの名前(既知の場合)
nf_stolen
「stolen」決定を示すために使用される定数
length
パケットバッファーの内容の長さ(バイト単位)。
ar_pln
プロトコルアドレスの長さ
ar_sha
Ethernet+IP のみ(ar_pro==0x800): ソースハードウェア(MAC)アドレス
pf
プロトコルファミリー -- 常に arp
nf_drop
「drop」決定を示すために使用される定数
ar_pro
プロトコルアドレスの形式
ar_sip
Ethernet+IP のみ(ar_pro==0x800): ソース IP アドレス
indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
ar_tip
Ethernet+IP のみ(ar_pro==0x800): ターゲット IP アドレス
ar_hrd
ハードウェアアドレスの形式
ar_op
ARP opcode(コマンド)
nf_queue
「キュー」決定を示すために使用される定数

名前

probe::netfilter.arp.out — - 各送信 ARP パケットに対して呼び出されます。

概要

netfilter.arp.out 

ar_tip
Ethernet+IP のみ(ar_pro==0x800): ターゲット IP アドレス
nf_drop
「drop」決定を示すために使用される定数
ar_pro
プロトコルアドレスの形式
ar_sip
Ethernet+IP のみ(ar_pro==0x800): ソース IP アドレス
indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
ar_sha
Ethernet+IP のみ(ar_pro==0x800): ソースハードウェア(MAC)アドレス
pf
プロトコルファミリー -- 常に arp
ar_op
ARP opcode(コマンド)
nf_queue
「キュー」決定を示すために使用される定数
ar_hrd
ハードウェアアドレスの形式
nf_accept
'accept' の判断を示すのに使用する定数
ar_data
ARP パケットデータリージョンのアドレス(ヘッダーの後)
ar_tha
Ethernet+IP only (ar_pro==0x800): target hardware (MAC) address
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
nf_stop
「stop」決定を示すために使用される定数
ar_hln
ハードウェアアドレスの長さ
ar_pln
プロトコルアドレスの長さ
nf_stolen
「stolen」決定を示すために使用される定数
length
パケットバッファーの内容の長さ(バイト単位)。
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
nf_repeat
「繰り返し」を伝えるために使用される定数
arphdr
ARP ヘッダーのアドレス
indev_name
ネットワークデバイスパケットの名前(既知の場合)

名前

probe::netfilter.bridge.forward — 他のコンピューターが宛先の着信パケットで呼び出されます。

概要

netfilter.bridge.forward 

br_fd
フォワード遅延(1/256 秒)
nf_queue
「キュー」決定を示すために使用される定数
brhdr
ブリッジヘッダーのアドレス
br_mac
ブリッジ MAC アドレス
indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
br_msg
メッセージ年齢(1/256 秒)
nf_drop
「drop」決定を示すために使用される定数
llcproto_stp
ブリッジスパニングツリープロトコルパケットの署名に使用される定数
pf
プロトコルファミリー -- 常にブリッジ
br_vid
プロトコルのバージョン識別子
indev_name
ネットワークデバイスパケットの名前(既知の場合)
br_poid
ポート ID
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
nf_repeat
「繰り返し」を伝えるために使用される定数
llcpdu
LLC プロトコルデータユニットのアドレス
length
パケットバッファーの内容の長さ(バイト単位)。
nf_stolen
「stolen」決定を示すために使用される定数
br_cost
ブリッジを root へ送信しないコストの合計
nf_stop
「stop」決定を示すために使用される定数
br_type
BPDU タイプ
br_max
最大エイジ(1 /256 秒)
br_htime
1 /256 秒の Hello 時間
protocol
パケットプロトコル
br_bid
ブリッジのアイデンティティー
br_rmac
ルートブリッジ MAC アドレス
br_prid
プロトコル識別子
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
br_flags
BPDU フラグ
nf_accept
'accept' の判断を示すのに使用する定数
br_rid
root ブリッジのアイデンティティー

名前

probe::netfilter.bridge.local_in — ローカルコンピューター用のブリッジパケットで呼び出される。

概要

netfilter.bridge.local_in 

llcproto_stp
ブリッジスパニングツリープロトコルパケットの署名に使用される定数
pf
プロトコルファミリー -- 常にブリッジ
nf_drop
「drop」決定を示すために使用される定数
br_msg
メッセージ年齢(1/256 秒)
indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
nf_queue
「キュー」決定を示すために使用される定数
br_fd
フォワード遅延(1/256 秒)
br_mac
ブリッジ MAC アドレス
brhdr
ブリッジヘッダーのアドレス
br_rid
root ブリッジのアイデンティティー
nf_accept
'accept' の判断を示すのに使用する定数
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
br_flags
BPDU フラグ
br_prid
プロトコル識別子
br_htime
1 /256 秒の Hello 時間
protocol
パケットプロトコル
br_bid
ブリッジのアイデンティティー
br_rmac
ルートブリッジ MAC アドレス
br_max
最大エイジ(1 /256 秒)
br_type
BPDU タイプ
nf_stop
「stop」決定を示すために使用される定数
br_cost
ブリッジを root へ送信しないコストの合計
nf_stolen
「stolen」決定を示すために使用される定数
length
パケットバッファーの内容の長さ(バイト単位)。
llcpdu
LLC プロトコルデータユニットのアドレス
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
nf_repeat
「繰り返し」を伝えるために使用される定数
indev_name
ネットワークデバイスパケットの名前(既知の場合)
br_poid
ポート ID
br_vid
プロトコルのバージョン識別子

名前

probe::netfilter.bridge.local_out — ローカルプロセスから送信されるブリッジパケットで呼び出される。

概要

netfilter.bridge.local_out 

indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
br_msg
メッセージ年齢(1/256 秒)
nf_drop
「drop」決定を示すために使用される定数
llcproto_stp
ブリッジスパニングツリープロトコルパケットの署名に使用される定数
pf
プロトコルファミリー -- 常にブリッジ
br_fd
フォワード遅延(1/256 秒)
nf_queue
「キュー」決定を示すために使用される定数
brhdr
ブリッジヘッダーのアドレス
br_mac
ブリッジ MAC アドレス
br_flags
BPDU フラグ
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
nf_accept
'accept' の判断を示すのに使用する定数
br_rid
root ブリッジのアイデンティティー
nf_stop
「stop」決定を示すために使用される定数
br_type
BPDU タイプ
br_max
最大エイジ(1 /256 秒)
protocol
パケットプロトコル
br_htime
1 /256 秒の Hello 時間
br_bid
ブリッジのアイデンティティー
br_rmac
ルートブリッジ MAC アドレス
br_prid
プロトコル識別子
llcpdu
LLC プロトコルデータユニットのアドレス
length
パケットバッファーの内容の長さ(バイト単位)。
nf_stolen
「stolen」決定を示すために使用される定数
br_cost
ブリッジを root へ送信しないコストの合計
br_vid
プロトコルのバージョン識別子
indev_name
ネットワークデバイスパケットの名前(既知の場合)
br_poid
ポート ID
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
nf_repeat
「繰り返し」を伝えるために使用される定数

名前

probe::netfilter.bridge.post_routing — - ブリッジングパケットがネットワークに到達する前に呼び出されます。

概要

netfilter.bridge.post_routing 

llcproto_stp
ブリッジスパニングツリープロトコルパケットの署名に使用される定数
pf
プロトコルファミリー -- 常にブリッジ
indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
nf_drop
「drop」決定を示すために使用される定数
br_msg
メッセージ年齢(1/256 秒)
nf_queue
「キュー」決定を示すために使用される定数
br_mac
ブリッジ MAC アドレス
br_fd
フォワード遅延(1/256 秒)
brhdr
ブリッジヘッダーのアドレス
br_htime
1 /256 秒の Hello 時間
br_bid
ブリッジのアイデンティティー
br_rmac
ルートブリッジ MAC アドレス
protocol
パケットプロトコル
br_prid
プロトコル識別子
br_type
BPDU タイプ
nf_stop
「stop」決定を示すために使用される定数
br_max
最大エイジ(1 /256 秒)
br_rid
root ブリッジのアイデンティティー
br_flags
BPDU フラグ
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
nf_accept
'accept' の判断を示すのに使用する定数
indev_name
ネットワークデバイスパケットの名前(既知の場合)
br_poid
ポート ID
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
nf_repeat
「繰り返し」を伝えるために使用される定数
br_vid
プロトコルのバージョン識別子
length
パケットバッファーの内容の長さ(バイト単位)。
nf_stolen
「stolen」決定を示すために使用される定数
br_cost
ブリッジを root へ送信しないコストの合計
llcpdu
LLC プロトコルデータユニットのアドレス

名前

probe::netfilter.bridge.pre_routing — - ブリッジングパケットがルーティングされる前に呼び出されます。

概要

netfilter.bridge.pre_routing 

llcproto_stp
ブリッジスパニングツリープロトコルパケットの署名に使用される定数
pf
プロトコルファミリー -- 常にブリッジ
nf_drop
「drop」決定を示すために使用される定数
br_msg
メッセージ年齢(1/256 秒)
indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
brhdr
ブリッジヘッダーのアドレス
nf_queue
「キュー」決定を示すために使用される定数
br_fd
フォワード遅延(1/256 秒)
br_mac
ブリッジ MAC アドレス
br_rid
root ブリッジのアイデンティティー
nf_accept
'accept' の判断を示すのに使用する定数
br_flags
BPDU フラグ
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
br_prid
プロトコル識別子
br_rmac
ルートブリッジ MAC アドレス
br_htime
1 /256 秒の Hello 時間
br_bid
ブリッジのアイデンティティー
protocol
パケットプロトコル
br_max
最大エイジ(1 /256 秒)
br_type
BPDU タイプ
nf_stop
「stop」決定を示すために使用される定数
br_cost
ブリッジを root へ送信しないコストの合計
nf_stolen
「stolen」決定を示すために使用される定数
length
パケットバッファーの内容の長さ(バイト単位)。
llcpdu
LLC プロトコルデータユニットのアドレス
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
nf_repeat
「繰り返し」を伝えるために使用される定数
indev_name
ネットワークデバイスパケットの名前(既知の場合)
br_poid
ポート ID
br_vid
プロトコルのバージョン識別子

名前

probe::netfilter.ip.forward — 他のコンピューターに対処した受信 IP パケットで呼び出されます。

概要

netfilter.ip.forward 

saddr
ソース IP アドレスを表す文字列
sport
TCP または UDP ソースポート(ipv4 のみ)
daddr
宛先 IP アドレスを表す文字列
pf
プロトコルファミリー -- ipv4 または ipv6のいずれか
indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
nf_drop
「drop」決定を示すために使用される定数
nf_queue
「キュー」決定を示すために使用される定数
dport
TCP または UDP 宛先ポート(ipv4 のみ)
iphdr
IP ヘッダーのアドレス
fin
TCP FIN フラグ(プロトコルが TCP の場合、ipv4 のみ)
ack
TCP ACK フラグ(プロトコルが TCP の場合、ipv4 のみ)
syn
TCP SYN フラグ(プロトコルが TCP の場合、ipv4 のみ)
ipproto_udp
パケットプロトコルが UDP であることを示すために使用される定数
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
nf_accept
'accept' の判断を示すのに使用する定数
rst
TCP RST フラグ(プロトコルが TCP の場合、ipv4 のみ)
protocol
ドライバーからのパケットプロトコル(ipv4 のみ)
nf_stop
「stop」決定を示すために使用される定数
length
パケットバッファーの内容の長さ(バイト単位)。
nf_stolen
「stolen」決定を示すために使用される定数
urg
TCP URG フラグ(プロトコルが TCP の場合、ipv4 のみ)
psh
TCP PSH フラグ(プロトコルが TCP の場合、ipv4 のみ)
ipproto_tcp
パケットプロトコルが TCP であることを示すために使用される定数
indev_name
ネットワークデバイスパケットの名前(既知の場合)
family
IP アドレスファミリー
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
nf_repeat
「繰り返し」を伝えるために使用される定数

名前

probe::netfilter.ip.local_in — ローカルコンピューターに対処される受信 IP パケットで呼び出されます。

概要

netfilter.ip.local_in 

nf_stolen
「stolen」決定を示すために使用される定数
length
パケットバッファーの内容の長さ(バイト単位)。
urg
TCP URG フラグ(プロトコルが TCP の場合、ipv4 のみ)
psh
TCP PSH フラグ(プロトコルが TCP の場合、ipv4 のみ)
nf_repeat
「繰り返し」を伝えるために使用される定数
family
IP アドレスファミリー
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
ipproto_tcp
パケットプロトコルが TCP であることを示すために使用される定数
indev_name
ネットワークデバイスパケットの名前(既知の場合)
nf_accept
'accept' の判断を示すのに使用する定数
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
protocol
ドライバーからのパケットプロトコル(ipv4 のみ)
rst
TCP RST フラグ(プロトコルが TCP の場合、ipv4 のみ)
nf_stop
「stop」決定を示すために使用される定数
nf_queue
「キュー」決定を示すために使用される定数
dport
TCP または UDP 宛先ポート(ipv4 のみ)
iphdr
IP ヘッダーのアドレス
fin
TCP FIN フラグ(プロトコルが TCP の場合、ipv4 のみ)
syn
TCP SYN フラグ(プロトコルが TCP の場合、ipv4 のみ)
ack
TCP ACK フラグ(プロトコルが TCP の場合、ipv4 のみ)
ipproto_udp
パケットプロトコルが UDP であることを示すために使用される定数
saddr
ソース IP アドレスを表す文字列
sport
TCP または UDP ソースポート(ipv4 のみ)
pf
プロトコルファミリー -- ipv4 または ipv6のいずれか
daddr
宛先 IP アドレスを表す文字列
nf_drop
「drop」決定を示すために使用される定数
indev
入力デバイスを表す net_device のアドレス。不明な場合は 0

名前

probe::netfilter.ip.local_out — 送信 IP パケットで呼び出される。

概要

netfilter.ip.local_out 

dport
TCP または UDP 宛先ポート(ipv4 のみ)
nf_queue
「キュー」決定を示すために使用される定数
syn
TCP SYN フラグ(プロトコルが TCP の場合、ipv4 のみ)
ipproto_udp
パケットプロトコルが UDP であることを示すために使用される定数
ack
TCP ACK フラグ(プロトコルが TCP の場合、ipv4 のみ)
fin
TCP FIN フラグ(プロトコルが TCP の場合、ipv4 のみ)
iphdr
IP ヘッダーのアドレス
saddr
ソース IP アドレスを表す文字列
sport
TCP または UDP ソースポート(ipv4 のみ)
indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
nf_drop
「drop」決定を示すために使用される定数
daddr
宛先 IP アドレスを表す文字列
pf
プロトコルファミリー -- ipv4 または ipv6のいずれか
psh
TCP PSH フラグ(プロトコルが TCP の場合、ipv4 のみ)
urg
TCP URG フラグ(プロトコルが TCP の場合、ipv4 のみ)
length
パケットバッファーの内容の長さ(バイト単位)。
nf_stolen
「stolen」決定を示すために使用される定数
ipproto_tcp
パケットプロトコルが TCP であることを示すために使用される定数
indev_name
ネットワークデバイスパケットの名前(既知の場合)
nf_repeat
「繰り返し」を伝えるために使用される定数
family
IP アドレスファミリー
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
nf_accept
'accept' の判断を示すのに使用する定数
nf_stop
「stop」決定を示すために使用される定数
rst
TCP RST フラグ(プロトコルが TCP の場合、ipv4 のみ)
protocol
ドライバーからのパケットプロトコル(ipv4 のみ)

名前

probe::netfilter.ip.post_routing — 発信 IP パケットがコンピューターを離れる直前に呼び出されます。

概要

netfilter.ip.post_routing 

family
IP アドレスファミリー
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
nf_repeat
「繰り返し」を伝えるために使用される定数
ipproto_tcp
パケットプロトコルが TCP であることを示すために使用される定数
indev_name
ネットワークデバイスパケットの名前(既知の場合)
nf_stolen
「stolen」決定を示すために使用される定数
length
パケットバッファーの内容の長さ(バイト単位)。
urg
TCP URG フラグ(プロトコルが TCP の場合、ipv4 のみ)
psh
TCP PSH フラグ(プロトコルが TCP の場合、ipv4 のみ)
rst
TCP RST フラグ(プロトコルが TCP の場合、ipv4 のみ)
protocol
ドライバーからのパケットプロトコル(ipv4 のみ)
nf_stop
「stop」決定を示すために使用される定数
nf_accept
'accept' の判断を示すのに使用する定数
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
iphdr
IP ヘッダーのアドレス
fin
TCP FIN フラグ(プロトコルが TCP の場合、ipv4 のみ)
syn
TCP SYN フラグ(プロトコルが TCP の場合、ipv4 のみ)
ipproto_udp
パケットプロトコルが UDP であることを示すために使用される定数
ack
TCP ACK フラグ(プロトコルが TCP の場合、ipv4 のみ)
nf_queue
「キュー」決定を示すために使用される定数
dport
TCP または UDP 宛先ポート(ipv4 のみ)
pf
プロトコルファミリー -- ipv4 または ipv6のいずれか
daddr
宛先 IP アドレスを表す文字列
nf_drop
「drop」決定を示すために使用される定数
indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
saddr
ソース IP アドレスを表す文字列
sport
TCP または UDP ソースポート(ipv4 のみ)

名前

probe::netfilter.ip.pre_routing — IP パケットルーティング前に呼び出されます。

概要

netfilter.ip.pre_routing 

indev
入力デバイスを表す net_device のアドレス。不明な場合は 0
nf_drop
「drop」決定を示すために使用される定数
daddr
宛先 IP アドレスを表す文字列
pf
プロトコルファミリー - 'ipv4' または 'ipv6' のいずれか
sport
TCP または UDP ソースポート(ipv4 のみ)
saddr
ソース IP アドレスを表す文字列
syn
TCP SYN フラグ(プロトコルが TCP の場合、ipv4 のみ)
ipproto_udp
パケットプロトコルが UDP であることを示すために使用される定数
ack
TCP ACK フラグ(プロトコルが TCP の場合、ipv4 のみ)
iphdr
IP ヘッダーのアドレス
fin
TCP FIN フラグ(プロトコルが TCP の場合、ipv4 のみ)
dport
TCP または UDP 宛先ポート(ipv4 のみ)
nf_queue
「キュー」決定を示すために使用される定数
nf_stop
「stop」決定を示すために使用される定数
rst
TCP RST フラグ(プロトコルが TCP の場合、ipv4 のみ)
protocol
ドライバーからのパケットプロトコル(ipv4 のみ)
outdev_name
ネットワークデバイスパケットの名前は(既知の場合)にルーティングされます。
nf_accept
'accept' の判断を示すのに使用する定数
indev_name
ネットワークデバイスパケットの名前(既知の場合)
ipproto_tcp
パケットプロトコルが TCP であることを示すために使用される定数
family
IP アドレスファミリー
nf_repeat
「繰り返し」を伝えるために使用される定数
outdev
出力デバイスを表す net_device のアドレス。不明な場合は 0
psh
TCP PSH フラグ(プロトコルが TCP の場合、ipv4 のみ)
urg
TCP URG フラグ(プロトコルが TCP の場合、ipv4 のみ)
length
パケットバッファーの内容の長さ(バイト単位)。
nf_stolen
「stolen」決定を示すために使用される定数

名前

probe::sunrpc.clnt.bind_new_program — 新しい RPC プログラムを既存のクライアントにバインドする

概要

sunrpc.clnt.bind_new_program 

progname
新しい RPC プログラムの名前
old_prog
古い RPC プログラムの数
vers
新しい RPC プログラムのバージョン
servername
サーバーマシン名
old_vers
古い RPC プログラムのバージョン
old_progname
古い RPC プログラムの名前
prog
新しい RPC プログラムの数

名前

probe::sunrpc.clnt.call_async — 非同期 RPC コールを作成します。

概要

sunrpc.clnt.call_async 

progname
RPC プログラム名
prot
IP プロトコル番号
proc
この RPC 呼び出しの手順番号
procname
この RPC 呼び出しの手順名
vers
RPC プログラムのバージョン番号
flags
フラグ
servername
サーバーマシン名
xid
現在の転送 ID
port
ポート番号
prog
RPC プログラム番号
dead
このクライアントが放棄されているかどうか

名前

probe::sunrpc.clnt.call_sync — 同期 RPC コールの作成

概要

sunrpc.clnt.call_sync 

xid
現在の転送 ID
servername
サーバーマシン名
flags
フラグ
dead
このクライアントが放棄されているかどうか
prog
RPC プログラム番号
port
ポート番号
prot
IP プロトコル番号
progname
RPC プログラム名
vers
RPC プログラムのバージョン番号
proc
この RPC 呼び出しの手順番号
procname
この RPC 呼び出しの手順名

名前

probe::sunrpc.clnt.clone_client — RPC クライアント構造のクローン

概要

sunrpc.clnt.clone_client 

authflavor
認証フレーバー
port
ポート番号
progname
RPC プログラム名
servername
サーバーマシン名
prot
IP プロトコル番号
prog
RPC プログラム番号
vers
RPC プログラムのバージョン番号

名前

probe::sunrpc.clnt.create_client — RPC クライアントの作成

概要

sunrpc.clnt.create_client 

servername
サーバーマシン名
prot
IP プロトコル番号
authflavor
認証フレーバー
port
ポート番号
progname
RPC プログラム名
vers
RPC プログラムのバージョン番号
prog
RPC プログラム番号

名前

probe::sunrpc.clnt.restart_call — 非同期 RPC コールを再起動します。

概要

sunrpc.clnt.restart_call 

servername
サーバーマシン名
tk_priority
タスクの優先度
xid
転送 ID
prog
RPC プログラム番号
tk_runstate
タスク実行のステータス
tk_pid
タスクのデバッグ ID
tk_flags
タスクフラグ

名前

probe::sunrpc.clnt.shutdown_client — RPC クライアントのシャットダウン

概要

sunrpc.clnt.shutdown_client 

om_queue
xmit に対してキューに置かれた jiffies
clones
クローン数
vers
RPC プログラムのバージョン番号
om_rtt
RPC RTT jiffies
om_execute
RPC 実行 jiffies
rpccnt
RPC 呼び出しの数
progname
RPC プログラム名
authflavor
認証フレーバー
prot
IP プロトコル番号
prog
RPC プログラム番号
om_bytes_recv
バイト数
om_bytes_sent
バイトのバイト数
port
ポート番号
om_ntrans
RPC 送信の数
netreconn
reconnections の数
om_ops
操作の回数
tasks
参照数
servername
サーバーマシン名

名前

probe::sunrpc.sched.delay — RPC タスクの遅延

概要

sunrpc.sched.delay 

prog
RPC 呼び出しのプログラム番号
xid
RPC 呼び出しの転送 ID
delay
遅延時間
vers
RPC 呼び出しのプログラムバージョン
tk_flags
タスクのフラグ
tk_pid
タスクのデバッグ ID
prot
RPC 呼び出しの IP プロトコル

名前

probe::sunrpc.sched.execute — RPC 'scheduler' の実行

概要

sunrpc.sched.execute 

tk_pid
タスクのデバッグ ID
prot
RPC 呼び出しの IP プロトコル
vers
RPC 呼び出しのプログラムバージョン
tk_flags
タスクのフラグ
xid
RPC 呼び出しの転送 ID
prog
RPC 呼び出しのプログラム番号

名前

probe::sunrpc.sched.new_task — 指定されたクライアントに新しいタスクを作成します。

概要

sunrpc.sched.new_task 

xid
RPC 呼び出しの転送 ID
prog
RPC 呼び出しのプログラム番号
prot
RPC 呼び出しの IP プロトコル
vers
RPC 呼び出しのプログラムバージョン
tk_flags
タスクのフラグ

名前

probe::sunrpc.sched.release_task — タスクに関連付けられた全リソースを解放します。

概要

sunrpc.sched.release_task 

prot
RPC 呼び出しの IP プロトコル
tk_flags
タスクのフラグ
vers
RPC 呼び出しのプログラムバージョン
xid
RPC 呼び出しの転送 ID
prog
RPC 呼び出しのプログラム番号

説明

rpc_release_task 特定のカーネルに関する関数が見つからなかった場合があります。そのため、見つからない場合は「-1」だけを返します。

名前

probe::sunrpc.svc.create — RPC サービスの作成

概要

sunrpc.svc.create 

bufsize
バッファーサイズ
pg_nvers
サポート対象バージョン数
progname
プログラムの名前
prog
プログラムの数

名前

probe::sunrpc.svc.destroy — RPC サービスの破棄

概要

sunrpc.svc.destroy 

sv_nrthreads
同時スレッド数
sv_name
サービス名
sv_prog
プログラムの数
rpcbadauth
認証の失敗に対してデロップした要求の数
rpcbadfmt
不適切な形式でドロップされた要求の数
rpccnt
有効な RPC 要求の数
sv_progname
プログラムの名前
netcnt
受信した RPC 要求の数
nettcpconn
許容される TCP 接続の数

名前

probe::sunrpc.svc.drop — ドロップ RPC 要求

概要

sunrpc.svc.drop 

rq_xid
要求の転送 ID
sv_name
サービス名
rq_prot
必須の IP プロトコル
peer_ip
要求元となるピアアドレス
rq_proc
リクエストの手順番号
rq_vers
要求のプログラムバージョン
rq_prog
要求のプログラム番号。

名前

probe::sunrpc.svc.process — RPC 要求を処理します。

概要

sunrpc.svc.process 

rq_prog
要求のプログラム番号。
rq_vers
要求のプログラムバージョン
peer_ip
要求元となるピアアドレス
rq_proc
リクエストの手順番号
sv_prog
プログラムの数
rq_prot
必須の IP プロトコル
sv_name
サービス名
rq_xid
要求の転送 ID
sv_nrthreads
同時スレッド数

名前

probe::sunrpc.svc.recv — 任意のソケットで次の RPC 要求をリッスンする

概要

sunrpc.svc.recv 

sv_nrthreads
同時スレッド数
sv_name
サービス名
sv_prog
プログラムの数
timeout
データ待ちのタイムアウト

名前

probe::sunrpc.svc.register — ローカルの portmapper で RPC サービスを登録

概要

sunrpc.svc.register 

sv_name
サービス名
prog
プログラムの数
port
ポート番号
progname
プログラムの名前
prot
IP プロトコル番号

説明

protoport が両方 0 の場合は、サービスの登録を解除します。

名前

probe::sunrpc.svc.send — RPC クライアントへの返信を返します。

概要

sunrpc.svc.send 

rq_vers
要求のプログラムバージョン
rq_prog
要求のプログラム番号。
rq_prot
必須の IP プロトコル
sv_name
サービス名
rq_xid
要求の転送 ID
peer_ip
要求元となるピアアドレス
rq_proc
リクエストの手順番号

名前

probe::tcp.disconnect — TCP ソケットの接続解除

概要

tcp.disconnect 

flags
TCP フラグ (FIN など)
daddr
宛先 IP アドレスを表す文字列
sport
TCP ソースポート。
family
IP アドレスファミリー
name
このプローブの名前
saddr
ソース IP アドレスを表す文字列
dport
TCP 宛先ポート。
sock
ネットワークソケット。

コンテキスト

TCP を接続解除するプロセス

名前

probe::tcp.disconnect.return — TCP ソケットの接続解除が完了しました。

概要

tcp.disconnect.return 

name
このプローブの名前
ret
エラーコード(0: エラーなし)

コンテキスト

TCP を接続解除するプロセス

名前

probe::tcp.receive — TCP パケットが受信されたときに呼び出されます。

概要

tcp.receive 

psh
TCP PSH フラグ
ack
TCP ACK フラグ
daddr
宛先 IP アドレスを表す文字列
syn
TCP SYN フラグ
rst
TCP RST フラグ
sport
TCP ソースポート。
protocol
ドライバーからのパケットプロトコル
urg
TCP URG フラグ
name
プローブポイントの名前
family
IP アドレスファミリー
fin
TCP FIN フラグ
saddr
ソース IP アドレスを表す文字列
iphdr
IP ヘッダーアドレス
dport
TCP 宛先ポート

名前

probe::tcp.recvmsg — TCP メッセージの受信。

概要

tcp.recvmsg 

daddr
宛先 IP アドレスを表す文字列
sport
TCP ソースポート。
size
受信バイト数。
name
このプローブの名前
family
IP アドレスファミリー
saddr
ソース IP アドレスを表す文字列
sock
ネットワークソケット
dport
TCP 宛先ポート

コンテキスト

TCP メッセージを受信するプロセス。

名前

probe::tcp.recvmsg.return — TCP メッセージの受信が完了しました。

概要

tcp.recvmsg.return 

saddr
ソース IP アドレスを表す文字列
dport
TCP 宛先ポート。
daddr
宛先 IP アドレスを表す文字列
size
エラーが発生した場合の受信バイト数またはエラーコード。
sport
TCP ソースポート。
family
IP アドレスファミリー
name
このプローブの名前

コンテキスト

TCP メッセージを受信するプロセス。

名前

probe::tcp.sendmsg — TCP メッセージの送信。

概要

tcp.sendmsg 

family
IP アドレスファミリー
sock
ネットワークソケット
name
このプローブの名前
size
送信バイト数。

コンテキスト

TCP メッセージを送信するプロセス。

名前

probe::tcp.sendmsg.return — TCP メッセージの送信が行われました。

概要

tcp.sendmsg.return 

name
このプローブの名前
size
エラーが発生した場合の送信バイト数またはエラーコード。

コンテキスト

TCP メッセージを送信するプロセス。

名前

probe::tcp.setsockopt — 呼び出し先 setsockopt

概要

tcp.setsockopt 

optstr
optname を人間が判読できる形式に解決します。
name
このプローブの名前
family
IP アドレスファミリー
level
ソケットオプションが処理されるレベル。
optname
TCP ソケットオプション (TCP_NODELAY や TCP_MAXSEG など)
sock
ネットワークソケット
optlen
値のアクセスに使用します。 setsockopt

コンテキスト

setsockopt を呼び出すプロセス。

名前

probe::tcp.setsockopt.return — from から返します。 setsockopt

概要

tcp.setsockopt.return 

ret
エラーコード (0: エラーなし)
name
このプローブの名前

コンテキスト

setsockopt を呼び出すプロセス。

名前

probe::udp.disconnect — プロセスが UDP の接続解除を要求したときに実行されます。

概要

udp.disconnect 

daddr
宛先 IP アドレスを表す文字列
sock
プロセスにより使用されるネットワークソケット
saddr
ソース IP アドレスを表す文字列
sport
UDP ソースポート
flags
フラグ (FIN など)
dport
UDP 宛先ポート
name
このプローブの名前
family
IP アドレスファミリー

コンテキスト

UDP の接続解除を要求するプロセス

名前

probe::udp.disconnect.return — UDP が正常に接続解除されました。

概要

udp.disconnect.return 

saddr
ソース IP アドレスを表す文字列
sport
UDP ソースポート
dport
UDP 宛先ポート
family
IP アドレスファミリー
name
このプローブの名前
daddr
宛先 IP アドレスを表す文字列
ret
エラーコード(0: エラーなし)

コンテキスト

UDP の接続解除を要求したプロセス

名前

probe::udp.recvmsg — UDP メッセージが受信されたときに必ず実行されます

概要

udp.recvmsg 

size
プロセスが受信したバイト数
sock
プロセスにより使用されるネットワークソケット
daddr
宛先 IP アドレスを表す文字列
family
IP アドレスファミリー
name
このプローブの名前
dport
UDP 宛先ポート
saddr
ソース IP アドレスを表す文字列
sport
UDP ソースポート

コンテキスト

UDP メッセージを受信したプロセス

名前

probe::udp.recvmsg.return — UDP メッセージの受信試行が完了したときに必ず実行されます

概要

udp.recvmsg.return 

name
このプローブの名前
family
IP アドレスファミリー
dport
UDP 宛先ポート
saddr
ソース IP アドレスを表す文字列
sport
UDP ソースポート
size
プロセスが受信したバイト数
daddr
宛先 IP アドレスを表す文字列

コンテキスト

UDP メッセージを受信したプロセス

名前

probe::udp.sendmsg — プロセスが UDP メッセージを送信するときに必ず実行されます。

概要

udp.sendmsg 

daddr
宛先 IP アドレスを表す文字列
sock
プロセスにより使用されるネットワークソケット
size
プロセスが送信したバイト数
saddr
ソース IP アドレスを表す文字列
sport
UDP ソースポート
family
IP アドレスファミリー
name
このプローブの名前
dport
UDP 宛先ポート

コンテキスト

UDP メッセージを送信したプロセス

名前

probe::udp.sendmsg.return — UDP メッセージの送信試行が完了したときに必ず実行されます

概要

udp.sendmsg.return 

size
プロセスが送信したバイト数
name
このプローブの名前

コンテキスト

UDP メッセージを送信したプロセス

第15章 ソケット tapset

この種類のプローブポイントは、ソケットの活動をプローブするために使用されます。以下のプローブポイントが含まれます。

名前

function::inet_get_ip_source — カーネルソケットの IP ソースアドレス文字列を指定

概要

inet_get_ip_source:string(sock:long)

引数

sock
カーネルソケットへのポインター

名前

function::inet_get_local_port — カーネルソケットにローカルポート番号を提供

概要

inet_get_local_port:long(sock:long)

引数

sock
カーネルソケットへのポインター

名前

function::sock_fam_num2str — プロトコルファミリー番号が指定される場合、文字列表現を返します。

概要

sock_fam_num2str:string(family:long)

引数

family
ファミリー番号

名前

function::sock_fam_str2num — プロトコルファミリー名(文字列)が指定される場合、対応するプロトコルファミリー番号を返します。

概要

sock_fam_str2num:long(family:string)

引数

family
ファミリー名

名前

function::sock_prot_num2str — プロトコル番号が指定される場合、文字列表現を返します。

概要

sock_prot_num2str:string(proto:long)

引数

proto
プロトコル番号

名前

function::sock_prot_str2num — プロトコル名(文字列)が指定される場合、対応するプロトコル番号を返します。

概要

sock_prot_str2num:long(proto:string)

引数

proto
プロトコル名

名前

function::sock_state_num2str — ソケット状態番号が指定される場合、文字列表現を返します。

概要

sock_state_num2str:string(state:long)

引数

state
状態番号

名前

function::sock_state_str2num — ソケット状態文字列が指定される場合、対応する状態番号を返します。

概要

sock_state_str2num:long(state:string)

引数

state
状態名

名前

probe::socket.aio_read — メッセージの受信 sock_aio_read

概要

socket.aio_read 

flags
ソケットフラグ値
type
ソケットタイプの値。
size
メッセージサイズ (バイト単位)
family
プロトコルファミリー値
name
このプローブの名前
protocol
プロトコル値
state
ソケット状態値

コンテキスト

メッセージの送信者

説明

sock_aio_read 関数からの、ソケットでのメッセージ受信の開始時に実行されます。

名前

probe::socket.aio_read.return — 受信したメッセージの結論 sock_aio_read

概要

socket.aio_read.return 

family
プロトコルファミリー値
protocol
プロトコル値
name
このプローブの名前
state
ソケット状態値
success
正常に受信されたかどうか (1 = yes、0 = no)。(1 = yes、0 = no)
flags
ソケットフラグ値
type
ソケットタイプの値。
size
受信されるメッセージのサイズ(バイト単位)またはエラーコード(success = 0 の場合)

コンテキスト

メッセージ受信者。

説明

sock_aio_read 関数からの、ソケットでのメッセージ受信の終了時に実行されます。

名前

probe::socket.aio_write — メッセージが送信: sock_aio_write

概要

socket.aio_write 

flags
ソケットフラグ値
type
ソケットタイプの値。
size
メッセージサイズ (バイト単位)
family
プロトコルファミリー値
protocol
プロトコル値
name
このプローブの名前
state
ソケット状態値

コンテキスト

メッセージの送信者

説明

sock_aio_write 関数から、ソケットでのメッセージ送信の開始時に実行されます。

名前

probe::socket.aio_write.return — 送信メッセージの結論 sock_aio_write

概要

socket.aio_write.return 

state
ソケット状態値
success
正常に受信されたかどうか (1 = yes、0 = no)。(1 = yes、0 = no)
family
プロトコルファミリー値
protocol
プロトコル値
name
このプローブの名前
type
ソケットタイプの値。
size
受信されるメッセージのサイズ (バイト単位) またはエラーコード (success = 0 の場合)
flags
ソケットフラグ値

コンテキスト

メッセージ受信者。

説明

sock_aio_write 関数から、ソケットでのメッセージ送信の終了時に実行されます。

名前

probe::socket.close — ソケットを閉じます

概要

socket.close 

type
ソケットタイプの値。
flags
ソケットフラグ値
state
ソケット状態値
family
プロトコルファミリー値
name
このプローブの名前
protocol
プロトコル値

コンテキスト

リクエスター (ユーザープロセスまたはカーネル)

説明

ソケットのクローズ開始時に実行されます。

名前

probe::socket.close.return — ソケットのクローズから返します。

概要

socket.close.return 

name
このプローブの名前

コンテキスト

リクエスター (ユーザープロセスまたはカーネル)

説明

ソケットのクローズ終了時に実行されます。

名前

probe::socket.create — ソケットの作成。

概要

socket.create 

type
ソケットタイプの値。
name
このプローブの名前
protocol
プロトコル値
family
プロトコルファミリー値
requester
ユーザープロセスまたはカーネルによる要求(1 = kernel, 0 = user)

コンテキスト

リクエスター (リクエスター変数を参照)

説明

ソケットの作成開始時に実行されます。

名前

probe::socket.create.return — ソケットの作成から返します。

概要

socket.create.return 

success
ソケットが正常に作成されたかどうか(1 = yes、0 = no)
family
プロトコルファミリー値
requester
ユーザープロセスまたはカーネルによる要求 (1 = kernel, 0 = user)
name
このプローブの名前
protocol
プロトコル値
type
ソケットタイプの値。
err
success == 0 の場合のエラーコード

コンテキスト

リクエスター (ユーザープロセスまたはカーネル)

説明

ソケットの作成終了時に実行されます

名前

probe::socket.read_iter — メッセージの受信 sock_read_iter

概要

socket.read_iter 

state
ソケット状態値
protocol
プロトコル値
name
このプローブの名前
family
プロトコルファミリー値
size
メッセージサイズ (バイト単位)
type
ソケットタイプの値。
flags
ソケットフラグ値

コンテキスト

メッセージの送信者

説明

sock_read_iter 関数からの、ソケットでのメッセージ受信の開始時に実行されます。

名前

probe::socket.read_iter.return — 受信したメッセージの結論 sock_read_iter

概要

socket.read_iter.return 

flags
ソケットフラグ値
type
ソケットタイプの値。
size
受信されるメッセージのサイズ (バイト単位) またはエラーコード (success = 0 の場合)
family
プロトコルファミリー値
name
このプローブの名前
protocol
プロトコル値
state
ソケット状態値
success
正常に受信されたかどうか (1 = yes、0 = no)。(1 = yes、0 = no)

コンテキスト

メッセージ受信者。

説明

sock_read_iter 関数からの、ソケットでのメッセージ受信の終了時に実行されます。

名前

probe::socket.readv — メッセージの受信 sock_readv

概要

socket.readv 

state
ソケット状態値
family
プロトコルファミリー値
protocol
プロトコル値
name
このプローブの名前
type
ソケットタイプの値。
size
メッセージサイズ (バイト単位)
flags
ソケットフラグ値

コンテキスト

メッセージの送信者

説明

sock_readv 関数からの、ソケットでのメッセージ受信の開始時に実行されます。

名前

probe::socket.readv.return — メッセージの受信の結論 sock_readv

概要

socket.readv.return 

name
このプローブの名前
protocol
プロトコル値
family
プロトコルファミリー値
success
正常に受信されたかどうか (1 = yes、0 = no)。(1 = yes、0 = no)
state
ソケット状態値
flags
ソケットフラグ値
size
受信されるメッセージのサイズ (バイト単位) またはエラーコード (success = 0 の場合)
type
ソケットタイプの値

コンテキスト

メッセージ受信者。

説明

sock_readv 関数からの、ソケットでのメッセージ受信の終了時に実行されます。

名前

probe::socket.receive — ソケットで受信されたメッセージ

概要

socket.receive 

name
このプローブの名前
protocol
プロトコル値
family
プロトコルファミリー値
success
正常に送信されたか?(1 = yes、0 = no)
state
ソケット状態値
flags
ソケットフラグ値
size
受信されるメッセージのサイズ (バイト単位) またはエラーコード (success = 0 の場合)
type
ソケットタイプの値

コンテキスト

メッセージ受信者

名前

probe::socket.recvmsg — メッセージをソケットで受信中です。

概要

socket.recvmsg 

family
プロトコルファミリー値
name
このプローブの名前
protocol
プロトコル値
state
ソケット状態値
flags
ソケットフラグ値
type
ソケットタイプの値。
size
メッセージサイズ(バイト単位)

コンテキスト

メッセージ受信者。

説明

sock_recvmsg 関数からの、ソケットでのメッセージ受信の開始時に実行されます。

名前

probe::socket.recvmsg.return — ソケットで受信中のメッセージから返します

概要

socket.recvmsg.return 

family
プロトコルファミリー値
name
このプローブの名前
protocol
プロトコル値
state
ソケット状態値
success
正常に受信されたかどうか (1 = yes、0 = no)。(1 = yes、0 = no)
flags
ソケットフラグ値
type
ソケットタイプの値。
size
受信されるメッセージのサイズ(バイト単位)またはエラーコード(success = 0 の場合)

コンテキスト

メッセージ受信者。

説明

sock_recvmsg 関数からの、ソケットでのメッセージ受信の終了時に実行されます。

名前

probe::socket.send — ソケットで送信されたメッセージ。

概要

socket.send 

flags
ソケットフラグ値
size
送信されるメッセージのサイズ (バイト単位) またはエラーコード (success = 0 の場合)
type
ソケットタイプの値。
protocol
プロトコル値
name
このプローブの名前
family
プロトコルファミリー値
success
正常に送信されたか?(1 = yes、0 = no)
state
ソケット状態値

コンテキスト

メッセージの送信者

名前

probe::socket.sendmsg — メッセージをソケットで送信中です。

概要

socket.sendmsg 

family
プロトコルファミリー値
name
このプローブの名前
protocol
プロトコル値
state
ソケット状態値
flags
ソケットフラグ値
type
ソケットタイプの値。
size
メッセージサイズ(バイト単位)

コンテキスト

メッセージの送信者

説明

sock_sendmsg 関数から、ソケットでのメッセージ送信の開始時に実行されます。

名前

probe::socket.sendmsg.return — socket.sendmsg から返します。

概要

socket.sendmsg.return 

type
ソケットタイプの値。
size
送信されるメッセージのサイズ (バイト単位) またはエラーコード (success = 0 の場合)
flags
ソケットフラグ値
state
ソケット状態値
success
正常に送信されたか?(1 = yes、0 = no)
family
プロトコルファミリー値
protocol
プロトコル値
name
このプローブの名前

コンテキスト

メッセージの送信者。

説明

sock_sendmsg 関数から、ソケットでのメッセージ送信の終了時に実行されます。

名前

probe::socket.write_iter — メッセージが送信: sock_write_iter

概要

socket.write_iter 

state
ソケット状態値
family
プロトコルファミリー値
protocol
プロトコル値
name
このプローブの名前
type
ソケットタイプの値。
size
メッセージサイズ (バイト単位)
flags
ソケットフラグ値

コンテキスト

メッセージの送信者

説明

sock_write_iter 関数から、ソケットでのメッセージ送信の開始時に実行されます。

名前

probe::socket.write_iter.return — 送信メッセージの結論 sock_write_iter

概要

socket.write_iter.return 

type
ソケットタイプの値。
size
受信されるメッセージのサイズ (バイト単位) またはエラーコード (success = 0 の場合)
flags
ソケットフラグ値
state
ソケット状態値
success
正常に受信されたかどうか (1 = yes、0 = no)。(1 = yes、0 = no)
family
プロトコルファミリー値
protocol
プロトコル値
name
このプローブの名前

コンテキスト

メッセージ受信者。

説明

sock_write_iter 関数から、ソケットでのメッセージ送信の終了時に実行されます。

名前

probe::socket.writev — 経由で送信されたメッセージ socket_writev

概要

socket.writev 

state
ソケット状態値
protocol
プロトコル値
name
このプローブの名前
family
プロトコルファミリー値
size
メッセージサイズ (バイト単位)
type
ソケットタイプの値。
flags
ソケットフラグ値

コンテキスト

メッセージの送信者

説明

sock_writev 関数から、ソケットでのメッセージ送信の開始時に実行されます。

名前

probe::socket.writev.return — 送信されたメッセージの結論 socket_writev

概要

socket.writev.return 

success
正常に送信されたか?(1 = yes、0 = no)
state
ソケット状態値
name
このプローブの名前
protocol
プロトコル値
family
プロトコルファミリー値
size
送信されるメッセージのサイズ (バイト単位) またはエラーコード (success = 0 の場合)
type
ソケットタイプの値。
flags
ソケットフラグ値

コンテキスト

メッセージ受信者。

説明

sock_writev 関数から、ソケットでのメッセージ送信の終了時に実行されます。

第16章 SNMP 情報 tapset

この種類のプローブポイントは、SNMP タイプの情報を提供します。これには、以下の関数およびプローブポイントが含まれます。

名前

function::ipmib_filter_key — ipmib.* プローブのデフォルトフィルター関数

概要

ipmib_filter_key:long(skb:long,op:long,SourceIsLocal:long)

引数

skb
struct sk_buff へのポインター
op
skb がフィルターを渡すとカウントされる値
SourceIsLocal
1 はローカル操作で、0 はローカル以外の操作です。

説明

この関数はデフォルトのフィルター機能です。ユーザーは、この機能を独自の機能に置き換えることができます。ユーザー指定のフィルター関数は、skb の値に基づいてインデックスキーを返します。戻り値 0 は、この特定の skb をカウントしないことを意味します。

名前

function::ipmib_get_proto — プロトコル値の取得

概要

ipmib_get_proto:long(skb:long)

引数

skb
構造の sk_buff へのポインター

説明

skb からプロトコル値を返します。

名前

function::ipmib_local_addr — ローカル ip アドレスを取得します。

概要

ipmib_local_addr:long(skb:long,SourceIsLocal:long)

引数

skb
構造の sk_buff へのポインター
SourceIsLocal
ローカル操作かどうかを示すフラグ

説明

ローカルの ip アドレス skb を返します。

名前

function::ipmib_remote_addr — remote ip アドレスを取得します。

概要

ipmib_remote_addr:long(skb:long,SourceIsLocal:long)

引数

skb
構造の sk_buff へのポインター
SourceIsLocal
ローカル操作かどうかを示すフラグ

説明

skb からリモート ip アドレスを返します。

名前

function::ipmib_tcp_local_port — local tcp ポートを取得します。

概要

ipmib_tcp_local_port:long(skb:long,SourceIsLocal:long)

引数

skb
構造の sk_buff へのポインター
SourceIsLocal
ローカル操作かどうかを示すフラグ

説明

skb からローカルの tcp ポートを返します。

名前

function::ipmib_tcp_remote_port — リモート tcp ポートを取得します。

概要

ipmib_tcp_remote_port:long(skb:long,SourceIsLocal:long)

引数

skb
構造の sk_buff へのポインター
SourceIsLocal
ローカル操作かどうかを示すフラグ

説明

skb からリモート tcp ポートを返します。

名前

function::linuxmib_filter_key — linuxmib.* プローブのデフォルトフィルター関数

概要

linuxmib_filter_key:long(sk:long,op:long)

引数

sk
struct sock へのポインター
op
sk がフィルターを渡すとカウントされる値

説明

この関数はデフォルトのフィルター機能です。ユーザーは、この機能を独自の機能に置き換えることができます。ユーザー指定のフィルター関数は、sk の値に基づいてインデックスキーを返します。戻り値 0 は、この特定の sk をカウントしないことを意味します。

名前

function::tcpmib_filter_key — tcpmib.* プローブのデフォルトフィルター関数

概要

tcpmib_filter_key:long(sk:long,op:long)

引数

sk
作用として有効な構造ポイントへのポインター。
op
sk がフィルターを渡すとカウントされる値

説明

この関数はデフォルトのフィルター機能です。ユーザーは、この機能を独自の機能に置き換えることができます。ユーザー指定のフィルター関数は、sk の値に基づいてインデックスキーを返します。戻り値 0 は、この特定の sk をカウントしないことを意味します。

名前

function::tcpmib_get_state — ソケットの状態の取得

概要

tcpmib_get_state:long(sk:long)

引数

sk
struct sock へのポインター

説明

struct sock から sk_state を返します。

名前

function::tcpmib_local_addr — ソースアドレスを取得します。

概要

tcpmib_local_addr:long(sk:long)

引数

sk
構造の inet_sock へのポインター

説明

ホスト順序で構造の inet_sock から saddr を返します。

名前

function::tcpmib_local_port — ローカルポートを取得します。

概要

tcpmib_local_port:long(sk:long)

引数

sk
構造の inet_sock へのポインター

説明

ホスト順序で構造の inet_sock から sport を返します。

名前

function::tcpmib_remote_addr — リモートアドレスを取得します。

概要

tcpmib_remote_addr:long(sk:long)

引数

sk
構造の inet_sock へのポインター

説明

ホスト順序で構造の inet_sock から daddr を返します。

名前

function::tcpmib_remote_port — リモートポートの取得

概要

tcpmib_remote_port:long(sk:long)

引数

sk
構造の inet_sock へのポインター

説明

ホスト順序で構造の inet_sock から dport を返します。

名前

probe::ipmib.ForwDatagrams — 転送されたパケット数

概要

ipmib.ForwDatagrams 

op
カウンターに追加する値(デフォルト値 1)
skb
動作している構造の sk_buff へのポインター

説明

skb で指定されたパケットは、関数 ipmib_filter_key でフィルターされます。パケットがフィルターに合格したのがグローバル ForwDatagrams でカウントされている場合(SNMP の MIB IPSTATS_MIB_OUTFORWDATAGRAMS と同等)。

名前

probe::ipmib.FragFails — 断続的なデータグラムのカウント

概要

ipmib.FragFails 

op
カウンターに追加する値(デフォルト値 1)
skb
動作している構造の sk_buff へのポインター

説明

skb で指定されたパケットは、関数 ipmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな FragFails でカウントされます(SNMP の MIB IPSTATS_MIB_FRAGFAILS と同等)。

名前

probe::ipmib.FragOKs — データグラムの断片を正常にカウント

概要

ipmib.FragOKs 

skb
動作している構造の sk_buff へのポインター
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 ipmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな FragOKs でカウントされます(SNMP の MIB IPSTATS_MIB_FRAGOKS と同等)。

名前

probe::ipmib.InAddrErrors — 不正なアドレスを持つパケットをカウントします。

概要

ipmib.InAddrErrors 

skb
動作している構造の sk_buff へのポインター
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 ipmib_filter_key でフィルターされます。パケットがフィルターに合格したかどうかは、グローバルな InAddrErrors でカウントされます(SNMP の MIB IPSTATS_MIB_INADDRERRORS と同等)。

名前

probe::ipmib.InDiscards — 受信パケットを破棄する数

概要

ipmib.InDiscards 

op
カウンターに追加する値(デフォルト値 1)
skb
動作している構造の sk_buff へのポインター

説明

skb で指定されたパケットは、関数 ipmib_filter_key でフィルターされます。パケットがフィルターを通過する際には、グローバルな InDiscards でカウントされます(SNMP の MIB STATS_MIB_INDISCARDS と同等)。

名前

probe::ipmib.InNoRoutes — ソケットと一致するエラータパケットをカウントします。

概要

ipmib.InNoRoutes 

op
カウンターに追加する値(デフォルト値 1)
skb
動作している構造の sk_buff へのポインター

説明

skb で指定されたパケットは、関数 ipmib_filter_key でフィルターされます。パケットがフィルターに合格した値がグローバル InNoRoutes でカウントされる場合(SNMP の MIB IPSTATS_INNOROUTES と同等)。

名前

probe::ipmib.InReceives — 送信元パケットのカウント

概要

ipmib.InReceives 

skb
動作している構造の sk_buff へのポインター
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 ipmib_filter_key でフィルターされます。パケットがフィルターに合格したかどうかは、グローバルな InReceives でカウントされます(SNMP の MIB IPSTATS_MIB_INRECEIVES と同等)。

名前

probe::ipmib.InUnknownProtos — プロトのないパケットをカウントします。

概要

ipmib.InUnknownProtos 

skb
動作している構造の sk_buff へのポインター
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 ipmib_filter_key でフィルターされます。パケットがフィルターを通過する際には、グローバルな InUnknownProtos でカウントされます(SNMP の MIB IPSTATS_MIB_INUNKNOWNPROTOS と同等)。

名前

probe::ipmib.OutRequests — パケットを送信する要求をカウント

概要

ipmib.OutRequests 

skb
動作している構造の sk_buff へのポインター
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 ipmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな OutRequests でカウントされます(SNMP の MIB IPSTATS_OUTREQUESTS と同等)。

名前

probe::ipmib.ReasmReqds — パケットフラグメント再構築リクエストの数

概要

ipmib.ReasmReqds 

op
カウンターに追加する値(デフォルト値 1)
skb
動作している構造の sk_buff へのポインター

説明

skb で指定されたパケットは、関数 ipmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな ReasmReqds でカウントされます(SNMP の MIB IPSTATS_MIB_REASMREQDS と同等)。

名前

probe::ipmib.ReasmTimeout — Count Reassembly Timeouts

概要

ipmib.ReasmTimeout 

op
カウンターに追加する値(デフォルト値 1)
skb
動作している構造の sk_buff へのポインター

説明

skb で指定されたパケットは、関数 ipmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな ReasmTimeout でカウントされます(SNMP の MIB IPSTATS_MIB_REASMTIMEOUT と同等)。

名前

probe::linuxmib.DelayedACKs — 遅延されたサックの数

概要

linuxmib.DelayedACKs 

op
カウンターに追加する値(デフォルト値 1)
sk
作用として有効な構造ポイントへのポインター。

説明

skb で指定されたパケットは、関数 linuxmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな DelayedACKs でカウントされます(SNMP の MIB LINUX_MIB_DELAYEDACKS と同等)。

名前

probe::linuxmib.ListenDrops — 破棄された conn 要求の数

概要

linuxmib.ListenDrops 

sk
作用として有効な構造ポイントへのポインター。
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 linuxmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな ListenDrops でカウントされます(SNMP の MIB LINUX_MIB_LISTENDROPS と同等)。

名前

probe::linuxmib.ListenOverflows — リッスンキューのオーバーフロー回数

概要

linuxmib.ListenOverflows 

sk
作用として有効な構造ポイントへのポインター。
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 linuxmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな ListenOverflows でカウントされます(SNMP の MIB LINUX_MIB_LISTENOVERFLOWS と同等)。

名前

probe::linuxmib.TCPMemoryPressures — メモリーの不足が発生した回数

概要

linuxmib.TCPMemoryPressures 

sk
作用として有効な構造ポイントへのポインター。
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 linuxmib_filter_key でフィルターされます。パケットがフィルターを通過する際には、グローバルな TCPMemoryPressures でカウントされます(SNMP の MIB LINUX_MIB_TCPMEMORYPRESSURES と同等)。

名前

probe::tcpmib.ActiveOpens — ソケットのアクティブなオープンをカウント

概要

tcpmib.ActiveOpens 

op
カウンターに追加する値(デフォルト値 1)
sk
作用として有効な構造ポイントへのポインター。

説明

skb で指定されたパケットは、関数 tcpmib_filter_key でフィルターされます。パケットがフィルターを通過する際には、グローバルな ActiveOpens でカウントされます(SNMP の MIB TCP_MIB_ACTIVEOPENS と同等)。

名前

probe::tcpmib.AttemptFails — ソケットを開くために失敗した回数

概要

tcpmib.AttemptFails 

op
カウンターに追加する値(デフォルト値 1)
sk
作用として有効な構造ポイントへのポインター。

説明

skb で指定されたパケットは、関数 tcpmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな AttemptFails でカウントされます(SNMP の MIB TCP_MIB_ATTEMPTFAILS と同等)。

名前

probe::tcpmib.CurrEstab — オープンソケットの数の更新

概要

tcpmib.CurrEstab 

sk
作用として有効な構造ポイントへのポインター。
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 tcpmib_filter_key でフィルターされます。パケットがフィルターを通過する際には、グローバルな CurrEstab でカウントされます(SNMP の MIB TCP_MIB_CURRESTAB)と同等です。

名前

probe::tcpmib.EstabResets — ソケットのリセットをカウントします。

概要

tcpmib.EstabResets 

sk
作用として有効な構造ポイントへのポインター。
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 tcpmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな EstabResets でカウントされます(SNMP の MIB TCP_MIB_ESTABRESETS と同等)。

名前

probe::tcpmib.InSegs — 着信 tcp セグメントをカウント

概要

tcpmib.InSegs 

op
カウンターに追加する値(デフォルト値 1)
sk
作用として有効な構造ポイントへのポインター。

説明

skb で参照されるパケットは、関数 tcpmib_filter_key (または tcp v4)でフィルターされます。ipmib_filter_keyパケットがフィルターを通過する際に、グローバルな InSegs でカウントされます(SNMP の MIB TCP_MIB_INSEGS と同等)。

名前

probe::tcpmib.OutRsts — リセットパケットの送信をカウントします。

概要

tcpmib.OutRsts 

sk
作用として有効な構造ポイントへのポインター。
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 tcpmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな OutRsts でカウントされます(SNMP の MIB TCP_MIB_OUTRSTS と同等)。

名前

probe::tcpmib.OutSegs — TCP セグメントの送信をカウントします。

概要

tcpmib.OutSegs 

sk
作用として有効な構造ポイントへのポインター。
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 tcpmib_filter_key でフィルターされます。パケットがフィルターを通過する際に、グローバルな OutSegs でカウントされます(SNMP の MIB TCP_MIB_OUTSEGS と同等)。

名前

probe::tcpmib.PassiveOpens — ソケットのパッシブ作成をカウントします。

概要

tcpmib.PassiveOpens 

sk
作用として有効な構造ポイントへのポインター。
op
カウンターに追加する値(デフォルト値 1)

説明

skb で指定されたパケットは、関数 tcpmib_filter_key でフィルターされます。パケットがフィルターに合格した値がグローバル PassiveOpens でカウントされる場合(SNMP の MIB TCP_MIB_PASSIVEOPENS と同等)。

名前

probe::tcpmib.RetransSegs — TCP セグメントの再転送をカウントします。

概要

tcpmib.RetransSegs 

op
カウンターに追加する値(デフォルト値 1)
sk
作用として有効な構造ポイントへのポインター。

説明

skb で指定されたパケットは、関数 tcpmib_filter_key でフィルターされます。パケットがフィルターに合格したかどうかは、グローバルな RetransSegs でカウントされます(SNMP の MIB TCP_RETRANSSEGS と同等)。

第17章 カーネルプロセス tapset

この種類のプローブポイントは、プロセス関連のアクティビティーをプローブするために使用されます。以下のプローブポイントが含まれます。

名前

function::get_loadavg_index — 指定された間隔の負荷平均を取得します。

概要

get_loadavg_index:long(indx:long)

引数

indx
キャプチャーする負荷平均間隔。

説明

この関数は、指定した間隔で負荷平均を返します。3 つの負荷平均値 1、5 分、15 分平均は、avenrun 配列のインデックス 0、1 と 2 に対応します。「linux/sched.h」を参照してください。ロード平均の省略された整数部分が返されることに注意してください。指定したインデックスが範囲外の場合、エラーメッセージと例外がスローされます。

名前

function::sprint_loadavg — Pretty 出力された負荷平均を報告します

概要

sprint_loadavg:string()

引数

なし

説明

通常の形式は、5 分、5 分、15 分の負荷平均で 3 桁の数字で文字列を返します。

名前

function::target_set_pid — 目的のプロセスからの PID descend?

概要

target_set_pid(pid:)

引数

pid
問い合わせるプロセスの PID。

説明

この関数は、指定の process-id がターゲットセット内にあるかどうかを返します。これは、最上位の target プロセスの子かどうかです。

名前

function::target_set_report — ターゲットセットに関するレポートを出力します。

概要

target_set_report()

引数

なし

説明

この関数は、ターゲットセットのプロセスに関するレポートと、その差異を出力します。

名前

probe::kprocess.create — 新規プロセスまたはスレッドが正常に作成されたときに必ず実行されます

概要

kprocess.create 

new_tid
新規作成されたタスクの TID
new_pid
新規に作成されたプロセスの PID。

コンテキスト

作成されたプロセスの親。

説明

フォーク (またはシステムコールのいずれか) または新しいカーネルスレッドの結果、新規プロセスが正常に作成されたときに必ず実行されます。

名前

probe::kprocess.exec — 新しいプログラムの実行の試行。

概要

kprocess.exec 

filename
新しい実行可能ファイルへのパス
name
システムコールの名前(SystemTapv2.5+)
args
0th arg(SystemTap v2.5+)を含む新しい実行ファイルに渡す引数
argstr
ファイル名を含む文字列(ただし 0 番目の arg を除く)とそれに続く引数が含まれる文字列(SystemTap v2.5+)

コンテキスト

exec の呼び出し元。

説明

プロセスが新規プログラムの実行を試みるたびに実行されます。SystemTap v2.5+ で syscall.execve プローブのエイリアス。

名前

probe::kprocess.exec_complete — 新しいプログラムの実行から返されます。

概要

kprocess.exec_complete 

retstr
errno の文字列表現(SystemTap v2.5+)
success
実行が成功したかどうかを示すブール値。
errno
実行の結果返されたエラー番号
name
システムコールの名前(SystemTapv2.5+)

コンテキスト

成功した場合は、新しい実行可能ファイルのコンテキスト。失敗した場合は、呼び出し元のコンテキストに留まります。

説明

実行呼び出しの完了時に実行されます。SystemTap v2.5+ の syscall.execve.return プローブのエイリアス。

名前

probe::kprocess.exit — プロセスを終了します。

概要

kprocess.exit 

code
プロセスの終了コード。

コンテキスト

終了するプロセス。

説明

プロセスが終了すると実行されます。この後で kprocess.release が常に実行されます。ただし、プロセスがゾンビ状態で待機している場合、kprocess.release の実行は遅延することがあります。

名前

probe::kprocess.release — リリースされるプロセス。

概要

kprocess.release 

released_tid
リリースされるタスクの TID
task
リリースされるプロセスのタスクハンドル。
released_pid
リリースされるプロセスの PID。
pid
互換性のための released_pid と同じ(非推奨)

コンテキスト

親のコンテキスト (このプロセスの終了を通知したい場合。それ以外の場合は、プロセス自体のコンテキスト)。

説明

プロセスがカーネルからリリースされると実行されます。これは kprocess.exit に従うことがありますが、プロセスが異常状態で待機している場合に若干遅れる可能性があります。

名前

probe::kprocess.start — 新規プロセスを開始します。

概要

kprocess.start 

なし

コンテキスト

新規に作成されたプロセス。

説明

新規プロセスが実行を開始する直前に実行されます。

第18章 シグナルtapset

この種類のプローブポイントは、シグナルアクティビティーをプローブするために使用されます。以下のプローブポイントが含まれます。

名前

function::get_sa_flags — sa_flags の数値を返します。

概要

get_sa_flags:long(act:long)

引数

act
クエリーする sigaction のアドレス。

名前

function::get_sa_handler — sa_handler の数値を返します。

概要

get_sa_handler:long(act:long)

引数

act
クエリーする sigaction のアドレス。

名前

function::is_sig_blocked — シグナルが現在ブロックされている場合は 1 を返します。そうでない場合は 0 を返します。

概要

is_sig_blocked:long(task:long,sig:long)

引数

task
クエリーする task_struct のアドレス。
sig
テストするシグナル番号。

名前

function::sa_flags_str — sa_flags の文字列表現を返します。

概要

sa_flags_str:string(sa_flags:long)

引数

sa_flags
文字列に変換するフラグのセット。

名前

function::sa_handler_str — sa_handler の文字列表現を返します。

概要

sa_handler_str(handler:)

引数

handler
文字列に変換する sa_handler。

説明

sa_handler の文字列表現を返します。SIG_DFL、SIG_IGN、または SIG_ERR ではない場合は、ハンドラーのアドレスを返します。

名前

function::signal_str — シグナル番号の文字列表現を返します。

概要

signal_str(num:)

引数

num
文字列に変換するシグナル番号。

名前

function::sigset_mask_str — sigset の文字列表現を返します。

概要

sigset_mask_str:string(mask:long)

引数

mask
文字列に変換する sigset。

名前

probe::signal.check_ignored — シグナルが無視されたことを確認します。

概要

signal.check_ignored 

sig_pid
シグナルを受信するプロセスの PID
sig
シグナルの番号
sig_name
シグナルの文字列表現
pid_name
シグナルを受信するプロセスの名前

名前

probe::signal.check_ignored.return — シグナルが無視されたことの確認が完了しました。

概要

signal.check_ignored.return 

name
プローブポイントの名前
retstr
値を文字列として返します。

名前

probe::signal.checkperm — 送信されたシグナルについての確認が実行されます。

概要

signal.checkperm 

pid_name
シグナルを受信するプロセスの名前
task
シグナル受信者のタスクハンドル
sig_name
シグナルの文字列表現
sinfo
siginfo 構造のアドレス
name
プローブポイントの名前
sig
シグナルの番号
si_code
シグナルタイプを示します。
sig_pid
シグナルを受信するプロセスの PID

名前

probe::signal.checkperm.return — 送信されたシグナルの確認実行が完了しました。

概要

signal.checkperm.return 

retstr
値を文字列として返します。
name
プローブポイントの名前

名前

probe::signal.do_action — シグナルアクションを調査または変更します。

概要

signal.do_action 

sigact_addr
シグナルに関連付けられた新しい sigaction 構造のアドレス。
sig_name
シグナルの文字列表現
sa_mask
シグナルの新しいマスク。
sa_handler
シグナルの新しいハンドラー。
oldsigact_addr
シグナルに関連付けられた古い sigaction 構造のアドレス
sig
調査または変更するシグナル。
name
プローブポイントの名前

名前

probe::signal.do_action.return — シグナルアクションの調査または変更が完了しました。

概要

signal.do_action.return 

retstr
値を文字列として返します。
name
プローブポイントの名前

名前

probe::signal.flush — タスクのすべての保留中シグナルを破棄します。

概要

signal.flush 

task
破棄を実行するプロセスのタスクハンドラー
pid_name
破棄を実行するタスクに関連付けられたプロセスの名前
name
プローブポイントの名前
sig_pid
破棄を実行するタスクに関連付けられたプロセスの PID

名前

probe::signal.force_segv — IGSEGV の送信を強制実行します

概要

signal.force_segv 

sig_name
シグナルの文字列表現
pid_name
シグナルを受信するプロセスの名前
sig_pid
シグナルを受信するプロセスの PID
name
プローブポイントの名前
sig
シグナルの番号

名前

probe::signal.force_segv.return — SIGSEGV の送信の強制実行が完了しました。

概要

signal.force_segv.return 

retstr
値を文字列として返します。
name
プローブポイントの名前

名前

probe::signal.handle — 呼び出されるシグナルハンドラー。

概要

signal.handle 

name
プローブポイントの名前
sig
シグナルハンドラーを呼び出したシグナル番号。
sinfo
siginfo テーブルのアドレス。
ka_addr
シグナルに関連付けられた k_sigaction テーブルのアドレス
sig_mode
シグナルがユーザーモードシグナルであるか、またはカーネルモードシグナルであるかを示します。
sig_code
siginfo シグナルの si_code 値。
regs
kernel-mode スタック領域のアドレス(SystemTap 2.1 で非推奨)
oldset_addr
ブロックされたシグナルのビットマスクアレイのアドレス(SystemTap 2.1 で非推奨)
sig_name
シグナルの文字列表現

名前

probe::signal.handle.return — シグナルハンドラーの呼び出しが完了しました。

概要

signal.handle.return 

retstr
値を文字列として返します。
name
プローブポイントの名前。

説明

(SystemTap 2.1 で非推奨)

名前

probe::signal.pending — 保留中シグナルの調査

概要

signal.pending 

name
プローブポイントの名前
sigset_size
ユーザー空間シグナルセットのサイズ
sigset_add
ユーザー空間シグナルセットのアドレス (sigset_t)

説明

このプローブは、特定のスレッドへの配信を保留しているシグナルのセットを調べるために使用されます。これは通常、do_sigpending カーネル関数を実行する際に発生します。

名前

probe::signal.pending.return — 保留中のシグナルの調査が完了しました。

概要

signal.pending.return 

name
プローブポイントの名前
retstr
値を文字列として返します。

名前

probe::signal.procmask — ブロックされたシグナルを調査または変更します。

概要

signal.procmask 

name
プローブポイントの名前
sigset
sigset_t に設定する実際の値 (正しいか?)。
how
ブロックされたシグナルを変更する方法を示します。値は SIG_BLOCK=0 (シグナルをブロックする場合)、SIG_UNBLOCK=1 (シグナルをブロック解除する場合)、および SIG_SETMASK=2 (シグナルマスクを設定する場合) です。
sigset_addr
実装するシグナルセット(sigset_t)のアドレス。
oldsigset_addr
シグナルセット(sigset_t)の古いアドレス。

名前

probe::signal.procmask.return — ブロックされたシグナルの調査または変更が完了しました。

概要

signal.procmask.return 

retstr
値を文字列として返します。
name
プローブポイントの名前

名前

probe::signal.send — プロセスに送信されるシグナル。

概要

signal.send 

send2queue
シグナルが既存の sigqueue に送信されたかどうかを示します(SystemTap 2.1 で非推奨)
pid_name
シグナル受信者の名前
task
シグナル受信者のタスクハンドル
sig_name
シグナルの文字列表現
sinfo
siginfo 構造のアドレス
shared
シグナルがスレッドグループで共有されているかどうかを示します。
si_code
シグナルタイプを示します。
name
シグナルを送信するために使用される関数の名前。
sig
シグナルの番号
sig_pid
シグナルを受信するプロセスの PID

コンテキスト

シグナルの送信者。

名前

probe::signal.send.return — プロセスに送信されるシグナル(SystemTap 2.1 で非推奨)

概要

signal.send.return 

shared
送信されたシグナルがスレッドグループで共有されているかどうかを示します。
name
シグナルを送信するために使用される関数の名前。
retstr
__group_send_sig_info、specific_send_sig_info、または send_sigqueue への戻り値
send2queue
送信されたシグナルが既存の sigqueue に送信されたかどうかを示します。

コンテキスト

シグナルの送信者 (正しいか?)。

説明

__group_send_sig_info と specific_send_sig_info の戻り値は以下のとおりです。
0 -- シグナルがプロセスに正常に送られます。つまり、(1)は受信側プロセスによって無視されました。(2)これは非RT シグナルで、システムはすでにキューに格納されており、シグナルが受信側プロセスの sigqueue に正常に追加されました。
-EAGAIN -- 受信側プロセスの sigqueue はオーバーフロー状態です。シグナルは RT であり、kill 以外の関数を使用しているユーザーによって送信されました。
send_group_sigqueue と send_sigqueue の戻り値は以下のとおりです。
0 -- シグナルは受信側プロセスの sigqueue に正常に追加されました。または、SI_TIMER エントリーがすでにキューに格納されています (この場合、オーバーランした数は単純に増分されます)。
1 -- シグナルが受信側プロセスによって無視されました。
-1 -- (send_sigqueue のみ) タスクは終了中とマークされ、* posix_timer_event をグループリーダーにリダイレクトすることが許可されます。

名前

probe::signal.send_sig_queue — シグナルをプロセスのキューに格納します。

概要

signal.send_sig_queue 

sig
キューに格納されたシグナル
name
プローブポイントの名前
sig_pid
シグナルがキューに格納されるプロセスの PID
pid_name
シグナルがキューに格納されるプロセスの名前
sig_name
シグナルの文字列表現
sigqueue_addr
シグナルキューのアドレス

名前

probe::signal.send_sig_queue.return — プロセスのキューへのシグナルの格納が完了しました。

概要

signal.send_sig_queue.return 

retstr
値を文字列として返します。
name
プローブポイントの名前

名前

probe::signal.sys_tgkill — スレッドグループに kill シグナルを送信します。

概要

signal.sys_tgkill 

sig_pid
kill シグナルを受信するスレッドの PID
sig
プロセスに送信される特定の kill シグナル。
name
プローブポイントの名前
pid_name
シグナル受信者の名前
sig_name
シグナルの文字列表現
tgid
kill シグナルを受信するスレッドのスレッドグループ ID
task
シグナル受信者のタスクハンドル

説明

tgkill 呼び出しは tkill に似ています。ただし、呼び出し元は、シグナルを送信するスレッドのスレッドグループ ID を指定できます。これにより、TID の再利用を回避できます。

名前

probe::signal.sys_tgkill.return — スレッドグループへの kill シグナルの送信が完了しました。

概要

signal.sys_tgkill.return 

name
プローブポイントの名前
retstr
__group_send_sig_info に対する戻り値。

名前

probe::signal.sys_tkill — スレッドに kill シグナルを送信します。

概要

signal.sys_tkill 

sig_pid
kill シグナルを受信するプロセスの PID
sig
プロセスに送信される特定のシグナル
name
プローブポイントの名前
pid_name
シグナル受信者の名前
sig_name
シグナルの文字列表現
task
シグナル受信者のタスクハンドル

説明

tkill 呼び出しは kill(2) と似ていますが、特定のスレッドグループ内のプロセスを対象にすることができます。このようなプロセスは、一意のスレッド ID (TID) でターゲットとなります。

名前

probe::signal.syskill — プロセスに kill シグナルを送信します。

概要

signal.syskill 

sig_pid
シグナルを受信するプロセスの PID
sig
プロセスに送信される特定のシグナル
name
プローブポイントの名前
pid_name
シグナル受信者の名前
sig_name
シグナルの文字列表現
task
シグナル受信者のタスクハンドル

名前

probe::signal.syskill.return — kill シグナルの送信が完了しました。

概要

signal.syskill.return 

なし

名前

probe::signal.systkill.return — スレッドへの kill シグナルの送信が完了しました。

概要

signal.systkill.return 

retstr
__group_send_sig_info に対する戻り値。
name
プローブポイントの名前

名前

probe::signal.wakeup — シグナルによりウェイクするスリープ状態のプロセス

概要

signal.wakeup 

pid_name
ウェイクするプロセスの名前。
resume
STOPPED または TRACED 状態のタスクをウェイクアップするかどうかを示します。
state_mask
ウェイクするタスク状態のマスクを示す文字列表現。使用できる値は TASK_INTERRUPTIBLE、TASK_STOPPED、TASK_TRACED、TASK_WAKEKILL、および TASK_INTERRUPTIBLE です。
sig_pid
ウェイクするプロセスの PID

第19章 Errno Tapset

この一連の関数は、errno number 値の処理に使用されます。これには、以下の機能が含まれます。

名前

function::errno_str — エラーコードに関連付けられたシンボリック文字列

概要

errno_str:string(err:long)

引数

err
受け取ったエラー番号

説明

この関数は、数字 2 の ENOENT、または 3333 などの範囲外の値の E#3333 などの giver エラーコードに関連付けられたシンボリック文字列を返します。

名前

function::return_str — 戻り値を文字列としてフォーマットします。

概要

return_str:string(format:long,ret:long)

引数

format
戻り値のタイプを決定するための変数
ret
戻り値(通常は $return

説明

この関数は syscall tapset により使用され、文字列を返します。8 進数は 1(16 進数の場合は 2、8 進数の場合は 3)に設定します。
この機能は、returnstr よりも推奨される点に注意してください。

名前

function::returnstr — 戻り値を文字列としてフォーマットします。

概要

returnstr:string(format:long)

引数

format
戻り値のタイプを決定するための変数

説明

この関数は nd_syscall tapset で使用され、文字列を返します。8 進数は 1(16 進数の場合は 2、8 進数の場合は 3)に設定します。
この関数は、dwarfless プローブ(つまり 'kprobe.function(foo)' でのみ使用する必要があります)。その他のプローブは return_str を使用する必要があります。

名前

function::returnval — プローブ関数の戻り値が利用可能

概要

returnval:long()

引数

なし

説明

関数値が通常返される register の値を返します。$return が利用できないプローブで使用できます。これは、実際の戻り値の推測のみで、完全に間違っています。通常、dwarfless プローブでのみ使用されます。

第20章 RLIMIT tapset

この一連の関数は、リソース制限(RLIMIT_*)を定義する文字列を処理し、対応するリソース制限数を返すために使用されます。これには、以下の機能が含まれます。

名前

function::rlimit_from_str — リソース制限コードに関連付けられたシンボリック文字列

概要

rlimit_from_str:long(lim_str:string)

引数

lim_str
制限の文字列表現

説明

この関数は、RLIMIT_CPU の 0 などの指定の文字列に関連付けられた番号を返します。

第21章 デバイス tapset

この一連の関数は、カーネルおよびユーザー空間デバイス番号を処理するために使用されます。これには、以下の機能が含まれます。

名前

function::MAJOR — カーネルデバイス番号(kdev_t)からメジャーデバイス番号を抽出します。

概要

MAJOR:long(dev:long)

引数

dev
問い合わせるカーネルデバイス番号です。

名前

function::MINOR — カーネルデバイス番号(kdev_t)からマイナーデバイス番号を抽出します。

概要

MINOR:long(dev:long)

引数

dev
問い合わせるカーネルデバイス番号です。

名前

function::MKDEV — カーネルデバイス番号(kdev_t)と比較可能な値を作成します。

概要

MKDEV:long(major:long,minor:long)

引数

major
目的のメジャーデバイス番号
minor
使用されるマイナーデバイス番号

名前

function::usrdev2kerndev — ユーザー空間デバイス番号を、カーネルで使用される形式に変換します。

概要

usrdev2kerndev:long(dev:long)

引数

dev
ユーザー空間形式のデバイス番号。

第22章 Directory-entry (dentry) タップセット

この種類の関数は、ファイルまたは完全パス名にカーネル VFS ディレクトリーのエントリーポインターをマップするために使用されます。

名前

function::d_name — dirent 名を取得します。

概要

d_name:string(dentry:long)

引数

dentry
dentry へのポインター。

説明

dirent 名 (パスベース名) を返します。

名前

function::d_path — 完全 nameidata パスを取得します。

概要

d_path:string(nd:long)

引数

nd
nameidata へのポインター。

説明

kernel d_path 関数などの完全 dirent 名を返します (root への完全パス)。

名前

function::fullpath_struct_file — 完全パスを取得します。

概要

fullpath_struct_file:string(task:long,file:long)

引数

task
task_struct ポインター
file
構造ファイルへのポインター

説明

kernel d_path 関数などの完全 dirent 名を返します (root への完全パス)。

名前

function::fullpath_struct_nameidata — 完全 nameidata パスを取得します。

概要

fullpath_struct_nameidata(nd:)

引数

nd
構造名データへのポインター

説明

カーネル(および systemtap-tapset)d_path 関数など、フル dirent 名(root への完全パス)を / で返します

名前

function::fullpath_struct_path — 完全パスを取得します。

概要

fullpath_struct_path:string(path:long)

引数

path
構造のパスへのポインター

説明

kernel d_path 関数などの完全 dirent 名を返します (root への完全パス)。

名前

function::inode_name — inode 名を取得します。

概要

inode_name:string(inode:long)

引数

inode
inode へのポインター。

説明

指定の inode に関連付けられた最初のパスベース名を返します。

名前

function::inode_path — inode へのパスを取得

概要

inode_path:string(inode:long)

引数

inode
inode へのポインター。

説明

指定の inode に関連付けられた完全パスを返します。

名前

function::real_mount — 「struct mount」ポインターの取得

概要

real_mount:long(vfsmnt:long)

引数

vfsmnt
「struct vfsmount」へのポインター

説明

「struct vfsmount」ポインターの「struct mount」ポインターを返します。

名前

function::reverse_path_walk — 完全 dirent パスを取得します。

概要

reverse_path_walk:string(dentry:long)

引数

dentry
dentry へのポインター。

説明

パス名を返します (マウントポイントへの部分パス)

名前

function::task_dentry_path — 完全 dentry パスを取得します。

概要

task_dentry_path:string(task:long,dentry:long,vfsmnt:long)

引数

task
task_struct ポインター
dentry
direntry ポインター。
vfsmnt
vfsmnt ポインター。

説明

kernel d_path 関数などの完全 dirent 名を返します (root への完全パス)。

第23章 ロギングtapset

この種類の関数は、単純なメッセージ文字列を各種の宛先に送信するために使用されます。

名前

function::assert — アサーションの評価

概要

assert(expression:,msg:)

引数

expression
評価する式
msg
フォーマットされたメッセージ文字列

説明

この関数は式を確認し、式がゼロに評価されると、現在の実行中のプローブを中断します。error を使用し、try{} catch{} によってキャッチされる可能性があります。

名前

function::error — エラーメッセージを送信します。

概要

error(msg:string)

引数

msg
フォーマットされたメッセージ文字列

説明

暗黙的な行末が追加されます。staprun は文字列 ERROR: の前に付けられます。エラーメッセージを送信すると、現在実行中のプローブが中止します。MAXERRORS パラメーターによっては、exit がトリガーされる可能性があります。

名前

function::exit — プローブスクリプトのシャットダウンを開始します。

概要

exit()

引数

なし

説明

これにより、スクリプトのシャットダウンを開始する要求のみをキューに入れます。新規プローブは実行されません (end プローブを除く)。現在実行中のプローブはすべて、その作業を完了する可能性があります。

名前

function::ftrace — ftrace リングバッファーにメッセージを送信します。

概要

ftrace(msg:string)

引数

msg
フォーマットされたメッセージ文字列

説明

ftrace リングバッファーが設定され、利用可能な場合は、メッセージについては /debugfs/tracing/trace を参照してください。そうでない場合は、メッセージは警告なしで破棄される可能性があります。暗黙的な行末が追加されます。

名前

function::log — 一般的なトレースバッファーに行を送信します。

概要

log(msg:string)

引数

msg
フォーマットされたメッセージ文字列

説明

この関数はデータをログに記録します。ログはメッセージをすぐに staprun と、一括トランスポート (relayfs) (使用している場合) に送信します。最後の文字が改行でない場合は、追加されます。この関数は printf として効率的ではなく、緊急メッセージにのみ使用してください。

名前

function::printk — カーネルトレースバッファーへのメッセージの送信

概要

printk(level:long,msg:string)

引数

level
重大度レベル(0=KERN_EMERG ...7=KERN_DEBUG)
msg
フォーマットされたメッセージ文字列

説明

テキストの行を、指定した重大度と共にカーネルの dmesg/console に出力します。暗黙的な行末が追加されます。すべてのカーネルプローブコンテキストからこの関数を安全に呼び出すことができない可能性があるため、guru モードのみに制限されます。

名前

function::warn — 警告ストリームに行を送信します。

概要

warn(msg:string)

引数

msg
フォーマットされたメッセージ文字列

説明

この関数は警告メッセージをすぐに staprun に送信します。また、一括トランスポート (relayfs) (使用されている場合) にわたり送信されます。最後の文字が改行でない場合は、その文字が追加されます。

第24章 キュー統計 tapset

この種類の関数は、キューシステムのパフォーマンスを追跡するために使用されます。

名前

function::qs_done — 終了要求を記録する関数

概要

qs_done(qname:string)

引数

qname
完了したサービスの名前

説明

この関数は、指定のキューからの要求が最初に処理されることを記録します。

名前

function::qs_run — 待機キューからサービスへ録画する関数

概要

qs_run(qname:string)

引数

qname
移動して起動するサービスの名前

説明

この関数は、以前のキューに入っている要求が指定の待機キューから削除され、現在サービス中であることを記録します。

名前

function::qs_wait — エンキュー要求を記録する関数

概要

qs_wait(qname:string)

引数

qname
キュー要求キューの名前

説明

この関数は、新しい要求が指定のキュー名に対してキューに格納されたことを記録します。

名前

function::qsq_blocked — 待機キューにある必要な時間を返します。

概要

qsq_blocked:long(qname:string,scale:long)

引数

qname
キュー名
scale
間隔の分数を考慮するために変数をスケーリングする

説明

この関数は、待機キュー上に 1 つ以上の要求がある経過時間の割合を返します。

名前

function::qsq_print — 指定のキューの統計行を出力します。

概要

qsq_print(qname:string)

引数

qname
キュー名

説明

この関数は、次の内容を含む行を出力します。

該当するキューの統計

キュー名、1 秒あたりのリクエストの平均率、平均待機キューの長さ、待機キューの平均時間、待機キューが使用される場合の平均時間、待機キューが使用された時間の割合、時間要求の割合(パーセント)。

名前

function::qsq_service_time — 要求サービスごとの時間

概要

qsq_service_time:long(qname:string,scale:long)

引数

qname
キュー名
scale
間隔の分数を考慮するために変数をスケーリングする

説明

この関数は、待機キューから削除されると、要求の処理に必要な平均時間をマイクロ秒単位で返します。

名前

function::qsq_start — キューの統計をリセットする関数

概要

qsq_start(qname:string)

引数

qname
完了したサービスの名前

説明

この関数は指定のキューの統計カウンターをリセットし、関数が呼び出された時点から追跡を再開します。この関数は、キューの意図を作成するのにも使用されます。

名前

function::qsq_throughput — ユニット時間ごとに提供されるリクエストの数

概要

qsq_throughput:long(qname:string,scale:long)

引数

qname
キュー名
scale
間隔の分数を考慮するために変数をスケーリングする

説明

この関数は、マイクロ秒ごとに提供される平均数またはリクエストを返します。

名前

function::qsq_utilization — 要求がサービスされた時間の割合

概要

qsq_utilization:long(qname:string,scale:long)

引数

qname
キュー名
scale
間隔の分数を考慮するために変数をスケーリングする

説明

この関数は、少なくとも 1 つの要求がサービスされている平均時間(マイクロ秒単位)を返します。

名前

function::qsq_wait_queue_length — 待機キューの長さ

概要

qsq_wait_queue_length:long(qname:string,scale:long)

引数

qname
キュー名
scale
間隔の分数を考慮するために変数をスケーリングする

説明

この関数は待機キューの平均の長さを返します。

名前

function::qsq_wait_time — 要求ごとのキュー + サービスごとの時間

概要

qsq_wait_time:long(qname:string,scale:long)

引数

qname
キュー名
scale
間隔の分数を考慮するために変数をスケーリングする

説明

この関数は、リクエストをサービスするのに費やした平均時間(マイクロ秒単位)を返します(qs_wait から qa_done)。

第25章 ランダム関数 Tapset

以下の関数は乱数の生成を行います。

名前

function::randint — [0,n) の範囲のランダム数を返します。

概要

randint:long(n:long)

引数

n
範囲の上限を超える数字 (2**20 を超えない)。

第26章 文字列およびデータ取得関数tapset

アドレスに基づいてカーネルまたはユーザー空間プログラムから文字列およびその他のプリミティブタイプを取得する関数。すべての文字列は MAXSTRINGLEN で指定される最大長です。

名前

function::atomic_long_read — カーネルメモリーから atomic long 変数を取得します。

概要

atomic_long_read:long(addr:long)

引数

addr
atomic long variable へのポインター

説明

atomic long 変数の読み取りを安全に実行します。これは、カーネル設定に ATOMIC_LONG_INIT が設定されていないカーネル上の NOP になります。

名前

function::atomic_read — カーネルメモリーから atomic 変数を取得します。

概要

atomic_read:long(addr:long)

引数

addr
atomic 変数へのポインター

説明

atomic 変数の読み取りを安全に実行します。

名前

function::kernel_char — カーネルメモリーに保存される char 値を取得します。

概要

kernel_char:long(addr:long)

引数

addr
char 値の取得元のカーネルアドレス

説明

指定のカーネルメモリーアドレスから char 値を返します。指定アドレスからの読み取りに失敗する場合にエラーを報告します。

名前

function::kernel_int — カーネルメモリーに保存される int 値を取得します。

概要

kernel_int:long(addr:long)

引数

addr
int の取得元のカーネルアドレス

説明

指定のカーネルメモリーアドレスから int 値を返します。指定アドレスからの読み取りに失敗する場合にエラーを報告します。

名前

function::kernel_long — カーネルメモリーに保存される long 値を取得します。

概要

kernel_long:long(addr:long)

引数

addr
long 値の取得元のカーネルアドレス

説明

指定のカーネルメモリーアドレスから long 値を返します。指定アドレスからの読み取りに失敗する場合にエラーを報告します。

名前

function::kernel_pointer — カーネルメモリーに保存されるポインター値を取得します。

概要

kernel_pointer:long(addr:long)

引数

addr
ポインターの取得元のカーネルアドレス

説明

指定のカーネルメモリーアドレスからポインター値を返します。指定アドレスからの読み取りに失敗する場合にエラーを報告します。

名前

function::kernel_short — カーネルメモリーに保存される short 値を取得します。

概要

kernel_short:long(addr:long)

引数

addr
short 値の取得元のカーネルアドレス

説明

指定のカーネルメモリーアドレスから short 値を返します。指定アドレスからの読み取りに失敗する場合にエラーを報告します。

名前

function::kernel_string — カーネルメモリーから文字列を取得します。

概要

kernel_string:string(addr:long)

引数

addr
文字列の取得元のカーネルアドレス

説明

この関数は、指定のカーネルメモリーアドレスから NULL 終端 C 文字列を返します。文字列のコピー障害のエラーを報告します。

名前

function::kernel_string2 — 代替エラー文字列と共にカーネルメモリーから文字列を取得します。

概要

kernel_string2:string(addr:long,err_msg:string)

引数

addr
文字列の取得元のカーネルアドレス
err_msg
データが利用できない場合に返すエラーメッセージ

説明

この関数は、指定のカーネルメモリーアドレスから NULL 終端 C 文字列を返します。文字列のコピー障害の所定のエラーメッセージを報告します。

名前

function::kernel_string2_utf16 — 代替エラー文字列と共にカーネルメモリーから UTF-16 文字列を取得します。

概要

kernel_string2_utf16:string(addr:long,err_msg:string)

引数

addr
文字列の取得元のカーネルアドレス
err_msg
データが利用できない場合に返すエラーメッセージ

説明

この関数は、指定のカーネルメモリーアドレスの UTF-16 文字列から変換された null 終端 UTF-8 文字列を返します。文字列のコピー障害または変換エラーの所定のエラーメッセージを報告します。

名前

function::kernel_string2_utf32 — 代替エラー文字列でカーネルメモリーから UTF-32 文字列を取得します。

概要

kernel_string2_utf32:string(addr:long,err_msg:string)

引数

addr
文字列の取得元のカーネルアドレス
err_msg
データが利用できない場合に返すエラーメッセージ

説明

この関数は、指定のカーネルメモリーアドレスの UTF-32 文字列から変換された null 終端 UTF-8 文字列を返します。文字列のコピー障害または変換エラーの所定のエラーメッセージを報告します。

名前

function::kernel_string_n — カーネルメモリーから所定の長さの文字列を取得

概要

kernel_string_n:string(addr:long,n:long)

引数

addr
文字列の取得元のカーネルアドレス
n
文字列の最大長(null で終了していない場合)

説明

指定のカーネルメモリーアドレスから最大長の C 文字列を返します。文字列のコピー障害のエラーを報告します。

名前

function::kernel_string_quoted — カーネルメモリーから文字列を取得して引用符で囲む

概要

kernel_string_quoted:string(addr:long)

引数

addr
文字列の取得元のカーネルメモリーアドレス

説明

指定のカーネルメモリーアドレスから NULL 終端 C 文字列を返します。出力不可能な ASCII 文字は、返される文字列の対応するエスケープシーケンスに置き換えられます。文字列は二重引用符で囲まれることに注意してください。指定のアドレスでカーネルメモリーデータにアクセスできないと、アドレス自体が文字列を二重引用符で囲みます。

名前

function::kernel_string_quoted_utf16 — 指定したカーネル UTF-16 文字列を引用符で囲みます。

概要

kernel_string_quoted_utf16:string(addr:long)

引数

addr
文字列の取得元のカーネルアドレス

説明

この関数は、kernel_string_utf16 で指定されているとおりに、string_quoted および UTF-16 デコードに基づいて引用されます。

名前

function::kernel_string_quoted_utf32 — 指定の UTF-32 カーネル文字列を引用符で囲みます。

概要

kernel_string_quoted_utf32:string(addr:long)

引数

addr
文字列の取得元のカーネルアドレス

説明

この関数は、kernel_string_utf32 で指定されているとおりに string_quoted および UTF-32 デコードに基づいて引用されます。

名前

function::kernel_string_utf16 — カーネルメモリーから UTF-16 文字列を取得します。

概要

kernel_string_utf16:string(addr:long)

引数

addr
文字列の取得元のカーネルアドレス

説明

この関数は、指定のカーネルメモリーアドレスの UTF-16 文字列から変換された null 終端 UTF-8 文字列を返します。文字列のコピー障害または変換エラーでエラーを報告します。

名前

function::kernel_string_utf32 — カーネルメモリーから UTF-32 文字列を取得します。

概要

kernel_string_utf32:string(addr:long)

引数

addr
文字列の取得元のカーネルアドレス

説明

この関数は、指定のカーネルメモリーアドレスの UTF-32 文字列から変換された null 終端 UTF-8 文字列を返します。文字列のコピー障害または変換エラーでエラーを報告します。

名前

function::user_char — ユーザー空間に保存された char 値を取得します。

概要

user_char:long(addr:long)

引数

addr
char 値の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから char 値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_char_warn — ユーザー空間に保存された char 値を取得します。

概要

user_char_warn:long(addr:long)

引数

addr
char 値の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから char 値を返します。ユーザー空間時にはゼロを返し、障害に関して警告します(ただし、中止しません)。

名前

function::user_int — ユーザー空間に保存された int 値を取得します。

概要

user_int:long(addr:long)

引数

addr
int 値の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから int 値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_int16 — ユーザー空間に保存された 16 ビットの整数値を取得します。

概要

user_int16:long(addr:long)

引数

addr
16 ビットの整数を取得するユーザー空間アドレス

説明

指定のユーザー空間アドレスから 16 ビットの整数値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_int32 — ユーザー空間に保存された 32 ビットの整数値を取得します。

概要

user_int32:long(addr:long)

引数

addr
32 ビット整数を取得するユーザー空間アドレス

説明

指定のユーザー空間アドレスから 32 ビットの整数値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_int64 — ユーザー空間に保存された 64 ビットの整数値を取得します。

概要

user_int64:long(addr:long)

引数

addr
64 ビット整数を取得するユーザー空間アドレス

説明

指定のユーザー空間アドレスから 64 ビットの整数値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_int8 — ユーザー空間に保存された 8 ビットの整数値を取得します。

概要

user_int8:long(addr:long)

引数

addr
8 ビット整数を取得するユーザー空間アドレス

説明

指定のユーザー空間アドレスから 8 ビットの整数値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_int_warn — ユーザー空間に保存された int 値を取得します。

概要

user_int_warn:long(addr:long)

引数

addr
int 値の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから int 値を返します。ユーザー空間データにアクセスできない場合はゼロを返し、障害に関して警告します (ただし、中止しません)。

名前

function::user_long — ユーザー空間に保存された long 値を取得します。

概要

user_long:long(addr:long)

引数

addr
long 値の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから long 値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。longのサイズは、現在のユーザー空間タスクのアーキテクチャーによって異なることに注意してください (64/32 ビット互換タスクの両方をサポートするアーキテクチャーの場合)。

名前

function::user_long_warn — ユーザー空間に保存された long 値を取得します。

概要

user_long_warn:long(addr:long)

引数

addr
long 値の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから long 値を返します。ユーザー空間データにアクセスできない場合はゼロを返し、障害に関して警告します (ただし、中止しません)。longのサイズは、現在のユーザー空間タスクのアーキテクチャーによって異なることに注意してください (64/32 ビット互換タスクの両方をサポートするアーキテクチャーの場合)。

名前

function::user_short — ユーザー空間に保存された short 値を取得します。

概要

user_short:long(addr:long)

引数

addr
short 値の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから short 値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_short_warn — ユーザー空間に保存された short 値を取得します。

概要

user_short_warn:long(addr:long)

引数

addr
short 値の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから short 値を返します。ユーザー空間データにアクセスできない場合はゼロを返し、障害に関して警告します (ただし、中止しません)。

名前

function::user_string — ユーザー空間から文字列を取得します。

概要

user_string:string(addr:long)

引数

addr
文字列の取得元のユーザー空間アドレス

説明

指定のユーザー空間メモリーアドレスから NULL 終端 C 文字列を返します。ユーザー空間データにアクセスできない稀なケースでエラーを報告します。

名前

function::user_string2 — 代替エラー文字列と共にユーザー空間から文字列を取得します。

概要

user_string2:string(addr:long,err_msg:string)

引数

addr
文字列の取得元のユーザー空間アドレス
err_msg
データが利用できない場合に返すエラーメッセージ

説明

指定のユーザー空間メモリーアドレスから NULL 終端 C 文字列を返します。ユーザー空間データにアクセスできない稀なケースで所定のエラーメッセージを報告します。

名前

function::user_string2_n_warn — 代替警告文字列を使用したユーザー空間から文字列を取得します。

概要

user_string2_n_warn:string(addr:long,n:long,warn_msg:string)

引数

addr
文字列の取得元のユーザー空間アドレス
n
文字列の最大長(null で終了していない場合)
warn_msg
データが利用できない場合に返す警告メッセージ

説明

指定のユーザー空間メモリーアドレスから C 文字列の n 文字までを返します。ユーザー空間データにアクセスできない場合に、まれなケースで指定の警告メッセージを報告して障害に関して警告します(ただし、中止しません)。

名前

function::user_string2_utf16 — 代替エラー文字列と共にユーザーメモリーから UTF-16 文字列を取得します。

概要

user_string2_utf16:string(addr:long,err_msg:string)

引数

addr
文字列の取得元のユーザーアドレス
err_msg
データが利用できない場合に返すエラーメッセージ

説明

この関数は、指定のユーザーメモリーアドレスの UTF-16 文字列から変換された null 終端 UTF-8 文字列を返します。文字列のコピー障害または変換エラーの所定のエラーメッセージを報告します。

名前

function::user_string2_utf32 — 代替エラー文字列でユーザーメモリーから UTF-32 文字列を取得します。

概要

user_string2_utf32:string(addr:long,err_msg:string)

引数

addr
文字列の取得元のユーザーアドレス
err_msg
データが利用できない場合に返すエラーメッセージ

説明

この関数は、指定のユーザーメモリーアドレスの UTF-32 文字列から変換された null 終端 UTF-8 文字列を返します。文字列のコピー障害または変換エラーの所定のエラーメッセージを報告します。

名前

function::user_string2_warn — 代替警告文字列を使用したユーザー空間から文字列を取得します。

概要

user_string2_warn:string(addr:long,warn_msg:string)

引数

addr
文字列の取得元のユーザー空間アドレス
warn_msg
データが利用できない場合に返す警告メッセージ

説明

指定のユーザー空間メモリーアドレスから NULL 終端 C 文字列を返します。ユーザー空間データにアクセスできない場合に、まれなケースで指定の警告メッセージを報告して障害に関して警告します(ただし、中止しません)。

名前

function::user_string_n — ユーザー空間から所定の長さの文字列を取得

概要

user_string_n:string(addr:long,n:long)

引数

addr
文字列の取得元のユーザー空間アドレス
n
文字列の最大長(null で終了していない場合)

説明

指定のユーザー空間アドレスから最大長の C 文字列を返します。指定のアドレスでユーザー空間データにアクセスできない稀なケースでエラーを報告します。

名前

function::user_string_n2 — ユーザー空間から所定の長さの文字列を取得

概要

user_string_n2:string(addr:long,n:long,err_msg:string)

引数

addr
文字列の取得元のユーザー空間アドレス
n
文字列の最大長(null で終了していない場合)
err_msg
データが利用できない場合に返すエラーメッセージ

説明

指定のユーザー空間アドレスから最大長の C 文字列を返します。指定のアドレスでユーザー空間データにアクセスできない稀なケースで指定のエラーメッセージ文字列を返します。

名前

function::user_string_n2_quoted — ユーザー空間から文字列を取得して引用符で囲みます。

概要

user_string_n2_quoted:string(addr:long,inlen:long,outlen:long)

引数

addr
文字列の取得元のユーザー空間アドレス
inlen
読み取る文字列の最大長(null で終了していない場合)
outlen
出力文字列の最大長

説明

指定のユーザー空間メモリーアドレスから C 文字列のlen 文字まで読み取り、出力不可能な ASCII 文字は、返される文字列の対応するエスケープシーケンスに置き換えられます。文字列は二重引用符で囲まれることに注意してください。指定のアドレスでユーザー空間データにアクセスできない稀なケースでは、アドレス自体は二重引用符なしで文字列として返されます。

名前

function::user_string_n_quoted — ユーザー空間から文字列を取得して引用符で囲みます。

概要

user_string_n_quoted:string(addr:long,n:long)

引数

addr
文字列の取得元のユーザー空間アドレス
n
文字列の最大長(null で終了していない場合)

説明

指定のユーザー空間メモリーアドレスから n 文字の C 文字列を返します。出力不可能な ASCII 文字は、返される文字列の対応するエスケープシーケンスに置き換えられます。文字列は二重引用符で囲まれることに注意してください。指定のアドレスでユーザー空間データにアクセスできない稀なケースでは、アドレス自体は二重引用符なしで文字列として返されます。

名前

function::user_string_n_warn — ユーザー空間から文字列を取得します。

概要

user_string_n_warn:string(addr:long,n:long)

引数

addr
文字列の取得元のユーザー空間アドレス
n
文字列の最大長(null で終了していない場合)

説明

指定のユーザー空間メモリーアドレスから C 文字列の n 文字までを返します。ユーザー空間データにアクセスできない場合に、まれなケースで <unknown> を報告し、障害に関して警告します (ただし、中止しません)。

名前

function::user_string_quoted — ユーザー空間から文字列を取得して引用符で囲みます。

概要

user_string_quoted:string(addr:long)

引数

addr
文字列の取得元のユーザー空間アドレス

説明

指定のユーザー空間メモリーアドレスから NULL 終端 C 文字列を返します。出力不可能な ASCII 文字は、返される文字列の対応するエスケープシーケンスに置き換えられます。文字列は二重引用符で囲まれることに注意してください。指定のアドレスでユーザー空間データにアクセスできない稀なケースでは、アドレス自体は二重引用符なしで文字列として返されます。

名前

function::user_string_quoted_utf16 — ユーザーの UTF-16 文字列を引用符で囲みます。

概要

user_string_quoted_utf16:string(addr:long)

引数

addr
文字列の取得元のユーザーアドレス

説明

この関数は、user_string_utf16 で指定されているとおりに、string_quoted および UTF-16 デコードに基づいて引用されます。

名前

function::user_string_quoted_utf32 — 指定のユーザーの UTF-32 文字列を引用符で囲みます。

概要

user_string_quoted_utf32:string(addr:long)

引数

addr
文字列の取得元のユーザーアドレス

説明

この関数は、user_string_utf32 で指定されているとおりに string_quoted および UTF-32 デコードに基づいて引用されます。

名前

function::user_string_utf16 — ユーザーメモリーから UTF-16 文字列を取得します。

概要

user_string_utf16:string(addr:long)

引数

addr
文字列の取得元のユーザーアドレス

説明

この関数は、指定のユーザーメモリーアドレスの UTF-16 文字列から変換された null 終端 UTF-8 文字列を返します。文字列のコピー障害または変換エラーでエラーを報告します。

名前

function::user_string_utf32 — ユーザーメモリーから UTF-32 文字列を取得します。

概要

user_string_utf32:string(addr:long)

引数

addr
文字列の取得元のユーザーアドレス

説明

この関数は、指定のユーザーメモリーアドレスの UTF-32 文字列から変換された null 終端 UTF-8 文字列を返します。文字列のコピー障害または変換エラーでエラーを報告します。

名前

function::user_string_warn — ユーザー空間から文字列を取得します。

概要

user_string_warn:string(addr:long)

引数

addr
文字列の取得元のユーザー空間アドレス

説明

指定のユーザー空間メモリーアドレスから NULL 終端 C 文字列を返します。ユーザー空間データにアクセスできない場合に、まれなケースで "" を報告して障害に関して警告します(ただし、中止しません)。

名前

function::user_uint16 — ユーザー空間に保存された未署名の 16 ビットの整数値を取得します。

概要

user_uint16:long(addr:long)

引数

addr
未署名の 16 ビットの整数を取得するユーザー空間アドレス

説明

指定のユーザー空間アドレスから、未署名の 16 ビットの整数値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_uint32 — ユーザー空間に保存された 32 ビットの整数値を取得します。

概要

user_uint32:long(addr:long)

引数

addr
32 ビットの非署名の整数を取得するユーザー空間アドレス

説明

指定のユーザー空間アドレスから 32 ビットの整数値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_uint64 — ユーザー空間に保存された未署名の 64 ビットの整数値を取得します

概要

user_uint64:long(addr:long)

引数

addr
未署名の 64 ビット整数を取得するユーザー空間アドレス

説明

指定のユーザー空間アドレスから未署名の 64 ビットの整数値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_uint8 — ユーザー空間に保存された未署名の 8 ビットの整数値を取得します。

概要

user_uint8:long(addr:long)

引数

addr
署名なし 8 ビット整数を取得するユーザー空間アドレス

説明

指定のユーザー空間アドレスから、未署名の 8 ビットの整数値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_ulong — ユーザー空間に保存された非署名の long 値を取得します。

概要

user_ulong:long(addr:long)

引数

addr
未署名の long 値の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから未署名の long 値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。署名なしの長さのサイズは、現在のユーザー空間タスクのアーキテクチャーによって異なることに注意してください(64/32 ビット互換タスクの両方をサポートするアーキテクチャーの場合)。

名前

function::user_ulong_warn — ユーザー空間に保存された非署名の long 値を取得します。

概要

user_ulong_warn:long(addr:long)

引数

addr
未署名の long 値の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから未署名の long 値を返します。ユーザー空間時にはゼロを返し、障害に関して警告します(ただし、中止しません)。署名なしの長さのサイズは、現在のユーザー空間タスクのアーキテクチャーによって異なることに注意してください(64/32 ビット互換タスクの両方をサポートするアーキテクチャーの場合)。

名前

function::user_ushort — ユーザー空間に保存された非署名の短い値を取得します

概要

user_ushort:long(addr:long)

引数

addr
署名なしの短い情報の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから未署名の短い値を返します。ユーザー空間データにアクセスできない場合はゼロを返します。

名前

function::user_ushort_warn — ユーザー空間に保存された非署名の短い値を取得します

概要

user_ushort_warn:long(addr:long)

引数

addr
署名なしの短い情報の取得元のユーザー空間アドレス

説明

指定のユーザー空間アドレスから未署名の短い値を返します。ユーザー空間時にはゼロを返し、障害に関して警告します(ただし、中止しません)。

第27章 文字列およびデータ書き込み関数tapset

SystemTap guru モードを使用して、障害をシミュレートすることでカーネルコードでエラー処理をテストすることができます。この tapset の機能は、カーネルのメモリーのプリミティブタイプへの書き込み標準的なメソッドを提供します。この tapset のすべての関数に guru モード(-g)を使用する必要があります。

名前

function::set_kernel_char — カーネルメモリーに char 値を書き込みます

概要

set_kernel_char(addr:long,val:long)

引数

addr
char を書き込むカーネルアドレス
val
書き込まれる char

説明

指定のカーネルメモリーアドレスに char 値を書き込みます。指定のアドレスへの書き込みに失敗した場合にエラーを報告します。guru モード(-g)を使用する必要があります。

名前

function::set_kernel_int — カーネルメモリーに int 値を書き込みます。

概要

set_kernel_int(addr:long,val:long)

引数

addr
int を書き込むカーネルアドレス
val
書き込まれる int

説明

指定のカーネルメモリーアドレスに int 値を書き込みます。指定のアドレスへの書き込みに失敗した場合にエラーを報告します。guru モード(-g)を使用する必要があります。

名前

function::set_kernel_long — 長い値をカーネルメモリーに書き込みます。

概要

set_kernel_long(addr:long,val:long)

引数

addr
長い期間を書き込むカーネルアドレス。
val
書き込まれる長

説明

指定のカーネルメモリーアドレスに long 値を書き込みます。指定のアドレスへの書き込みに失敗した場合にエラーを報告します。guru モード(-g)を使用する必要があります。

名前

function::set_kernel_pointer — カーネルメモリーにポインター値を書き込みます。

概要

set_kernel_pointer(addr:long,val:long)

引数

addr
ポインターを書き込むカーネルアドレス
val
書き込まれるポインター

説明

指定のカーネルメモリーアドレスにポインター値を書き込みます。指定のアドレスへの書き込みに失敗した場合にエラーを報告します。guru モード(-g)を使用する必要があります。

名前

function::set_kernel_short — カーネルメモリーに短い値を書き込みます。

概要

set_kernel_short(addr:long,val:long)

引数

addr
略語を書き込むカーネルアドレス
val
書き込まれる短

説明

指定のカーネルメモリーアドレスに short 値を書き込みます。指定のアドレスへの書き込みに失敗した場合にエラーを報告します。guru モード(-g)を使用する必要があります。

名前

function::set_kernel_string — 文字列をカーネルメモリーに書き込みます。

概要

set_kernel_string(addr:long,val:string)

引数

addr
文字列を書き込むカーネルアドレス
val
書き込まれる文字列

説明

指定の文字列を指定のカーネルメモリーアドレスに書き込みます。文字列のコピー障害のエラーを報告します。guru モード(-g)を使用する必要があります。

名前

function::set_kernel_string_n — 特定の長さの文字列をカーネルメモリーに書き込みます。

概要

set_kernel_string_n(addr:long,n:long,val:string)

引数

addr
文字列を書き込むカーネルアドレス
n
文字列の最大長
val
書き込まれる文字列

説明

指定の文字列を指定のカーネルメモリーアドレスに最大長に書き込みます。文字列のコピー障害のエラーを報告します。guru モード(-g)を使用する必要があります。

第28章 guru tapsets

システムの動作に意図的に干渉する関数。障害を注入したり、可観測性を改善したりします。この tapset のすべての関数に guru モード(-g)を使用する必要があります。

名前

function::mdelay — ミリ秒の遅延

概要

mdelay(ms:long)

引数

ms
遅延するミリ秒数。

説明

この関数は、マルチ期間の busy-delay をプローブハンドラーに挿入します。guru モードが必要です。

名前

function::panic — パニックを発生させる。

概要

panic(msg:string)

引数

msg
カーネルの panic 関数に渡すメッセージ

説明

この関数は、ユーザー指定のパニックメッセージで、実行中のカーネルの即時パニックをトリガーします。guru モードが必要です。

名前

function::raise — 現在のスレッドでシグナルを発生させる。

概要

raise(signo:long)

引数

signo
シグナル番号

説明

この関数は、指定された生のチェック済みシグナル番号を使用して、現在のスレッドでカーネル send_sig ルーチンを呼び出します。send_sig が失敗した場合は、エラーが発生する可能性があります。guru モードが必要です。

名前

function::udelay — マイクロ秒の遅延

概要

udelay(us:long)

引数

us
遅延するマイクロ秒数。

説明

この関数は、マルチマイクロ秒 busy-delay をプローブハンドラーに挿入します。guru モードが必要です。

第29章 標準的な文字列関数のコレクション

長さ、サブ文字列の取得、個別の文字の取得、文字列の検索、エスケープ、トークン化および文字列の long への変換を実行する関数です。

名前

function::isdigit — 数字をチェックします。

概要

isdigit:long(str:string)

引数

str
チェックする文字列

説明

文字列の最初の文字として数字 (0 から 9) があるかどうかを確認します。true の場合はゼロ以外の値を返し、false の場合はゼロを返します。

名前

function::isinstr — 文字列が別の文字列のサブ文字列かどうかを返します。

概要

isinstr:long(s1:string,s2:string)

引数

s1
検索する文字列
s2
検索するサブ文字列

説明

この関数は、文字列 s1s2 が含まれる場合に 1 を返します。そうでない場合はゼロを返します。

名前

function::str_replace — str_replace は、サブ文字列のすべてのインスタンスを別のものに置き換えます。

概要

str_replace:string(prnt_str:string,srch_str:string,rplc_str:string)

引数

prnt_str
検索し、
srch_str
prnt_str 文字列で検索するために使用されるサブ文字列
rplc_str
置き換えるために使用されるサブ文字列 srch_str

説明

この関数は、サブ文字列が置換された所定の文字列を返します。

名前

function::string_quoted — 指定の文字列を引用符で囲みます。

概要

string_quoted:string(str:string)

引数

str
文字列の取得元のカーネルアドレス

説明

指定文字列の引用符付きの文字列バージョンを返します。文字で出力不可能な ASCII 文字は、返される文字列の対応するエスケープシーケンスに置き換えられます。文字列は二重引用符で囲まれることに注意してください。

名前

function::stringat — 文字列の所定位置の文字を返します。

概要

stringat:long(str:string,pos:long)

引数

str
文字の取得元の文字列
pos
文字の取得元の位置(最初の文字は 0)

説明

この関数は、文字列の指定の位置にある文字を返します。文字列に多くの文字がない場合はゼロを返します。範囲外の場合にエラーを報告します。

名前

function::strlen — 文字列の長さを返します。

概要

strlen:long(s:string)

引数

s
文字列。

説明

この関数は、ゼロから MAXSTRINGLEN までに設定できる文字列の長さを返します。

名前

function::strtol — strtol - 文字列を long に変換します。

概要

strtol:long(str:string,base:long)

引数

str
変換する文字列
base
使用するベース。

説明

この関数は、数字の文字列表現を整数に変換します。base パラメーターは、文字列に想定する数値のベースを示します(例: 16 進数の場合は 16、8 進数の場合は 8、バイナリーの場合は 8)。

名前

function::substr — サブ文字列を返します。

概要

substr:string(str:string,start:long,length:long)

引数

str
サブ文字列の取得元の文字列
start
展開した文字列の位置の開始(最初の文字は 0)
length
返す文字列の長さ

説明

指定の長さで指定の開始位置にある指定の文字列のサブ文字列を返します(または、元の文字列の長さが start + 長より少ない場合、または長さが MAXSTRINGLEN より大きい場合、または長さが MAXSTRINGLEN より大きいか、または長さが MAXSTRINGLEN より大きい場合は小さい)を返します。

名前

function::text_str — 文字列の出力できない文字をエスケープする

概要

text_str:string(input:string)

引数

input
エスケープする文字列

説明

この関数は文字列引数を受け入れ、出力不可能なすべての ASCII 文字は、返される文字列の対応するエスケープシーケンスに置き換えられます。

名前

function::text_strn — 文字列の出力できない文字をエスケープする

概要

text_strn:string(input:string,len:long,quoted:long)

引数

input
エスケープする文字列
len
返す文字列の最大長(0 は MAXSTRINGLEN)
quoted
文字列を二重引用符で囲みます。入力文字列が切り捨てられる場合は、2 つ目の引用符の後に ... が使用されます。

説明

この関数は指定された長さの文字列を受け入れ、出力不可能なすべての ASCII 文字は、返される文字列の対応するエスケープシーケンスに置き換えられます。

名前

function::tokenize — 文字列の次の空でないトークンを返します。

概要

tokenize:string(input:string,delim:string)

引数

input
トークン化する文字列。空の場合、tokenize への以前の呼び出しで渡された文字列の空でないトークンを返します。
delim
トークンを区切る文字セット

説明

この関数は、トークンが delim 文字列の文字で区切られる指定の入力文字列の次の空でないトークンを返します。入力文字列が空でない場合は、最初のトークンを返します。入力文字列が空の場合は、トークン化する直前の呼び出しで渡された文字列の次のトークンを返します。区切り文字が見つからない場合は、残りの入力文字列全体が返されます。利用可能なトークンがない場合には、空のを返します。

第30章 ansi 制御文字をログで使用するためのユーティリティー関数

ansi 制御文字を使用してロギングするユーティリティー関数。これにより、カーソル位置と文字色出力、ログメッセージの属性を変更できます。

名前

function::ansi_clear_screen — カーソルを左上に移動し、画面をクリアします。

概要

ansi_clear_screen()

引数

なし

説明

カーソルを左上に移動するために ansi コードを送信し、カーソル位置から終了位置までの画面をクリアするために ansi コードを送信します。

名前

function::ansi_cursor_hide — カーソルを非表示にします。

概要

ansi_cursor_hide()

引数

なし

説明

カーソルを非表示にするために ansi コードを送信します。

名前

function::ansi_cursor_move — カーソルを新規の座標に移動します。

概要

ansi_cursor_move(x:long,y:long)

引数

x
カーソルの移動先の行。
y
カーソルの移動先の列。

説明

カーソルを x 行および y 列に配置するために ansi コードを送信します。座標は 1 から始まります。(1,1) は左上隅です。

名前

function::ansi_cursor_restore — 以前に保存されたカーソル位置を復元します。

概要

ansi_cursor_restore()

引数

なし

説明

ansi_cursor_save で以前に保存した現在のカーソル位置を復元するために ansi コードを送信します。

名前

function::ansi_cursor_save — カーソル位置を保存します。

概要

ansi_cursor_save()

引数

なし

説明

現在のカーソル位置を保存するために ansi コードを送信します。

名前

function::ansi_cursor_show — カーソルを表示します。

概要

ansi_cursor_show()

引数

なし

説明

カーソルを表示するために ansi コードを送信します。

名前

function::ansi_new_line — カーソルを新しい行に移動します。

概要

ansi_new_line()

引数

なし

説明

改行の ANSI コードを送信します。

名前

function::ansi_reset_color — Select Graphic Rendition モードをリセットします。

概要

ansi_reset_color()

引数

なし

説明

前景色、背景色および色属性をデフォルト値にリセットするために ansi コードを送信します。

名前

function::ansi_set_color — ansi Select Graphic Rendition モードを設定します。

概要

ansi_set_color(fg:long)

引数

fg
設定するフォアグラウンドの色。

説明

指定のフォグラウンドカラー用に Select Graphic Rendition モードの ansi コードを送信します。黒(30)、青(34)、緑(32)、シアン(36)、赤(31)、紫(35)、緑(33)、緑(37)。

名前

function::ansi_set_color2 — ansi Select Graphic Rendition モードを設定します。

概要

ansi_set_color2(fg:long,bg:long)

引数

fg
設定する前景色。
bg
設定する背景色。

説明

前景色 (黒 (30)、青 (34)、緑 (32)、シアン (36)、赤 (31)、紫 (35)、茶 (33)、灰 (37)) および背景色 (黒 (40)、赤 (41)、緑 (42)、黄 (43)、青 (44)、紫 (45)、シアン (46)、白 (47)) を指定する Select Graphic Rendition モードの ANSI コードを送信します。

名前

function::ansi_set_color3 — ansi Select Graphic Rendition モードを設定します。

概要

ansi_set_color3(fg:long,bg:long,attr:long)

引数

fg
設定する前景色。
bg
設定する背景色。
attr
設定する色属性。

説明

前景色 (黒 (30)、青 (34)、緑 (32)、シアン (36)、赤 (31)、紫 (35)、茶 (33)、灰 (37))、および背景色 (黒 (40)、赤 (41)、緑 (42)、黄 (43)、青 (44)、紫 (45)、シアン (46)、白 (47))、およびすべての属性を解除 (0)、太字 (1)、下線 (4)、点滅 (5)、高速点滅 (6)、 反転 (7)などの色属性を指定する Select Graphic Rendition モードの ANSI コードを送信します。

名前

function::indent — インデントする領域の容量を返します。

概要

indent:string(delta:long)

引数

delta
呼び出しごとに追加/削除された領域の量

説明

この関数は、適切なインデントを持つ文字列を返します。わずか、または一致する負の delta で呼び出しを行います。thread_indent 関数とは異なり、インデントはスレッドごとに個別のインデント値を追跡しません。

名前

function::indent_depth — グローバルのネストされた深さを返します。

概要

indent_depth:long(delta:long)

引数

delta
呼び出しごとに追加/削除された深度の量

説明

この関数は、indent と同様に適切なインデントの数を返します。わずか、または一致する負の delta で呼び出しを行います。thread_indent_depth 関数とは異なり、インデントはスレッドごとに個別のインデント値を追跡しません。

名前

function::thread_indent — 現在のタスク情報を含む領域の容量を返します。

概要

thread_indent:string(delta:long)

引数

delta
呼び出しごとに追加/削除された領域の量

説明

この関数は、スレッドへの適切なインデントを持つ文字列を返します。わずか、または一致する負の delta で呼び出しを行います。これが実際の出発点である場合、最初のインデントのレベルは、関数が相対的なタイムスタンプをゼロにリセットします。タイムスタンプは __indent_timestamp 関数により提供され、デフォルトではマイクロ秒を測定します。

名前

function::thread_indent_depth — 現在のタスクのネストされた深さを返します。

概要

thread_indent_depth:long(delta:long)

引数

delta
呼び出しごとに追加/削除された深度の量

説明

この関数は、初期レベルから始まるネストされた関数の深さと等しい整数を返します。この関数は、ネスト化された関数呼び出しが長いトレースで領域を節約するのに便利です。この関数は、thread_indent と同様の方法(call-probe、call-indent_depth(1)を使用します)および return-probe で thread_indent_depth(-1)を使用します。

第31章 SystemTap トランスレーター tapset

ユーザー空間のプローブポイントは、SystemTap トランスlator(stap)および run コマンド(staprun)の操作をプローブするために使用されます。tapset には、SystemTap の様々なフェーズと SystemTap のインストラクションキャッシュのさまざまなフェーズを監視するプローブが含まれます。これには、以下のプローブポイントが含まれます。

名前

probe::stap.cache_add_mod — キャッシュへのカーネルインストルメンテーションモジュールの追加

概要

stap.cache_add_mod 

dest_path
.ko ファイルのパス(ファイル名を除く)
source_path
.ko ファイルが来るパス(ファイル名は除外)

説明

ファイルが実際に移動される直前に実行されます。注記: 移動すると、cache_add_src および cache_add_nss は実行されません。

名前

probe::stap.cache_add_nss — キャッシュに NSS(ネットワークセキュリティーサービス)情報を追加

概要

stap.cache_add_nss 

source_path
.sgn ファイルが置かれているパス(ファイル名)
dest_path
.sgn ファイルが置かれているパス(ファイル名)

説明

ファイルが実際に移動される直前に実行されます。注記: stap は NSS サポートでコンパイルする必要があります。カーネルモジュールの移動に失敗した場合には、このプローブは実行されません。

名前

probe::stap.cache_add_src — キャッシュへの C コード変換の追加

概要

stap.cache_add_src 

dest_path
.c ファイルのパス(ファイル名を除く)
source_path
.c ファイルが来るパス(ファイル名)

説明

ファイルが実際に移動される直前に実行されます。注記: カーネルモジュールの移動が失敗すると、このプローブは実行されません。

名前

probe::stap.cache_clean — stap キャッシュからのファイルの削除

概要

stap.cache_clean 

path
削除する .ko/.c ファイルへのパス。

説明

モジュール/ソースファイルのリンクを解除するための呼び出しの直前に実行されます。

名前

probe::stap.cache_get — stap キャッシュで項目が見つかりました。

概要

stap.cache_get 

module_path
.ko カーネルモジュールファイルのパス
source_path
.c ソースファイルのパス

説明

キャッシュグラブが正常に実行されると、get_from_cache が返される直前に実行されます。

名前

probe::stap.pass0 — stap pass0 の起動(コマンドライン引数と同じ)

概要

stap.pass0 

session
systemtap_session 変数

説明

pass0 は、コマンドライン引数が解析された後に実行されます。

名前

probe::stap.pass0.end — stap pass0 を完了(コマンドライン引数と同じ)

概要

stap.pass0.end 

session
systemtap_session 変数

説明

pass0.end は、pass1 の gettimeofday 呼び出しの直前に実行されます。

名前

probe::stap.pass1.end — stap pass1 の終了(スクリプト入力)

概要

stap.pass1.end 

session
systemtap_session 変数

説明

pass1.end は、s.last_pass = 1 の場合に、クリーンアップのジャンプ の直前に実行されます。

名前

probe::stap.pass1a — stap pass1 の起動(ユーザースクリプトの解析)

概要

stap.pass1a 

session
systemtap_session 変数

説明

pass1a は、ユーザースクリプトが解析される前に、gettimeofday への呼び出しの直後に実行されます。

名前

probe::stap.pass1b — stap pass1 の起動(ライブラリースクリプトと同等)

概要

stap.pass1b 

session
systemtap_session 変数

説明

pass1b は、ライブラリースクリプトが解析された直前に実行されます。

名前

probe::stap.pass2 — stap pass2 の起動(ラボ)

概要

stap.pass2 

session
systemtap_session 変数

説明

pass2 は、gettimeofday への呼び出しが semantic_pass への呼び出しの直前に実行されます。

名前

probe::stap.pass2.end — stap pass2(ラボ)

概要

stap.pass2.end 

session
systemtap_session 変数

説明

pass2.end は、s.last_pass = 2 の場合に、クリーンアップのジャンプ 直前に実行されます。

名前

probe::stap.pass3 — stap pass3 の起動(C への変換)

概要

stap.pass3 

session
systemtap_session 変数

説明

pass3 は、gettimeofday の呼び出しが convert_pass への呼び出しの直前に実行されます。

名前

probe::stap.pass3.end — stap pass3 の終了(C への変換)

概要

stap.pass3.end 

session
systemtap_session 変数

説明

pass3.end は、s.last_pass = 3 の場合にクリーンアップにジャンプの直前に実行されます。

名前

probe::stap.pass4 — stap pass4 の起動(カーネルモジュールへの C コードをコンパイル)

概要

stap.pass4 

session
systemtap_session 変数

説明

pass4 は、gettimeofday の呼び出し直後(compile_pass への呼び出し)の直前に実行されます。

名前

probe::stap.pass4.end — stap pass4 を完了(カーネルモジュールに C コードをコンパイル)

概要

stap.pass4.end 

session
systemtap_session 変数

説明

pass4.end は、s.last_pass = 4 の場合にクリーンアップにジャンプの直前に実行されます。

名前

probe::stap.pass5 — stap pass5 の起動(インストルメンテーションを実行)

概要

stap.pass5 

session
systemtap_session 変数

説明

pass5 は、run_pass への呼び出しの直前に gettimeofday への呼び出しの直後に実行されます。

名前

probe::stap.pass5.end — stap pass5 を終了(インストルメンテーションを実行)

概要

stap.pass5.end 

session
systemtap_session 変数

説明

pass5.end はクリーンアップラベルの直前に実行されます。

名前

probe::stap.pass6 — stap pass6(cleanup)の起動

概要

stap.pass6 

session
systemtap_session 変数

説明

pass6 はクリーンアップラベルの直後に実行されます(基本的に pass5.end と同じスポット)。

名前

probe::stap.pass6.end — stap pass6(cleanup)の終了

概要

stap.pass6.end 

session
systemtap_session 変数

説明

pass6.end は、メインが返す直前に実行されます。

名前

probe::stap.system — stap からのコマンドの開始

概要

stap.system 

command
posix_spawn が実行するコマンド文字列(sh -c <str> となる)。

説明

stap_system コマンドのエントリーで実行されます。

名前

probe::stap.system.return — stap からのコマンドの終了

概要

stap.system.return 

ret
生成されたプロセスで waitpid の実行に関連付けられている戻りコード。ゼロ以外の値はエラーであることを示します。

説明

waitpid の後に、stap_system 関数が返す直前に実行されます。

名前

probe::stap.system.spawn — stap が起動された新規プロセス

概要

stap.system.spawn 

ret
posix_spawn の戻り値
pid
生成されるプロセスの pid

説明

posix_spawn への呼び出しの直後に実行されます。

名前

probe::stapio.receive_control_message — コントロールメッセージを受信

概要

stapio.receive_control_message 

len
データ Blob の長さ(バイト単位)
data
コントロールメッセージとして送信したデータのバイナリー Blob のパtr
type
送信するメッセージのタイプ。runtime/transport/transport_msgs.h で定義されます。

説明

メッセージの受信後に 実行されます。

名前

probe::staprun.insert_module — SystemTap インストルメンテーションモジュールの挿入

概要

staprun.insert_module 

path
.ko カーネルモジュールへのフルパスを挿入するための

説明

モジュールを挿入する呼び出しの直前に実行されます。

名前

probe::staprun.remove_module — SystemTap インストルメンテーションモジュールの削除

概要

staprun.remove_module 

name
削除する stap モジュール名(.ko 拡張子なし)

説明

モジュールを削除する呼び出しの直前に実行されます。

名前

probe::staprun.send_control_message — コントロールメッセージの送信

概要

staprun.send_control_message 

type
送信するメッセージのタイプ。runtime/transport/transport_msgs.h で定義されます。
data
コントロールメッセージとして送信したデータのバイナリー Blob のパtr
len
データ Blob の長さ(バイト単位)

説明

send_request 関数の開始時に実行されます。

第32章 ネットワークファイルストレージタップセット

この種類のプローブポイントは、ネットワークファイルのストレージ機能や操作をプローブするために使用されます。

名前

function::nfsderror — nfsd エラー番号を文字列に変換します。

概要

nfsderror:string(err:long)

引数

err
errnum

説明

この関数は、関数に渡されるエラー番号の文字列を返します。

名前

probe::nfs.aop.readpage — NFS クライアントによるページの読み取り

概要

nfs.aop.readpage 

size
この実行で読み込まれるページ数
i_flag
ファイルフラグ
file
ファイルの引数
ino
inode 番号
i_size
ファイルの長さ(バイト単位)
dev
デバイスの識別子
rsize
読み取りサイズ(バイト単位)
__page
ページのアドレス
sb_flag
super block フラグ
page_index
マッピング内のオフセットは、ページフレームのページ識別子と位置識別子を使用できます。

説明

ページの読み取りは、前の非同期読み取り操作が失敗した場合にのみ実行されます。

名前

probe::nfs.aop.readpages — 複数のページを読み取る NFS クライアント

概要

nfs.aop.readpages 

nr_pages
この実行で読み取ったページ数
ino
inode 番号
file
filp 引数
size
この実行で読み取ったページ数
rsize
読み取りサイズ(バイト単位)
dev
デバイスの識別子
rpages
読み取りサイズ(ページ内)

説明

事前に読み取れると実行されます。複数のページを 1 度読み取る

名前

probe::nfs.aop.release_page — NFS クライアントのリリースページ

概要

nfs.aop.release_page 

size
リリースページ
ino
inode 番号
dev
デバイスの識別子
__page
ページのアドレス
page_index
マッピング内のオフセットは、ページフレームのページ識別子と位置識別子を使用できます。

説明

NFS でリリース操作を実行すると実行されます。

名前

probe::nfs.aop.set_page_dirty — NFS クライアントのダーティーとしてページをマーキングする

概要

nfs.aop.set_page_dirty 

__page
ページのアドレス
page_flag
ページフラグ

説明

このプローブは、一般的な __set_page_dirty_nobuffers 関数にアタッチします。そのため、このプローブは NFS クライアントに加えて、その他の多くのファイルシステムで実行されます。

名前

probe::nfs.aop.write_begin — NFS クライアントはデータの書き込みを開始します。

概要

nfs.aop.write_begin 

__page
ページのアドレス
page_index
マッピング内のオフセットは、ページフレームのページ識別子と位置識別子を使用できます。
size
書き込みバイト数
to
この書き込み操作の最後アドレス
ino
inode 番号
offset
この書き込み操作のアドレスを開始
dev
デバイスの識別子

説明

nfs で書き込み操作が行われるときに発生します。ページを作成し、ページに対応するリクエストを探します。別のファイルに属する場合は、ページへのあらゆるコピーを試みる前にフラッシュします。また、既存のドロップされたページから要求を見つけると、同じことが言えます。

名前

probe::nfs.aop.write_end — NFS クライアントによるデータ書き込みの完了

概要

nfs.aop.write_end 

sb_flag
super block フラグ
__page
ページのアドレス
page_index
マッピング内のオフセットは、ページフレームのページ識別子と位置識別子を使用できます。
to
この書き込み操作の最後アドレス
ino
inode 番号
i_flag
ファイルフラグ
size
書き込みバイト数
dev
デバイスの識別子
offset
この書き込み操作のアドレスを開始
i_size
ファイルの長さ(バイト単位)

説明

nfs で書き込み操作を実行する際に実行されます(しばしば prepare_write の後で)
NFS ファイルのキャッシュページを更新して作成する可能性があります。

名前

probe::nfs.aop.writepage — NFS クライアントにより、マップされたページを NFS サーバーに書き込む。

概要

nfs.aop.writepage 

wsize
書き込みサイズ
size
この実行で記述されるページ数
i_flag
ファイルフラグ
for_kupdate
writeback_control のフラグは、そのフラグは kupdate ライトバックであるかを示します。
ino
inode 番号
i_size
ファイルの長さ(バイト単位)
dev
デバイスの識別子
for_reclaim
writeback_control のフラグは、ページアロケーターから呼び出されるかどうかを示します。
__page
ページのアドレス
sb_flag
super block フラグ
page_index
マッピング内のオフセットは、ページフレームのページ識別子と位置識別子を使用できます。
i_state
inode 状態フラグ

説明

wb の優先度は、for_reclaim および for_kupdate のフラグにより決定されます。

名前

probe::nfs.aop.writepages — NFS クライアントでは、NFS サーバーにダーティーページを複数書き込む。

概要

nfs.aop.writepages 

for_reclaim
writeback_control のフラグは、ページアロケーターから呼び出されるかどうかを示します。
wpages
書き込みサイズ(ページ内)
nr_to_write
この実行で書き込めたページ数
for_kupdate
writeback_control のフラグは、そのフラグは kupdate ライトバックであるかを示します。
ino
inode 番号
size
この実行で書き込めたページ数
wsize
書き込みサイズ
dev
デバイスの識別子

説明

wb の優先度は、for_reclaim および for_kupdate のフラグにより決定されます。

名前

probe::nfs.fop.aio_read — NFS クライアント aio_read ファイル操作

概要

nfs.fop.aio_read 

ino
inode 番号
cache_time
この inode を読み込んだとき
file_name
ファイル名
buf
ユーザー空間の buf のアドレス。
dev
デバイスの識別子
pos
ファイルの現在の位置。
attrtimeo
キャッシュされた情報が有効であることが予想される時間。jiffies - read_cache_jiffies > attrtimeo の場合は、この inode のキャッシュされた機能を再検証する必要があります。
count
読み取りバイト
parent_name
親ディレクトリー名
cache_valid
キャッシュ関連のビットマスクフラグ

名前

probe::nfs.fop.aio_write — NFS クライアント aio_write ファイル操作

概要

nfs.fop.aio_write 

count
読み取りバイト
parent_name
親ディレクトリー名
ino
inode 番号
file_name
ファイル名
buf
ユーザー空間の buf のアドレス。
dev
デバイスの識別子
pos
ファイルのオフセット

名前

probe::nfs.fop.check_flags — NFS クライアントチェックフラグ操作

概要

nfs.fop.check_flags 

flag
ファイルフラグ

名前

probe::nfs.fop.flush — NFS クライアントのフラッシュファイル操作

概要

nfs.fop.flush 

ndirty
ダーティーページ数
ino
inode 番号
mode
ファイルモード
dev
デバイスの識別子

名前

probe::nfs.fop.fsync — NFS クライアントの fsync 操作

概要

nfs.fop.fsync 

ndirty
ダーティーページ数
ino
inode 番号
dev
デバイスの識別子

名前

probe::nfs.fop.llseek — NFS client llseek operation

概要

nfs.fop.llseek 

ino
inode 番号
whence
シーク元となる位置
dev
デバイスの識別子
offset
ファイルのオフセットは再配置されます。
whence_str
見える位置のシンボリック文字列表現

名前

probe::nfs.fop.lock — NFS クライアントファイルのロック操作

概要

nfs.fop.lock 

fl_start
ロックされた地域のオフセット開始
ino
inode 番号
fl_flag
ロックフラグ
i_mode
ファイルタイプおよびアクセス権限
dev
デバイスの識別子
fl_end
ロックされた地域のオフセットの終了
fl_type
ロックタイプ
cmd
cmd 引数

名前

probe::nfs.fop.mmap — NFS クライアントの mmap 操作

概要

nfs.fop.mmap 

attrtimeo
キャッシュされた情報が有効であることが予想される時間。jiffies - read_cache_jiffies > attrtimeo の場合は、この inode のキャッシュされた機能を再検証する必要があります。
vm_end
vm_mm 内のエンドアドレスの後の最初のバイト。
dev
デバイスの識別子
buf
ユーザー空間の buf のアドレス。
vm_flag
VM フラグ
cache_time
この inode を読み込んだとき
file_name
ファイル名
ino
inode 番号
cache_valid
キャッシュ関連のビットマスクフラグ
parent_name
親ディレクトリー名
vm_start
start address within vm_mm

名前

probe::nfs.fop.open — NFS クライアントファイルのオープン操作

概要

nfs.fop.open 

flag
ファイルフラグ
i_size
ファイルの長さ(バイト単位)
dev
デバイスの識別子
file_name
ファイル名
ino
inode 番号

名前

probe::nfs.fop.read — NFS クライアントの読み取り操作

概要

nfs.fop.read 

devname
ブロックデバイス名

説明

SystemTap は vfs.do_sync_read プローブを使用してこのプローブを実装し、その結果、NFS クライアントの読み取り操作以外の操作を取得します。

名前

probe::nfs.fop.read_iter — NFS クライアント read_iter ファイル操作

概要

nfs.fop.read_iter 

ino
inode 番号
file_name
ファイル名
cache_time
この inode を読み込んだとき
pos
ファイルの現在の位置。
dev
デバイスの識別子
attrtimeo
キャッシュされた情報が有効であることが予想される時間。jiffies - read_cache_jiffies > attrtimeo の場合は、この inode のキャッシュされた機能を再検証する必要があります。
count
読み取りバイト
parent_name
親ディレクトリー名
cache_valid
キャッシュ関連のビットマスクフラグ

名前

probe::nfs.fop.release — NFS クライアントリリースページ操作

概要

nfs.fop.release 

ino
inode 番号
dev
デバイスの識別子
mode
ファイルモード

名前

probe::nfs.fop.sendfile — NFS クライアント送信ファイル操作

概要

nfs.fop.sendfile 

cache_valid
キャッシュ関連のビットマスクフラグ
ppos
ファイルの現在の位置。
count
読み取りバイト
dev
デバイスの識別子
attrtimeo
キャッシュされた情報が有効であることが予想される時間。jiffies - read_cache_jiffies > attrtimeo の場合は、この inode のキャッシュされた機能を再検証する必要があります。
ino
inode 番号
cache_time
この inode を読み込んだとき

名前

probe::nfs.fop.write — NFS クライアントの書き込み操作

概要

nfs.fop.write 

devname
ブロックデバイス名

説明

SystemTap は vfs.do_sync_write プローブを使用してこのプローブを実装し、その結果、NFS クライアントの書き込み操作以外の操作を取得します。

名前

probe::nfs.fop.write_iter — NFS クライアントの write_iter ファイル操作

概要

nfs.fop.write_iter 

parent_name
親ディレクトリー名
count
読み取りバイト
pos
ファイルのオフセット
dev
デバイスの識別子
file_name
ファイル名
ino
inode 番号

名前

probe::nfs.proc.commit — サーバー上で NFS クライアントのデータのコミット

概要

nfs.proc.commit 

size
この実行で読み取りバイト数
prot
転送プロトコル
version
NFS バージョン
server_ip
サーバーの IP アドレス
bitmask1
このファイルシステムでサポートされる属性セットを表す V4 ビットマスク
offset
ファイルオフセット
bitmask0
このファイルシステムでサポートされる属性セットを表す V4 ビットマスク

説明

nfs.proc.commit カーネル機能は、2006 年 12 月 200baa ではカーネルコミット 200baa ではすべて削除されました。そのため、これらのプローブは Linux 2.6.21 以降のカーネルに存在しませんでした。
クライアントがバッファーされたデータをディスクに書き込むときに実行されます。バッファーされたデータはクライアントによって非同期に書き込まれます。コミット機能は同期方法で動作します。このプローブポイントは NFSv2 に存在しません。

名前

probe::nfs.proc.commit_done — コミット RPC タスクへの NFS クライアントの応答

概要

nfs.proc.commit_done 

status
最後の操作の結果
server_ip
サーバーの IP アドレス
prot
転送プロトコル
version
NFS バージョン
count
コミットされたバイト数
valid
fattr->valid、有効なフィールドを示します。
timestamp
リース更新に使用される V4 タイムスタンプ

説明

コミット RPC タスクへの応答を受信するか、またはコミット操作エラーが発生したときに実行されます(タイムアウトまたはソケットシャットダウン)。

名前

probe::nfs.proc.commit_setup — コミット RPC タスクのセットアップ NFS クライアント

概要

nfs.proc.commit_setup 

version
NFS バージョン
count
このコミットのバイト
prot
転送プロトコル
server_ip
サーバーの IP アドレス
bitmask1
このファイルシステムでサポートされる属性セットを表す V4 ビットマスク
bitmask0
このファイルシステムでサポートされる属性セットを表す V4 ビットマスク
offset
ファイルオフセット
size
このコミットのバイト

説明

commit_setup 機能は、コミット RPC タスクを設定するために使用されます。実際のコミット操作は行わないでください。NFSv2 に存在しません。

名前

probe::nfs.proc.create — サーバー上で NFS クライアントファイルの作成

概要

nfs.proc.create 

server_ip
サーバーの IP アドレス
prot
転送プロトコル
version
NFS バージョン(関数がすべての NFS バージョンで使用されます)
filename
ファイル名
fh
親ディレクトリーのファイルハンドル
filelen
ファイル名の長さ
flag
作成モードを指定します(NFSv3 および NFSv4 のみ)

名前

probe::nfs.proc.handle_exception — NFSv4 例外を処理する NFS クライアント

概要

nfs.proc.handle_exception 

errorcode
エラーのタイプを示します。

説明

これは、NFSv4 のプロセスに対するエラー処理ルーチンです。

名前

probe::nfs.proc.lookup — NFS クライアントがサーバー上のファイルを開く/検索

概要

nfs.proc.lookup 

bitmask1
このファイルシステムでサポートされる属性セットを表す V4 ビットマスク
bitmask0
このファイルシステムでサポートされる属性セットを表す V4 ビットマスク
filename
クライアントがサーバー上で開かれるファイルの名前
server_ip
サーバーの IP アドレス
prot
転送プロトコル
name_len
ファイル名の長さ
version
NFS バージョン

名前

probe::nfs.proc.open — NFS クライアントは、ファイルの読み取り/書き込みコンテキスト情報を割り当てます。

概要

nfs.proc.open 

flag
ファイルフラグ
filename
ファイル名
version
NFS バージョン(関数がすべての NFS バージョンで使用されます)
prot
転送プロトコル
mode
ファイルモード
server_ip
サーバーの IP アドレス

説明

ファイルの読み取り/書き込みコンテキスト情報の確保

名前

probe::nfs.proc.read — NFS クライアントの同期がサーバーからファイルを読み込む

概要

nfs.proc.read 

offset
ファイルオフセット
server_ip
サーバーの IP アドレス
flags
rpc_init_task 関数に task->tk_flags を設定するために使用されます
prot
転送プロトコル
count
この実行で読み取りバイト数
version
NFS バージョン

説明

nfs.proc.read カーネル機能は、2006 年 12 月のカーネルコミット 8e0969 ですべて削除されました。そのため、これらのプローブは Linux 2.6.21 以降のカーネルに存在しません。

名前

probe::nfs.proc.read_done — 読み取り RPC タスクへの NFS クライアントの応答

概要

nfs.proc.read_done 

timestamp
リース更新に使用される V4 タイムスタンプ
prot
転送プロトコル
count
読み取りバイト数
version
NFS バージョン
status
最後の操作の結果
server_ip
サーバーの IP アドレス

説明

読み取り RPC タスクへの応答を受信するか、または読み取りエラーが発生する(タイムアウトまたはソケットのシャットダウン)時に実行されます。

名前

probe::nfs.proc.read_setup — 読み取り RPC タスクの設定

概要

nfs.proc.read_setup 

offset
ファイルオフセット
server_ip
サーバーの IP アドレス
prot
転送プロトコル
version
NFS バージョン
count
この実行で読み取りバイト数
size
この実行で読み取りバイト数

説明

read_setup 機能は、読み取り RPC タスクを設定するために使用されます。実際の読み取り操作を行わないでください。

名前

probe::nfs.proc.release — NFS クライアントのリリースファイルの読み取り/書き込みコンテキスト情報

概要

nfs.proc.release 

flag
ファイルフラグ
filename
ファイル名
prot
転送プロトコル
version
NFS バージョン(関数がすべての NFS バージョンで使用されます)
mode
ファイルモード
server_ip
サーバーの IP アドレス

説明

リリースファイルの読み取り/書き込みコンテキスト情報

名前

probe::nfs.proc.remove — NFS クライアントがサーバーのファイルを削除

概要

nfs.proc.remove 

prot
転送プロトコル
version
NFS バージョン(関数がすべての NFS バージョンで使用されます)
server_ip
サーバーの IP アドレス
filelen
ファイル名の長さ
filename
ファイル名
fh
親ディレクトリーのファイルハンドル

名前

probe::nfs.proc.rename — NFS クライアントはサーバー上のファイルの名前を変更します。

概要

nfs.proc.rename 

new_fh
新しい親ディレクトリーのファイルハンドル
new_filelen
新規ファイル名の長さ
old_name
古いファイル名
version
NFS バージョン(関数がすべての NFS バージョンで使用されます)
old_fh
古い親ディレクトリーのファイルハンドル
prot
転送プロトコル
new_name
新しいファイル名
old_filelen
古いファイル名の長さ
server_ip
サーバーの IP アドレス

名前

probe::nfs.proc.rename_done — NFS クライアントの name RPC タスクへの応答

概要

nfs.proc.rename_done 

timestamp
リース更新に使用される V4 タイムスタンプ
status
最後の操作の結果
server_ip
サーバーの IP アドレス
prot
転送プロトコル
version
NFS バージョン
old_fh
古い親ディレクトリーのファイルハンドル
new_fh
新しい親ディレクトリーのファイルハンドル

説明

名前変更 RPC タスクへの応答を受信するか、名前変更があった場合(タイムアウトまたはソケットのシャットダウン)時に実行されます。

名前

probe::nfs.proc.rename_setup — NFS クライアントの名前変更 RPC タスクの設定

概要

nfs.proc.rename_setup 

fh
親ディレクトリーのファイルハンドル
prot
転送プロトコル
version
NFS バージョン
server_ip
サーバーの IP アドレス

説明

rename_setup 関数は、名前を RPC タスクを設定するために使用します。実際の名前変更操作を行わないでください。

名前

probe::nfs.proc.write — NFS クライアントがファイルを同期的にサーバーに書き込む

概要

nfs.proc.write 

size
この実行で読み取りバイト数
flags
rpc_init_task 関数に task->tk_flags を設定するために使用されます
prot
転送プロトコル
version
NFS バージョン
bitmask1
このファイルシステムでサポートされる属性セットを表す V4 ビットマスク
offset
ファイルオフセット
bitmask0
このファイルシステムでサポートされる属性セットを表す V4 ビットマスク
server_ip
サーバーの IP アドレス

説明

nfs.proc.write カーネル機能は、2006 年 12 月 200baa ではカーネルコミット 200baa ではすべて削除されました。そのため、これらのプローブは Linux 2.6.21 以降のカーネルに存在しません。

名前

probe::nfs.proc.write_done — NFS クライアントの書き込み RPC タスクへの応答

概要

nfs.proc.write_done 

server_ip
サーバーの IP アドレス
status
最後の操作の結果
version
NFS バージョン
count
書き込まれたバイト数
prot
転送プロトコル
valid
fattr->valid、有効なフィールドを示します。
timestamp
リース更新に使用される V4 タイムスタンプ

説明

書き込み RPC タスクへの応答を受信するか、または書き込みエラーが発生したときに実行されます(タイムアウトまたはソケットのシャットダウン)。

名前

probe::nfs.proc.write_setup — 書き込み RPC タスクの設定 NFS クライアント

概要

nfs.proc.write_setup 

size
この実行で記述されたバイト数
prot
転送プロトコル
version
NFS バージョン
count
この実行で記述されたバイト数
bitmask0
このファイルシステムでサポートされる属性セットを表す V4 ビットマスク
bitmask1
このファイルシステムでサポートされる属性セットを表す V4 ビットマスク
offset
ファイルオフセット
how
args.stable の設定に使用します。安定した値は、NFS_UNSTABLE,NFS_DATA_SYNC,NFS_FILE_SYNC(nfs.proc3.write_setup と nfs.proc4.write_setup)になります。
server_ip
サーバーの IP アドレス

説明

write RPC タスクの設定には、write_setup 関数が使用されます。実際の書き込み操作を行わないでください。

名前

probe::nfsd.close — クライアントのファイルを閉じる NFS サーバー

概要

nfsd.close 

filename
ファイル名

説明

このプローブポイントは、4.2 以降のカーネルには存在しません。

名前

probe::nfsd.commit — 保留中のすべての書き込みを安定したストレージにコミットする NFS サーバー

概要

nfsd.commit 

fh
ファイルハンドル(最初の部分はファイルハンドルの長さ)
flag
この実行が同期操作であるかどうかを示します。
offset
ファイルのオフセット
size
読み取りバイト
count
読み取りバイト
client_ip
クライアントの IP アドレス

名前

probe::nfsd.create — クライアントのファイル(regular,dir,device、fifo)の作成

概要

nfsd.create 

fh
ファイルハンドル(最初の部分はファイルハンドルの長さ)
iap_valid
属性フラグ
filelen
ファイル名の長さ
type
ファイルタイプ(regular,dir,device,fifo ...)
filename
ファイル名
iap_mode
ファイルアクセスモード
client_ip
クライアントの IP アドレス

説明

nfsd がこのプローブポイントではなく、nfsd_create_v3 を呼び出すことがあります。

名前

probe::nfsd.createv3 — NFS サーバー通常のファイルの作成、またはクライアントのファイル属性の設定

概要

nfsd.createv3 

iap_mode
ファイルアクセスモード
filename
ファイル名
client_ip
クライアントの IP アドレス
fh
ファイルハンドル(最初の部分はファイルハンドルの長さ)
createmode
Create mode。設定可能な値は NFS3_CREATE_EXCLUSIVE、NFS3_CREATE_UNCHECKED、または NFS3_CREATE_GUARDED です。
filelen
ファイル名の長さ
iap_valid
属性フラグ
verifier
ファイル属性(atime,mtime,mode)これは、CREATE_EXCLUSIVE のファイル属性をリセットするために使用されます。
truncp
trunp 引数は、ファイルが切り捨てられるかどうかを示します。

説明

このプローブポイントは、op_claim_type が NFS4_OPEN_CLAIM_NULL の場合に nfsd3_proc_create および nfsd4_open でのみ呼び出されます。

名前

probe::nfsd.dispatch — NFS サーバーはクライアントから操作を受け取ります。

概要

nfsd.dispatch 

xid
転送 ID
version
NFS バージョン
proto
転送プロトコル
proc
手順番号
client_ip
クライアントの IP アドレス
prog
プログラム番号

名前

probe::nfsd.lookup — クライアントのファイルを開いたり、ファイルを検索したり、検索する NFS サーバー

概要

nfsd.lookup 

filename
ファイル名
client_ip
クライアントの IP アドレス
fh
親 dir のファイルハンドル(最初の部分はファイルハンドルの長さ)
filelen
ファイル名の長さ

名前

probe::nfsd.open — クライアントのファイルを開く NFS サーバー

概要

nfsd.open 

fh
ファイルハンドル(最初の部分はファイルハンドルの長さ)
type
ファイルのタイプ(通常のファイルまたは dir)
access
オープンのタイプ(read/write/commit/readdir...)を示します。
client_ip
クライアントの IP アドレス

名前

probe::nfsd.proc.commit — クライアントにコミット操作を実行する NFS サーバー

概要

nfsd.proc.commit 

count
読み取りバイト
client_ip
クライアントの IP アドレス
proto
転送プロトコル
size
読み取りバイト
version
NFS バージョン
uid
リクエスターのユーザー ID
offset
ファイルのオフセット
gid
リクエスターのグループ ID
fh
ファイルハンドル(最初の部分はファイルハンドルの長さ)

名前

probe::nfsd.proc.create — クライアント用のファイルを作成する NFS サーバー

概要

nfsd.proc.create 

proto
転送プロトコル
filename
ファイル名
client_ip
クライアントの IP アドレス
uid
リクエスターのユーザー ID
version
NFS バージョン
gid
リクエスターのグループ ID
fh
ファイルハンドル(最初の部分はファイルハンドルの長さ)
filelen
ファイル名の長さ

名前

probe::nfsd.proc.lookup — クライアントのファイルを開いたり、検索する NFS サーバー

概要

nfsd.proc.lookup 

fh
親ディレクトリーのファイルハンドル(最初の部分はファイルハンドルの長さ)
gid
リクエスターのグループ ID
filelen
ファイル名の長さ
uid
リクエスターのユーザー ID
version
NFS バージョン
proto
転送プロトコル
filename
ファイル名
client_ip
クライアントの IP アドレス

名前

probe::nfsd.proc.read — クライアントの NFS サーバーの読み込みファイル

概要

nfsd.proc.read 

size
読み取りバイト
vec
構造 kvec には、カーネルアドレスと各バッファーの長さに buf アドレスが含まれます。
version
NFS バージョン
uid
リクエスターのユーザー ID
count
読み取りバイト
client_ip
クライアントの IP アドレス
proto
転送プロトコル
offset
ファイルのオフセット
gid
リクエスターのグループ ID
vlen
読み込みブロック
fh
ファイルハンドル(最初の部分はファイルハンドルの長さ)

名前

probe::nfsd.proc.remove — クライアントのファイルを削除する NFS サーバー

概要

nfsd.proc.remove 

gid
リクエスターのグループ ID
fh
ファイルハンドル(最初の部分はファイルハンドルの長さ)
filelen
ファイル名の長さ
uid
リクエスターのユーザー ID
version
NFS バージョン
proto
転送プロトコル
filename
ファイル名
client_ip
クライアントの IP アドレス

名前

probe::nfsd.proc.rename — クライアントのファイルの名前変更

概要

nfsd.proc.rename 

uid
リクエスターのユーザー ID
tfh
新しいパスのファイルハンドラー
tname
新しいファイル名
filename
古いファイル名
client_ip
クライアントの IP アドレス
flen
古いファイル名の長さ
gid
リクエスターのグループ ID
fh
古いパスのファイルハンドラー
tlen
新規ファイル名の長さ

名前

probe::nfsd.proc.write — クライアント用のファイルへのデータを書き込む NFS サーバー

概要

nfsd.proc.write 

offset
ファイルのオフセット
gid
リクエスターのグループ ID
vlen
読み込みブロック
fh
ファイルハンドル(最初の部分はファイルハンドルの長さ)
size
読み取りバイト
vec
構造 kvec には、カーネルアドレスと各バッファーの長さに buf アドレスが含まれます。
stable
argp->stable
version
NFS バージョン
uid
リクエスターのユーザー ID
count
読み取りバイト
client_ip
クライアントの IP アドレス
proto
転送プロトコル

名前

probe::nfsd.read — クライアントからデータを読み取る NFS サーバー

概要

nfsd.read 

offset
ファイルのオフセット
vlen
読み込みブロック
file
引数ファイル - ファイルが開かれるかどうかを示します。
fh
ファイルハンドル(最初の部分はファイルハンドルの長さ)
count
読み取りバイト
client_ip
クライアントの IP アドレス
size
読み取りバイト
vec
構造 kvec には、カーネルアドレスと各バッファーの長さに buf アドレスが含まれます。

名前

probe::nfsd.rename — クライアントのファイルの名前変更 NFS サーバー

概要

nfsd.rename 

tlen
新規ファイル名の長さ
fh
古いパスのファイルハンドラー
flen
古いファイル名の長さ
client_ip
クライアントの IP アドレス
filename
古いファイル名
tname
新しいファイル名
tfh
新しいパスのファイルハンドラー

名前

probe::nfsd.write — クライアント用のファイルにデータを書き込む NFS サーバー

概要

nfsd.write 

offset
ファイルのオフセット
fh
ファイルハンドル(最初の部分はファイルハンドルの長さ)