ディスクIOをトレースする(2)

2012/09/29
dtrace のトレース結果と、illumos のソースブラウザをリンクさせるスクリプト。 #!/usr/bin/perl use strict; use warnings; my $indent_max = 0; my @trace; my $count = 0; while (<>) { if (/^ *[0-9]+( +)\-> ([^ ]+)/) { my $indent = length($1) / 2; $indent_max = $indent if ($indent_max < $indent); $trace[$count]{'indent'} = $indent; $trace[$count++]{'function'} = $2; } } print "<style type=\"text/css\">\n"; print "td {\n"; print "\twidth:...
Read more ...

mdb写経/UFS

2012/09/28
dcmds address ::acl inode を指定して、acl を表示します。 > ffffff01da291d00::acl ADDR TAG PERM WHO ffffff01e2c22628 USER_OBJ 06 0 ffffff01e151de10 GROUP_OBJ 0 3 ffffff01e35968e8 OTHER_OBJ 0 0 ffffff01e0cca3c8 USER 07 60004 [ address ] ::cg [-v] cylinder group 構造体の概要を表示します。 > ::cg CGX CG ...
Read more ...

システムをクラッシュさせる方法いろいろ

2012/09/27
1. break して sync # Debugging requested; hardware watchdog suspended. c)ontinue, s)ync, r)eset? s panic[cpu6]/thread=2a101299c60: sync initiated sched: trap type = 0x0 pid=0, pc=0x0, sp=0x0, tstate=0x0, context=0x0 o0-o7: 0, 0, 0, 0, 0, 0, 0, 0 g1-g7: 0, 0, 0, 0, 0, 0, 0 000002a101299350 unix:sync_handler+138 (3000943a000, 0, 10d4c00, 2a101299c60, 1, 183f800) %l0-3: 0000000001931400 0000000000000000 0000000001913c00 0000000000000000 ...
Read more ...

mdb写経/ファイル

2012/09/22
dcmds process ::fd fd-num 指定された proc_t 構造体のプロセスに関連するファイル記述子 fd-num に対応する file_t 構造体のアドレスを出力します。 > 1::pid2proc |::fd 0 |::print file_t f_vnode |::vnode2path /etc/initpipe process ::pfiles [-fp] 指定された proc_t 構造体のプロセスがオープンしているファイルに関する情報を表示します。 -p パス名を表示します -f file_t 構造体に関する情報を表示します > ffffff00e264b060::pfiles FD TYPE VNODE INFO 0 CHR ffffff00cc1f6100 /devices/pseudo/mm@0:null 1 CHR...
Read more ...

mdb写経/タスク待ち行列とエラー待ち行列

2012/09/22
dcmds [ address ] ::errorq 指定されたエラー待ち行列に関連する情報の要約を表示します。アドレスを指定しないと、すべてのシステムエラー待ち行列に関連する情報が表示されます。各待ち行列のアドレス、名前、待ち行列の長さ、データ要素サイズ、および、さまざまな待ち行列統計が表示されます。 > ::errorq ADDR NAME S V N ACCEPT DROP LOG 300024fc540 errh_queue + 0 0 0 300024fc7c0 ce_queue + 0 0 0 300024fca40 ue_queue + ! 0 0 0 300024fd440 fm_ereport_queue...
Read more ...

mdb写経/ゾーンおよびリソース管理

2012/09/21
dcmds address ::rctl [handle] 指定した rctl_t 構造体の定義を表示します。 > 0000030014dbe3f8::rctl 0000030014dbe3f8 8 : process.max-sem-nsems (cur) 0x200 privileged flags=<DENY> 0x7fff system flags=<DENY,MAX> [ address ] ::rctl_dict システム全体のデフォルト rctl の定義を表示します。 > ::rctl_dict ID NAME ADDR TYPE GLOBAL_FLAGS 12...
Read more ...

mdb写経/ZFS

2012/09/21
dcmds ::arc ARC の各種変数を表示します。 > ::arc hits = 327944 misses = 11177 demand_data_hits = 282145 demand_data_misses = 3369 demand_metadata_hits = 37056 demand_metadata_misses = 2574 prefetch_data_hits = 575 prefetch_data_misses = 1102 prefetch_metadata_hits = 8168 prefetch_metadata_misses = 4132 ...
Read more ...

mdb写経/スレッド、プロセス、タスク、およびプロジェクト

2012/09/21
dcmds thread ::findstack [-v] 指定されたカーネルスレッド (kthread_t 構造体の仮想アドレスによって識別される) に関連するスタックトレースを出力します。複数の異なるアルゴリズムを使用して該当するスタックバックトレースを見つけます。オプションのコマンド文字列を指定すると、ドット変数はスタックフレームの最先頭のフレームポインタアドレスにリセットされ、指定されたコマンドはコマンド行に入力された場合と同じように評価されます。デフォルトのコマンド文字列は、「<.$C0」です。すなわち、フレームポインタを含め、引数を付けずにスタックトレースを出力します。 > 000002a100067c60::findstack stack pointer for thread 2a100067c60: 2a1000670c1 [ 000002a1000670c1 cv_wait+0x3c() ] 000002a100067171...
Read more ...

mdb写経/その他のファイルシステム

2012/09/21
dcmds [ address ] ::contract contract を表示します。 > ::contract ADDR ID TYPE STATE OWNER REGENT 000003000f943bc0 1 process owned 18a62c0 0 000003001099dc40 3 process owned 3000f94af80 3000f943bc0 0000030010efa680 4 process owned 30010ee8f98 3001099dc40 00000300112b7780 5 process owned ...
Read more ...

mdb写経/NFS

2012/09/21
dcmds address ::nfs_expvis exportinfo visible list の内容を表示します(visible list があるのは pseudo ノードだけ)。 > 0x60017e6ddc0::nfs_expvis exportinfo->exp_visible = 60017e6ddc0 /Install/Images/sc_3.2_u2 addr: 60017e6ddc0 exp : 0 ref: 1 vp : 60014a34b00 ino : 13 (0xd) seci: 6001679c300 nsec: 1 Security Flavors : sys ref: 1 flag: 0x0 () address ::nfs_expinfo exportinfo...
Read more ...

mdb写経/カーネル実行時リンカー

2012/09/21
dcmds ::ctfinfo モジュールの CTF(Compact ANSI-C Type Format) に関する情報を表示します。 > ::ctfinfo MODULE CTFDATA CTFSIZE unix ffffff00c7bd5000 87877 genunix ffffff00c8398000 430688 specfs ffffff00c7bea920 538 fifofs ffffff00c7bea748 470 dtrace ffffff00cf7b3000 4271 devfs ...
Read more ...

mdb写経/デバイスドライバと DDI フレームワーク

2012/09/20
dcmds address ::binding_hash_entry 指定されたカーネル名とメジャー番号のバインディングハッシュテーブルエントリ (構造体 bind) のアドレスを使用して、ノードバインディング名、メジャー番号、および次の要素へのポインタを表示します。 [ address ] ::dev2major <dev_t> dev_t をメジャー番号に変換します。 > 4500000006::dev2major 0x45 (0t69) [ address ] ::dev2minor <dev_t> dev_t をメジャー番号に変換します。 > 4500000006::dev2minor 0x6 (0t6) address ::dev2snode dev_t を snode に変換します。 > e400000000::dev2snode 3000bd6d738 3000bd6d6a0 >...
Read more ...