ラベル mdb の投稿を表示しています。 すべての投稿を表示
ラベル mdb の投稿を表示しています。 すべての投稿を表示

mdb写経/ネットワーク関連機能

2013/08/16

dcmds

address ::arphdr

指定されたアドレスの ARP header 構造体(arh_t) を表示する。


[ address ] ::conn_status

指定されたアドレスの display connection 構造体(conn_t)を表示する。 > ::conn_status ADDR WQ STACK ZONE SRC:PORT DEST:PORT 300143ecac0 0 0 0 0.0.0.0:68 0.0.0.0:0 3001729d600 0 0 0 :::69 :::0 30016959580 30016957340 0 0 0.0.0.0:111 0.0.0.0:0 30014885000 3001695dae8 0 0 :::111 :::0 30016958180 0 0 0 0.0.0.0:520 0.0.0.0:0 : :


[ address ] ::dce [-P v4 | v6] [-s exclusive-ip-zone-name]

Destination Cache Entry 構造体(dce_t)を表示する > ::dce ADDR FLAGS PMTU DST_ADDR ffffff00c77b4be8 0 16.231.223.255 ffffff00c77b4c80 0 16.231.223.255 ffffff00c77b4d18 0 ::1 ffffff00c77b4db0 0 16.231.223.255 ffffff00c77b4e48 0 16.231.223.255 ffffff00c77b4ee0 D 0


[ address ] ::ill [-v] [-P v4 | v6] [-s exclusive-ip-zone-name]

以下のフィールドを表示する : ill_t 構造体のポインタ, インターフェイス名, IP バージョン, カウント, ill タイプと ill フラグ。カウントフィールドは、個々の refcnts の合計であり、-v オプションを指定すると展開される。 > ::ill ADDR NAME VER TYPE CNT WQ FLAGS ffffff00c9c3a248 lo0 v4 LOOPBACK 4 0 R,V,M ffffff00c96beda8 net0 v4 ETHER 26 ffffff00ca7eab80 R,M ffffff00c93eeb88 lo0 v6 LOOPBACK 5 0 R,V,M ffffff00c96bf228 net0 v6 ETHER 19 ffffff00ce493b90 R,M > ffffff00c96beda8::ill -v ADDR NAME VER TYPE WQ IPST FLAGS PHYINT CNT GROUP ffffff00c96beda8 net0 v4 ETHER ffffff00ca7eab80 ffffff00c6574000 RUNNING,MULTICAST ffffff00ca77abc8 26 0 | +--> 0 ill_refcnt references from active threads 10 ill_ire_cnt ires referencing this ill 7 ill_nce_cnt nces referencing this ill 7 ill_ncec_cnt ncecs referencing this ill 2 ill_ilm_cnt ilms referencing this ill


[ address ] ::illif [-P v4 | v6]

下位レベルの IP インタフェース構造を表示する。 > ::illif ADDR IP AVLADDR NUMNODES ARENA NAME ffffff00c9ccf5c0 v4 ffffff00c9ccf5d0 1 0 lo ffffff00c9cd2c88 v4 ffffff00c9cd2c98 1 0 net ffffff00c9c103e0 v6 ffffff00c9c103f0 1 0 lo ffffff00c9cd18d0 v6 ffffff00c9cd18e0 1 0 net


[ address ] ::ipif [-v] [-P v4 | v6]

以下のフィールドを表示する : ipif_t 構造体ポインタ, インターフェイス名, カウント, ill_t 構造体ポインタ, ステータスフラグと ipif フラグ。カウントフィールドは、個々の refcnts の合計であり、-v オプションを指定すると展開される。

フラグ:
UNN UNNUMBERED
DHCP DHCPRUNNING
PRIV PRIVATE
NOXMT NOXMIT
NOLCL NOLOCAL
DEPR DEPRECATED
PREF PREFERRED
TEMP TEMPORARY
ACONF ADDRCONF
ANY ANYCAST
NFAIL NOFAILOVER
ADR ipif_addr_ready
MU ipif_multicast_up
WU ipif_was_up
WD ipif_was_dup
JA ipif_joined_allhosts
> ::ipif ADDR NAME CNT ILL STFLAGS FLAGS LCLADDR ffffff00c9cce7a8 lo0 0 ffffff00c9c3a248 UP,ADR 127.0.0.1/8 ffffff00c9bc7ce0 net0 0 ffffff00c96beda8 UP,ADR 192.168.0.35/24 ffffff00c9cceb28 lo0 0 ffffff00c93eeb88 UP,ADR ::1/128 ffffff00c9bc7340 net0 0 ffffff00c96bf228 UP,DHCP,ADR fe80::5054:ff:fe42:3c90/10 > ::ipif -v ADDR NAME CNT ILL STFLAGS FLAGS LCLADDR BROADCAST ffffc10006466dd0 lo0 0 ffffc100052f5908 UP,ADR | +---> 0 ipif_refcnt Active consistent reader cnt 127.0.0.1/8 0.0.0.0 ffffc10006fd4458 net0 0 ffffc100065214a8 UP,ADR | +---> 0 ipif_refcnt Active consistent reader cnt 192.168.0.35/24 192.168.0.255 ffffc100058f0858 vnic10 0 ffffc10006522b28 UP,ADR | +---> 0 ipif_refcnt Active consistent reader cnt 172.16.0.254/24 172.16.0.255 : :


[ address ] ::ire [-v] [-P v4|v6] [-s exclusive-ip-zone-name]

指定された ire_t 構造体、またはカーネルのアクティブな ire_t 構造体のテーブルを出力する。

> ::ire ADDR SRC DST STACK ZONE INTF ffffc1000729f018 0.0.0.0 192.168.0.2 0 0 net0 ffffc1000729f178 0.0.0.0 192.168.0.1 0 0 net0 ffffc1000729f2d8 0.0.0.0 172.16.0.255 0 0 vnic10 ffffc1000729f438 0.0.0.0 192.168.0.35 0 0 net0 ffffc1000729f598 :: fe80:: 0 0 vnic10 ffffc1000729f6f8 :: ff00::100:0 0 -1 vnic10 ffffc1000729f858 0.0.0.0 172.16.0.254 0 0 vnic10 ffffc1000729f9b8 0.0.0.0 172.16.0.0 0 0 vnic10 ffffc1000729fb18 0.0.0.0 0.0.0.0 0 0 vnic10 : :


[ address ] ::mac_flow [-u] [-aprtsm]

Flow Entry 構造体を表示する。アドレスが指定されている場合は、そのアドレスの flow_entry_t 構造体を表示する。そうでない場合は、システム内のすべてのフローが出力される。

オプション:

-u ユーザ定義されたリンク&VNICフローを表示する
-a フロー属性を表示する
-p プロープロパティを表示する
-r 受信側の情報を表示する
-t 送信側の情報を表示する
-s 静的フローを表示する
-m その他のフロー情報を表示する

Flow Types:
P FLOW_PRIMARY_MAC
V FLOW_VNIC_MAC
M FLOW_MCAST
O FLOW_OTHER
U FLOW_USER
NS FLOW_NO_STATS

Flow Flags:
Q FE_QUIESCE
W FE_WAITER
T FE_FLOW_TAB
G FE_G_FLOW_HASH
I FE_INCIPIENT
C FE_CONDEMNED
NU FE_UF_NO_DATAPATH
NC FE_MC_NO_DATAPATH
※参考 Project Crossbow - Introducing data structures > ::mac_flow LINK MIP ADDR FLOW NAME ID MCIP MIP NAME ZID ffffc10007c26870 mac/rtls0/mcast14 0 0 0 0 ffffc10006639008 vsw2 0 ffffc10005d64b40 ffffc10006624340 vnic1004 0 ffffc1000663e6c0 vnic12 0 ffffc10005d650c0 ffffc10006630940 vnic1000 0 ffffc10006643d78 vnic11 0 ffffc10005d65640 ffffc10006630940 vnic1000 0 ffffc10006649430 mac/vnic1000/mcast1 0 0 0 0 ffffc1000664eae8 vnic10 0 ffffc10005d65bc0 ffffc10006630940 vnic1000 0 ffffc100066541a0 vsw1 0 ffffc10005d66140 ffffc10006630940 vnic1000 0 ffffc10006659858 net0 0 ffffc10005d666c0 ffffc10006633ac0 rtls0 0 ffffc10007391018 mac/vnic1000/mcast11 0 0 0 0 ffffc100073966d0 mac/vnic1000/mcast10 0 0 0 0 ffffc1000739bd88 mac/vnic1000/mcast13 0 0 0 0 : : > ::mac_flow -m ADDR FLOW NAME TYPE FLAGS MATCH_FN ZONE ffffc10007c26870 mac/rtls0/mcast14 M T flow_l2_match ffffc10006639008 vsw2 ND ffffc1000663e6c0 vnic12 V T flow_l2_match ffffc10006643d78 vnic11 V T flow_l2_match ffffc10006649430 mac/vnic1000/mcast1 M T flow_l2_match ffffc1000664eae8 vnic10 V T flow_l2_match ffffc100066541a0 vsw1 ND ffffc10006659858 net0 P T flow_l2_match ffffc10007391018 mac/vnic1000/mcast11 M T flow_l2_match ffffc100073966d0 mac/vnic1000/mcast10 M T flow_l2_match ffffc1000739bd88 mac/vnic1000/mcast13 M T flow_l2_match : :


address ::mi [-p] [-d | -m]

指定されたカーネル MI_O を使用して、MI_O またはそのペイロードをフィルタリングおよび表示する。

オプション:

-p MI_O に対応するペイロードのアドレスが表示され、指定しないとMI_O 自身が表示される
-d 指定したデバイスの MI_O オブジェクトのみを表示する
-m 指定したモジュールの MI_O オブジェクトのみを表示する


[ address ] ::nce [-P v4 | v6] [-i <interface>]

Neighbor Cache 構造体を表示する。 > ::nce ADDR INTF LLADDR FP_MP REFCNT NCE_ADDR ffffff00ca2599a8 net0 14:da:e9:01:5f:d4 ffffff00cf4cc780 3 192.168.0.2 ffffff00ca259a58 net0 33:33:00:01:00:02 ffffff00cf4cc9c0 1 ff02::1:2 ffffff00ca259ab0 net0 01:00:5e:00:00:02 ffffff00cf4ccd40 2 224.0.0.2 ffffff00ca259b08 net0 ff:ff:ff:ff:ff:ff ffffff00cf2ab820 2 192.168.0.255 ffffff00ca259b60 net0 01:00:5e:00:00:09 ffffff00cf2abaa0 1 224.0.0.9 ffffff00ca259bb8 net0 33:33:00:00:02:02 ffffff00cf2ab5e0 1 ff02::202 ffffff00ca259c10 net0 33:33:00:00:00:02 ffffff00cf2ab620 2 ff02::2 ffffff00ca259c68 net0 52:54:00:9c:47:8c ffffff00ce486320 2 192.168.0.5 ffffff00ca259cc0 net0 90:e6:ba:2e:9d:21 ffffff00ce4864e0 3 192.168.0.1 ffffff00ca259d18 net0 33:33:00:00:00:01 ffffff00ce49f040 1 ff02::1 ffffff00ca259d70 net0 33:33:00:00:00:16 ffffff00ce463360 1 ff02::16 : :


[ address ] ::ncec [-P v4 | v6]

Neighbor Cache Entry 構造体を表示する。 > ::ncec ADDR HW_ADDR STATE FLAGS ILL IP ADDR ffffff00ca25ad50 52:54:00:42:3c:90 reachable P net0 192.168.0.35 ffffff00ca25a3f0 90:e6:ba:2e:9d:21 reachable net0 192.168.0.1 ffffff00ca25a328 14:da:e9:01:5f:d4 reachable net0 192.168.0.2 ffffff00ca25a968 52:54:00:9c:47:8c reachable net0 192.168.0.5 ffffff00ca25aee0 None reachable P lo0 127.0.0.1 ffffff00ca25a648 ff:ff:ff:ff:ff:ff reachable P,B net0 192.168.0.255 ffffff00ca25a580 01:00:5e:00:00:02 reachable P net0 224.0.0.2 ffffff00ca25a710 01:00:5e:00:00:09 reachable P net0 224.0.0.9 ffffff00ca25a7d8 33:33:00:00:02:02 reachable P net0 ff02::202 ffffff00ca25aa30 33:33:00:00:00:01 reachable P net0 ff02::1 ffffff00ca25ae18 None reachable P lo0 ::1 ffffff00ca25a8a0 33:33:00:00:00:02 reachable P net0 ff02::2 ffffff00ca25a4b8 33:33:00:01:00:02 reachable P net0 ff02::1:2 ffffff00ca25aaf8 33:33:00:00:00:16 reachable P net0 ff02::16 : :


::netstat [-av] [-f inet | inet6 | unix] [-P tcp | udp]

ネットワークの統計とアクティブな接続を表示する。
-a すべてのソケットの状態を表示する
-v より詳細な出力を表示する
-f 指定したアドレスファミリに関連する接続だけを表示する
-P 指定したプロトコルに関連する接続だけを表示する
> ::netstat AF_UNIX Type Vnode Conn Local Addr Remote Addr Zone ffffff00cfbd6bd8 stream-ord ffffff00cf8de800 0000000000000000 /var/run/radsocket-unauth (none) 0 ffffff00cf4ce030 stream-ord ffffff00cf8dec00 0000000000000000 /var/run/radsocket (none) 0 ffffff00cf4ce410 dgram ffffff00cf2ac180 0000000000000000 /system/volatile/in.rdisc_mib (none) 0 ffffff00cf4ce7f0 stream-ord ffffff00cf4d3040 0000000000000000 /system/volatile/inetd.uds (none) 0 ffffff00cf2a5028 dgram ffffff00cf4a9b40 0000000000000000 /system/volatile/in.ndpd_mib (none) 0 ffffff00cf2a5408 stream-ord ffffff00cf4a9940 0000000000000000 /system/volatile/in.ndpd_ipadm (none) 0 ffffff00cf2a57e8 stream-ord 0000000000000000 0000000000000000 /var/run/dbus/system_bus_socket 0 ffffff00cf2a5bc8 stream-ord 0000000000000000 0000000000000000 /var/run/dbus/system_bus_socket 0 ffffff00cea90020 stream-ord 0000000000000000 ffffff00ce909140 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00cea90400 stream-ord 0000000000000000 ffffff00cd876d40 /var/run/dbus/system_bus_socket 0 ffffff00cea907e0 stream-ord 0000000000000000 0000000000000000 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00cea90bc0 stream-ord 0000000000000000 ffffff00cd876d40 /var/run/dbus/system_bus_socket 0 ffffff00cea95018 stream-ord 0000000000000000 0000000000000000 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00cea953f8 stream-ord 0000000000000000 0000000000000000 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00cea957d8 stream-ord 0000000000000000 ffffff00ce909140 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00cea95bb8 stream-ord 0000000000000000 ffffff00ce909140 /system/volatile/hald/dbus-LiNAK1IXLm 0 ffffff00ce487010 stream-ord 0000000000000000 0000000000000000 /system/volatile/hald/dbus-7MhanEXm6c 0 ffffff00ce4873f0 stream-ord ffffff00ce909140 0000000000000000 /system/volatile/hald/dbus-LiNAK1IXLm (none) 0 ffffff00ce4877d0 stream-ord ffffff00ce8aac80 0000000000000000 /var/run/cups-socket (none) 0 ffffff00ce487bb0 stream-ord 0000000000000000 ffffff00ce9c7800 /system/volatile/hald/dbus-7MhanEXm6c 0 ffffff00cdabb008 stream-ord 0000000000000000 0000000000000000 (socketpair) (socketpair) 0 ffffff00cdabb3e8 stream-ord 0000000000000000 0000000000000000 (socketpair) (socketpair) 0 ffffff00cdabb7c8 stream-ord ffffff00ce9c7800 0000000000000000 /system/volatile/hald/dbus-7MhanEXm6c (none) 0 ffffff00cdabbba8 stream-ord ffffff00cd876d40 0000000000000000 /var/run/dbus/system_bus_socket (none) 0 TCPv4 State Local Address Remote Address Stack Zone ffffff00ca5ec380 0 192.168.0.35.22 192.168.0.2.33102 0 0 TCPv6 State Local Address Remote Address Stack Zone UDPv4 State Local Address Remote Address Stack Zone fffffd7fffdfe600 IDLE 0.0.0.0.40278 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.50485 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.631 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.520 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.546 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.111 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.111 0.0.0.0.0 0 0 fffffd7fffdfe600 IDLE 0.0.0.0.68 0.0.0.0.0 0 0 UDPv6 State Local Address Remote Address Stack Zone fffffd7fffdfe600 IDLE ::.40278 ::.0 0 0 fffffd7fffdfe600 IDLE ::.546 ::.0 0 0 fffffd7fffdfe600 IDLE ::.111 ::.0 0 0 ICMPv4 State Local Address Remote Address Stack Zone fffffd7fffdfe6b0 IDLE 0.0.0.0.0 0.0.0.0.0 0 0 ICMPv6 State Local Address Remote Address Stack Zone fffffd7fffdfe6b0 IDLE ::.0 ::.0 0 0 SDPv4 State Local Address Remote Address Stack Zone SDPv6 State Local Address Remote Address Stack Zone


[ address ] ::sonode [-f inet | inet6 | unix | id] [-t stream | dgram | raw | id] [-p id ]

sonode オブジェクトをフィルタリングおよび表示する。アドレスの指定がないと、AF_UNIX ソケットのリストを表示する。

オプション:
-f 指定したファミリのソケットだけが表示される
-t 指定した種類の sonode だけが表示する
-P 指定したプロトコルのソケットだけが表示する
> ::sonode Sonode: Family Type Proto State Mode Flag AccessVP ffffff00cfbd67f8 unix strm 0 00000 01f8 0000 ffffff00cfbd6bd8 unix strm 0 00220 01f8 0000 ffffff00cf4ce030 unix strm 0 00220 01f8 0000 ffffff00cf4ce410 unix dgrm 0 000a0 0156 0000 ffffff00cf4ce7f0 unix strm 0 002a0 01f8 0000 ffffff00cf4cebd0 unix dgrm 0 000a0 0156 0000 ffffff00cf2a5028 unix dgrm 0 000a0 0156 0000 ffffff00cf2a5408 unix strm 0 00220 01f8 0000 ffffff00cf2a57e8 unix strm 0 000a1 01f8 0003 ffffff00cf2a5bc8 unix strm 0 000a1 01f8 0003 ffffff00cea90020 unix strm 0 000a1 01f8 0003 : :


[address] ::squeue [-v]

与えられた NCA squeue_t 構造体の情報を表示する。 > ::squeue -v ADDR STATE CPU FIRST LAST WORKER ffffff00c77beb80 00200 -1 0000000000000000 0000000000000000 ffffff00029d8c20 | +--> SQS_ILL_BOUND squeue bound to an ill ADDR STATE CPU FIRST LAST WORKER ffffff00c77bec40 00820 3 0000000000000000 0000000000000000 ffffff000235ac20 | +--> SQS_BOUND worker thread bound to CPU SQS_DEFAULT the default squeue for the CPU : :


walker

icmp

指定された icmp のアドレスを使用して、指定された icmp から最後の icmp までのすべての icmp オブジェクトを調べる。アドレスを指定しないと、すべての icmp オブジェクトを調べる。

ill

指定されたインタフェースリンク層構造体 (ill_t) のアドレスを使用して、指定された ill から最後の ill までのすべての ill オブジェクトを調べる。アドレスを指定しないと、すべての ill オブジェクトを調べる。 > ::walk ill |::print ill_t ill_name ill_name = 0x3000beaf600 "lo0" ill_name = 0x30014022808 "net0" ill_name = 0x3000beb2380 "lo0" ill_name = 0x3000c7fdd48 "net0"


ip_stacks

ip_stack_t を調べる。 > ::walk ip_stacks |::print ip_stack_t ips_icmp_mib.icmpOutDrops ips_icmp_mib.icmpOutDrops = 0x5a4

mi

指定された MI_O のアドレスを使用して、この MI 内にあるすべての MI_O を調べる。

sonode

指定された AF_UNIX sonode を使用して、指定された sonode から始まる関連する AF_UNIX sonode のリストを調べる。アドレスを指定しないと、すべての AF_UNIX ソケットのリストを調べる。 > ::walk sonode |::print sonode_t so_vnode so_vnode = 0x3001737fc80 so_vnode = 0x3001742a140 so_vnode = 0x300171ed140 so_vnode = 0x30016eaf180 so_vnode = 0x30016a1b140 so_vnode = 0x30016a1b340 : :


tcp_stacks

tcp_stack_t を調べる。 > ::walk tcp_stacks |::print tcp_stack_t tcps_mib.tcpOutDataBytes tcps_mib.tcpOutDataBytes = 0x259bd

udp_stacks

udp_stack_t を調べる。 > ::walk udp_stacks |::print udp_stack_t us_udp_mib { us_udp_mib.udpInDatagrams = 0 us_udp_mib.udpInErrors = 0 us_udp_mib.udpOutDatagrams = 0 us_udp_mib.udpEntrySize = 0x28 us_udp_mib.udp6EntrySize = 0x40 us_udp_mib.udpOutErrors = 0 us_udp_mib.udpHCInDatagrams = 0x83 us_udp_mib.udpHCOutDatagrams = 0x81 }


ire

カーネルのアクティブな ire (Internet Route Entry) 構造体を調べる。 > ::walk ire |::print ire_t ire_u.ire4_u.ire4_addr ire_u.ire4_u.ire4_addr = 0xc0a80a83 ire_u.ire4_u.ire4_addr = 0xc0a80a91 ire_u.ire4_u.ire4_addr = 0xc0a80a87 ire_u.ire4_u.ire4_addr = 0xc0a80aab ire_u.ire4_u.ire4_addr = 0xc0a80a03 ire_u.ire4_u.ire4_addr = 0 ire_u.ire4_u.ire4_addr = 0xffffffff ire_u.ire4_u.ire4_addr = 0 : :
Read more ...

mdb写経/カーネルメモリーアロケータ

2013/08/16

dcmds

thread ::allocdby
指定されたカーネルスレッドのアドレスを使用して、そのスレッドが割り当てたメモリーのリストを新しい順に出力します。
> fffffffffbc36de0::allocdby BUFCTL TIMESTAMP CALLER ffffff00cb845af8 b8483496d47c callb_add_common+0x81 ffffff00cb9f6cb8 b8483496b2e1 lgrp_affinity_init+0x26 ffffff00cbabd588 b8483496ac9f audit_thread_create+0x1e ffffff00cbace658 b84834966817 segkp_get_internal+0x89 ffffff00cb5d7308 b8483496649e thread_create+0x4f ffffff00cb9f6be0 b84834961b3c lgrp_affinity_init+0x26 ffffff00cbabd4b0 b84834961204 audit_thread_create+0x1e ffffff00cbace580 b8483495d379 segkp_get_internal+0x89 ffffff00cb9fa468 b84834945c0d vmem_alloc+0x1d2 ffffff00cb5d7158 b848349455b0 thread_create+0x4f ffffff00cbac8040 b8483493f28b lwp_create+0x78e ffffff00cb5d42f0 b8483493ef34 lwp_create+0x709 : :
bufctl ::bufctl [- a address] [-c caller ] [-e earliest] [- l latest] [-t thread ]
指定された bufctl 構造体についての要約を出力します。1 つまたは複数のオプションが指定されている場合は、オプション引数によって定義される条件に一致する bufctl 構造体の情報だけが出力されます。したがって、この dcmd をパイプラインの入力のフィルタとして使用できます。
-a buctl の対応するバッファーアドレスが指定されたアドレスと等しくなるように指定します
-c 指定された呼び出し元のプログラムカウント値が bufctl の保存されているスタックトレースの中に存在するように指定しま。
-e bufctl の時刻表示が、指定されたもっとも早い時刻表示と同じかそれよりも遅い時刻になるように指定します
-l bufctl の時刻表示が、指定されたもっとも遅い時刻表示と同じかそれよりも早い時刻になるように指定します
-t bufctl のスレッドポインタが、指定されたスレッドアドレスと等しくなるように指定します
> ffffff00cb845af8::bufctl -v ADDR BUFADDR TIMESTAMP THREAD CACHE LASTLOG CONTENTS ffffff00cb845af8 ffffff00cb6543c8 b8483496d47c fffffffffbc36de0 ffffff00c502a008 ffffff00c5c61200 ffffff00c6d99740 kmem_cache_alloc_debug+0x2b1 kmem_cache_alloc+0x14c kmem_zalloc+0x66 callb_add_common+0x81 callb_add+0x48 sched+0x5a main+0x513 _locore_start+0x90
[ address ] ::findleaks [-v]
フルセットの kmem デバッギング機能が有効になっている場合に、カーネルクラッシュダンプ時に効率的にメモリーリークを検出します。::findleaks の最初の実行では、ダンプを処理してメモリーリークを探します。この処理には数分かかる場合があります。次に、割り当てスタックトレース別にリークがまとめられます。findleaks レポートには、識別されたメモリーリークごとに bufctl アドレスと先頭のスタックフレームが表示されます。
-v オプションが指定されている場合には、この dcmd は実行の際により詳細なメッセージを出力します。dcmd の前に明示的にアドレスが指定されている場合には、レポートがフィルタリングされ、割り当てスタックトレースに指定された関数アドレスが含まれているリークだけが表示されます。

thread ::freedby
指定されたカーネルスレッドのアドレスを使用して、そのスレッドが解放したメモリーのリストを新しい順に出力します。

value ::kgrep
カーネルアドレス空間の中で、指定されたポインタサイズ値を含んでいるポインタ整列アドレスを検索します。次に、一致する値を含んでいるアドレスのリストを出力します。MDB の組み込み検索演算子とは異なり、::kgrep はカーネルアドレス空間のすべてのセグメントを検索し、不連続セグメント境界にまたがって検索します。大きなカーネルでは、::kgrep は実行にかなりの時間がかかる場合があります。

::kmalog [ slab | fail ]
カーネルメモリーアロケータトランザクションログ内のイベントを表示します。イベントは新しい順に (つまり、最新のイベントから) 表示されます。::kmalog は、イベントごとに、「T-」表示による最新のイベントを基準にした相対時間 (たとえば、T-0.000151879)、bufctl、バッファーアドレス、kmem キャッシュ名、およびイベント発生時刻におけるスタックトレースを表示します。引数を指定しないと、::kmalog は kmem トランザクションログを表示しますが、このログは kmem_flags で KMF_AUDIT が設定されている場合にだけ存在します。::kmalog fail は、割り当て障害ログを表示します。このログは必ず存在します。これは、割り当て障害に正しく対処できないドライバのデバッグを行う場合に役立ちます。::kmalog slab は、スラブ作成ログを表示します。このログは必ず存在します。::kmalog slab は、メモリーリークの検索を行う場合に役立ちます。
> ::kmalog T-0.000000000 addr=ffffff00dc6edd80 anon_cache kmem_cache_alloc_debug+0x2b1 kmem_cache_alloc+0x14c anon_alloc+0x2d anon_zero+0x3c segvn_faultpage+0x2a6 segvn_fault+0xb78 as_fault+0x3e7 pagefault+0x99 trap+0x13d8 0xfffffffffb8001d6 0xfffffffffb85b60a uiomove+0xeb mmio+0x148 mmrw+0x1bb mmread+0x22 : :
::kmastat
カーネルメモリーアロケータキャッシュおよび仮想メモリー領域のリストと該当する統計を表示します。
> ::kmastat cache buf buf buf memory alloc alloc name size in use total in use succeed fail ------------------------- ------ ------ ------ ---------- --------- ----- kmem_magazine_1 16 1364 1506 24576B 1364 0 kmem_magazine_3 32 1228 1250 40960B 1228 0 kmem_magazine_7 64 1082 1116 73728B 1082 0 kmem_magazine_15 128 9412 9424 1245184B 9569 0 kmem_magazine_31 256 0 150 40960B 142 0 kmem_magazine_47 384 103 110 45056B 103 0 kmem_magazine_63 512 0 0 0B 0 0 kmem_magazine_95 768 0 0 0B 0 0 kmem_magazine_143 1152 0 0 0B 0 0 kmem_slab_cache 72 11744 11770 876544B 11744 0 kmem_bufctl_cache 24 46691 46760 1146880B 46691 0 kmem_bufctl_audit_cache 192 0 0 0B 0 0 : :
::kmausers [- ef] [cache ...]
カーネルメモリーアロケータの現在のメモリーの割り当てが中程度あるいは多いユーザーに関する情報を出力するこの出力は、一意的なスタックトレースごとに 1 つのエントリで構成され、そのスタックトレースを使用して作成された合計メモリー量と割り当ての数が示されます。この dcmd を使用するには、kmem_flags で KMF_AUDIT フラグが設定されている必要があります。
1 つまたは複数のキャッシュ名 (たとえば、kmem_alloc_256) が指定されている場合、メモリー使用率の走査はそれらのキャッシュでだけ行われます。デフォルトでは、すべてのキャッシュが含まれます。-e オプションを指定すると、割り当て量の少ないユーザーが含まれます。割り当ての少ないユーザーとは、同じスタックトレースの合計メモリーが 1024 バイト未満または割り当て数 10 未満であるような割り当てのことです。-f オプションを指定すると、個々の割り当てのスタックトレースが出力されます。
> ::kmausers 197001216 bytes for 1503 allocations with data size 131072: kmem_slab_alloc_impl+0xbe kmem_slab_alloc+0xb0 kmem_cache_alloc+0x267 vmem_alloc+0x1d2 segkmem_xalloc+0x94 segkmem_alloc_vn+0xcb segkmem_zio_alloc+0x24 vmem_xalloc+0x53e vmem_alloc+0x172 kmem_slab_create+0x81 kmem_slab_alloc+0x60 kmem_cache_alloc+0x267 zio_data_buf_alloc+0x29 arc_get_data_block+0x153 arc_read+0x2af : :
[ address ] ::kmem_cache [-n name]
指定されたアドレスに格納されている kmem_cache_t 構造体、またはアクティブ kmem_cache 構造体の完全なセットをフォーマットし、表示します。
> ::kmem_cache ADDR NAME FLAG CFLAG BUFSIZE BUFTOTL ffffff00c5021008 kmem_magazine_1 0000 080000 16 1506 ffffff00c5021348 kmem_magazine_3 0000 080000 32 1375 ffffff00c5021688 kmem_magazine_7 0000 080000 64 3658 ffffff00c50219c8 kmem_magazine_15 0000 080000 128 9424 ffffff00c5022008 kmem_magazine_31 0000 080000 256 150 ffffff00c5023348 kmem_slab_cache 0000 080000 72 13530 ffffff00c5023688 kmem_bufctl_cache 0000 080000 24 56947 ffffff00c50239c8 kmem_bufctl_audit_cache 0000 080000 192 0 ffffff00c5024008 kmem_va_4096 0200 110000 4096 13792 ffffff00c5024348 kmem_va_8192 0200 110000 8192 352 ffffff00c5024688 kmem_va_12288 0200 110000 12288 60 ffffff00c50249c8 kmem_va_16384 0200 110000 16384 3136 ffffff00c5026008 kmem_va_20480 0200 110000 20480 24 ffffff00c5027008 kmem_alloc_8 0000 200000 8 17102 ffffff00c5027348 kmem_alloc_16 0000 200000 16 13052 ffffff00c5027688 kmem_alloc_24 0000 200000 24 17869 ffffff00c50279c8 kmem_alloc_32 0000 200000 32 22500 ffffff00c5028008 kmem_alloc_40 0000 200000 40 3600 ffffff00c5028348 kmem_alloc_48 0000 200000 48 26228 ffffff00c5028688 kmem_alloc_56 0000 200000 56 9017 ffffff00c50289c8 kmem_alloc_64 0000 200000 64 9982 : :
[ address ] ::kmem_dump [-l]
クラッシュダンプが処理されている間に記録された kmem の利用を確認してください。
カーネルは、ダンプに使用する小さい代替ヒープを有します。このダンプ・ヒープオーバーフローは、通常の管理された kmem ヒープが代わりに使用されなければならない。この場合、メモリがダンプされている間に、kmem キャッシュの状態が変化し、一貫性のない状態になります。::findleaks と、::kmem_verify は、このような破損したバッファ、または行方不明のスラブのエントリーなど、様々なエラーを報告することがあります。::kmem_dump がオーバーフローを示していたり、問題になっているキャッシュが安全でない割り当てをしている場合、エラーメッセージは信頼することはできません。
オプションを指定しない場合、コマンドはダンプ・ヒープ使用量の要約を出力します。-l が指定されている場合、ダンプ中にアクセスされたすべての kmem キャッシュのリストを表示します。アドレスが提供されている場合は、addrで表される kmem_cache_t 構造体の活動をダンプを表示します。
HEADINGS
overflows ダンプヒープ後にオーバーフローしたalloc命令の回数
size ダンプヒープのサイズ(bytes)
hi-water 必要とされたダンプヒープの最大値
oversize 通常のallocより大きい
used 使用されたダンプエリアのサイズ, 内部断片化が含まれています
% used 使用されたダンプエリア: 0-100%
Cache headings:
Addr kmem_cache_t 構造体のアドレス
Flg U ダンプ時の使用で、常に安全でない場合
O オーバーフロー alloc が発生した場合
Alloc ダンプアロケーションの回数
Free ダンプ開放の回数
Overflow ダンプヒープのオーバーフローの回数
Nondump 非ダンプヒープの数
> ::kmem_dump -l overflows 0 size 0x20000 used 0x4668 % used 13 hi-water 0x4668 Cache Name Addr Flg Alloc Free Ovrflow Nondump kmem_alloc_768 ffffc1000002b2c8 377 377 0 0 kmem_alloc_1152 ffffc1000002b848 30 30 0 0 kmem_alloc_2048 ffffc1000002c2c8 44 44 0 0 kmem_alloc_2688 ffffc1000002c588 53 53 0 0 kmem_alloc_4096 ffffc1000002c848 148 148 0 0 streams_mblk ffffc10000035b08 4 0 0 0 streams_dblk_64 ffffc10000036008 2 0 0 1 streams_dblk_256 ffffc10000036848 2 0 0 1 rootnex_dmahdl ffffc10000568848 377 377 0 0 ::kmem_log
kmem トランザクションログの完全なセットを新しい順にソートして表示します。この dcmd は、::kmalog より簡単な表形式で出力します。
> ::kmem_log CPU ADDR BUFADDR TIMESTAMP THREAD ffffff00c61481c0 ffffff00ca0a6f60 13035b1c42df7 ffffff00020a1c20 ffffff00c6148100 ffffff00cac82e00 13035b1c42ccf ffffff00020a1c20 ffffff00c6148040 ffffff00d6411cc0 13035b1c4217d ffffff00020a1c20 ffffff00c6147f80 ffffff00c77aac40 13035b1c41f74 ffffff00020a1c20 ffffff00c6147ec0 ffffff00c77a9300 13035b1c41925 ffffff00020a1c20 ffffff00c6147e00 ffffff00cca7f7c0 13035b1c4162e ffffff00020a1c20 : : 3 ffffff00c6257cc0 ffffff00c77a9300 13035b1b75549 ffffff00dae9c080 3 ffffff00c6257c00 ffffff00c77a9300 13035b1b6bef7 ffffff00dae9c080 3 ffffff00c6257b40 ffffff00cb98d300 13035b1b6bacd ffffff00dae9c080 0 ffffff00c6147bc0 ffffff00ca0a6f60 13035b1b66d1c ffffff0002272c20 0 ffffff00c6147b00 ffffff00cac82e00 13035b1b66ab5 ffffff0002272c20 0 ffffff00c6147a40 ffffff00d19f1380 13035b1b665b2 ffffff0002272c20 0 ffffff00c6147980 ffffff00d6412f00 13035b1b660bd ffffff0002272c20 1 ffffff00c598e8c0 ffffff00c8d72700 13035b1b62f29 ffffff00cd59d0e0 1 ffffff00c598e800 ffffff00cb995a00 13035b1b62caa ffffff00cd59d0e0 1 ffffff00c598e740 ffffff00c8d72e80 13035b1b4e6ef ffffff00cd59d0e0 : :
[ address ] ::kmem_slabs [-v] [-n cache] [-N cache] [-b maxbins] [-B minbinsize]
kmem cache ごとの slab の使用状況を表示する。
-n name 指定した名前の kmem_cache 構造体の情報を表示します(名前の一部が一致したものを含む)
-N name 正確に名前が一致した kmem_cache 構造体の情報を表示します
-b maxbins アロケートされていないメモリは "bin" と呼ばれる同じサイズの chunk のグループに分けて管理されます。このオプションでは、スラブごとに割り当てられたバッファの分布を maxbins に分割して表示します。最初の bin は完全に割り当てられたスラブ用に予約されています。 maxbins に 0 を設定 (-b 0) すると、スラブごとの最大割り当てられたバッファを指定するか、minbinsize に 1 を設定する (-B 1) のと同じ効果があります
-B minbinsize 全ての bin を、少なくとも minbinsize バッファで分割して(完全に割り当てられたスラブの予約をまず除く)、スラブごとの割り当てられたバッファの分布を表示します
-v 詳細出力:使用法によって順序付けられているスラブがどの程度を示すために、前から後に順に空きリスト上の各部分スラブの割り当てられたバッファ数を一覧表示します
例:
10 complete, 3 partial (8): 7 3 1

それぞれ 8 つのバッファを持つ 13 のスラブが存在することを意味します。8 つの割り当てられたすべてのバッファよりも少ない、3つの部分的に割り当てられたスラブを含みます。
バッファ割り当ては、常に部分スラブリストの先頭から行われます。完全に使用されたスラブからバッファが解放されると、そのスラブは、部分スラブなリストの先頭に追加されます。すべてのバッファは等しくすぐに解放される可能性があると仮定すると、部分的なスラブが要求される順序は、最も使用されるものがリストの先頭に、最も使用されないものが末尾にあります(上記の例のように)。
しかしながら、すぐに解放されない割り当てられたバッファがスラブに含まれている場合は、そのすべての割り当て可能なバッファの前方にあるほうが良いでしょう。部分的なスラブリストからスラブを取得すると、キャッシュの断片化が減少します(すべてのバッファが解放されたか、すべてのバッファが割り当てられたかのいずれか)。
部分的なスラブを表す、スラブの割り当てられたバッファ数がマークされることがあります(下の例では 9)。
9* のアスタリスクは、kmem のクライアントが、スラブのバッファの移動を拒否したため、kmem が、スラブを非再生可能としてマークしていたことを示しています。なので、kmem はスラブを完全に解放することを期待していないので、代わりにそれを完全に割り当てることを希望して、リストの先頭に移動します。アスタリスクでマークされたスラブは、それが部分的なスラブ・リストに残っている限り、マークされたままになります。
Column Description
Cache Name kmem キャッシュの名前
Slabs スラブの数
Partial Slabs フリーリストの部分的に確保されたスラブの数
Buffers バッファ数 (Slabs * (buffers per slab))
Unused Buffers 部分スラブの確保されていないバッファーの数
Waste (Unused Buffers / Buffers) アカウンティング構造(デバッグモード)、スラブカラーリング(バッファの配置をずらすための小さなオフセットの増分)、または CPU ごとのマガジン層のためのスペースは含まれません
> ::kmem_slabs Partial Unused Cache Name Slabs Slabs Buffers Buffers Waste ------------------------- -------- -------- --------- --------- ------ kmem_magazine_1 20 1 2000 93 4.7% kmem_magazine_3 133 1 8246 56 0.7% kmem_magazine_7 60 1 2460 14 0.6% kmem_magazine_15 21 1 420 11 2.6% kmem_magazine_31 31 1 372 2 0.5% kmem_magazine_47 20 1 160 7 4.4% kmem_magazine_63 0 0 0 0 0.0% kmem_magazine_95 0 0 0 0 0.0% kmem_magazine_143 0 0 0 0 0.0% kmem_slab_cache 564 1 23124 37 0.2% kmem_bufctl_cache 248 1 20584 80 0.4% kmem_bufctl_audit_cache 18971 1 341478 3 0.0% kmem_va_4096 423 1 13536 14 0.1% kmem_va_8192 25 1 400 9 2.3% kmem_va_12288 22 1 220 8 3.6% kmem_va_16384 396 1 3168 2 0.1% kmem_va_20480 3 1 18 5 27.8% kmem_va_24576 1 1 5 2 40.0% kmem_va_28672 19 1 76 3 3.9% kmem_va_32768 1 1 4 3 75.0% kmem_alloc_8 140 1 17920 10 0.1% kmem_alloc_16 129 1 13158 23 0.2% kmem_alloc_24 214 1 18190 1 0.0% kmem_alloc_32 297 1 21681 29 0.1% : : > ::kmem_slabs -b 5 Partial Unused Cache Name Slabs Slabs Buffers Buffers Waste ------------------------- -------- -------- --------- --------- ------ kmem_magazine_1 14 1 3514 146 4.2% Allocated Buffers ------------------ Distribution ------------------ Slabs 256 | 0 192-255 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 13 128-191 | 0 64-127 |@@@ 1 1-63 | 0 Partial Unused Cache Name Slabs Slabs Buffers Buffers Waste ------------------------- -------- -------- --------- --------- ------ kmem_magazine_3 11 7 1375 747 54.3% Allocated Buffers ------------------ Distribution ------------------ Slabs 128 | 0 96-127 |@@@@@@@@@@@@@@@@@@ 4 64-95 | 0 32-63 | 0 1-31 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7 : : > ffffc100000212c8::kmem_slabs -v Partial Unused Cache Name Slabs Slabs Buffers Buffers Waste ------------------------- -------- -------- --------- --------- ------ kmem_magazine_3 11 7 1375 747 54.3% 4 complete (128), 7 partial: 19 24 18 29 19 12 7
[ address ] ::kmem_verify
指定されたアドレスに格納されている kmem_cache 構造体、またはアクティブ kmem_cache 構造体の完全なセットの完全性を検証します。明示的にキャッシュアドレスが指定されている場合、この dcmd はエラーに関するより冗長な情報を表示します。明示的に指定されていない場合は、要約レポートを表示します。::kmem_verify dcmd については、「カーネルメモリーキャッシュ」で詳しく説明します。
> ::kmem_verify Cache Name Addr Cache Integrity kmem_magazine_1 ffffff00c5021008 clean kmem_magazine_3 ffffff00c5021348 clean kmem_magazine_7 ffffff00c5021688 clean kmem_magazine_15 ffffff00c50219c8 clean kmem_magazine_31 ffffff00c5022008 clean kmem_magazine_47 ffffff00c5022348 clean kmem_magazine_63 ffffff00c5022688 clean kmem_magazine_95 ffffff00c50229c8 clean kmem_magazine_143 ffffff00c5023008 clean kmem_slab_cache ffffff00c5023348 clean kmem_bufctl_cache ffffff00c5023688 clean kmem_bufctl_audit_cache ffffff00c50239c8 clean kmem_alloc_8 ffffff00c5027008 clean kmem_alloc_16 ffffff00c5027348 clean kmem_alloc_24 ffffff00c5027688 clean kmem_alloc_32 ffffff00c50279c8 clean : :
[ address ] ::vmem
指定されたアドレスに格納されている vmem 構造体、またはアクティブ vmem 構造体の完全なセットをフォーマットし、表示します。この構造体は、<sys/vmem_impl.h> で定義されます。
> ::vmem ADDR NAME INUSE TOTAL SUCCEED FAIL fffffffffbcd78c0 heap 273100800 1095132774400 2738 0 fffffffffbcd8700 vmem_metadata 4112384 4194304 965 0 fffffffffbcd9540 vmem_seg 3665920 3665920 880 0 fffffffffbcda380 vmem_hash 182784 188416 37 0 fffffffffbcdb1c0 vmem_vmem 266688 294528 76 0 fffffffffbcddc80 static 0 0 0 0 fffffffffbcdeac0 static_alloc 0 0 0 0 fffffffffbcdf900 hat_memload 1966080 1966080 483 0 ffffff00c5001000 kstat 296160 303104 1029 0 ffffff00c5002000 kmem_metadata 4984832 5111808 1163 0 ffffff00c5003000 kmem_msb 4050944 4050944 994 0 ffffff00c5004000 kmem_cache 382336 475136 511 0 ffffff00c5005000 kmem_hash 451072 458752 319 0 ffffff00c5006000 kmem_log 131808 135168 6 0 ffffff00c5007000 kmem_firewall_va 13529088 13529088 814 0 ffffff00c5008000 kmem_firewall 0 0 0 0 ffffff00c500d000 kmem_oversize 13527160 13529088 814 0 ffffff00c501a000 mod_sysfile 7 4096 1 0 ffffff00c501f000 kmem_va 143998976 143998976 1001 0 ffffff00c5020000 kmem_default 143228928 143228928 17536 0 ffffff00c5049000 kmem_io_1G 28672 28672 7 0 ffffff00c504a000 kmem_io_16M 0 0 0 0 ffffff00c504d000 bp_map 0 0 0 0 ffffff00c505c000 umem_np 524288 524288 23 0 ffffff00c505e000 ksyms 2216252 2244608 289 0 ffffff00c505f000 ctf 2045575 2068480 290 0 : :
address ::vmem_seg
指定されたアドレスに格納されている vmem_seg 構造体をフォーマットし、表示します。この構造体は、<sys/vmem_impl.h> で定義されます。
> 0x30000022bd0::vmem_seg -v ADDR TYPE START END SIZE THREAD TIMESTAMP 30000022bd0 ALLC 30002358000 3000235a000 8192
address ::whatis [- abv]
指定されたアドレスに関する情報をレポートします。特に、::whatis は、そのアドレスが kmem によって管理されているバッファーへのポインタまたはスレッドスタックのような別のタイプの特殊メモリー領域へのポインタかどうかを判断し、検出結果をレポートします。
オプション:
-a 照会に最初に一致するものだけでなく、すべての一致をレポートします
-b アドレスが既知の kmem bufctl によって参照されているかどうかも判断します
-v 種々のカーネルデータ構造体を検索する際に進行状況をレポートします
> ffffff00c5004000::whatis ffffff00c5004000 is allocated from the vmem_vmem vmem arena: ADDR TYPE START END SIZE THREAD TIMESTAMP fffffffffbcea7a8 ALLC ffffff00c5004000 ffffff00c5004e40 3648 fffffffffbc36de0 0 vmem_hash_insert+0x89 vmem_seg_alloc+0x12d vmem_xalloc+0x6c2 vmem_alloc+0x172 vmem_create_common+0xcb vmem_create+0x38 kmem_init+0x129 startup_kmem+0xbf startup+0x33 main+0x3a _locore_start+0x90

walker

allocdby
指定された kthread_t 構造体のアドレスを開始点として使用して、当該カーネルスレッドによって行われたメモリー割り当てに対応する bufctl 構造体のセットに対して反復適用します。

bufctl
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、このキャッシュに関連する割り当てられた bufctl 構造体のセットに対して反復適用します。

freectl
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、このキャッシュに関連する空き bufctl のセットに対して反復適用します。

freedby
指定された kthread_t 構造体のアドレスを開始点として使用して、このカーネルスレッドによって行われたメモリー割り当て解除に対応する bufctl 構造体のセットに対して反復適用します。

freemem
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、このキャッシュに関連する空きバッファーのセットに対して反復適用します。

kmem
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、このキャッシュに関連する割り当てられたバッファーのセットに対して反復適用します。

kmem_cache
アクティブな kmem_cache_t 構造体のセットに対して反復適用します。この構造体は、<sys/kmem_impl.h> で定義されます。
> ::walk kmem_cache |::print kmem_cache_t cache_name cache_name = [ "kmem_magazine_1" ] cache_name = [ "kmem_magazine_3" ] cache_name = [ "kmem_magazine_7" ] cache_name = [ "kmem_magazine_15" ] cache_name = [ "kmem_magazine_31" ] cache_name = [ "kmem_magazine_47" ] cache_name = [ "kmem_magazine_63" ] cache_name = [ "kmem_magazine_95" ] : :
kmem_cpu_cache
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、このキャッシュに関連する CPU ごとの kmem_cpu_cache_t 構造体に対して反復適用します。
> 0000030000160008::walk kmem_cpu_cache |::print kmem_cpu_cache_t cc_flags cc_flags = 0 cc_flags = 0 cc_flags = 0 cc_flags = 0 cc_flags = 0 cc_flags = 0 cc_flags = 0x1000 cc_flags = 0
kmem_slab
指定された kmem_cache_t 構造体のアドレスを開始点として使用して、関連する kmem_slab_t 構造体のセットに対して反復適用します。この構造体は、<sys/kmem_impl.h> で定義されます。
> 00000300000a0008::walk kmem_slab |::print kmem_slab_t slab_cache slab_cache = 0x300000a0008 slab_cache = 0x300000a0008 slab_cache = 0x300000a0008 slab_cache = 0x300000a0008 slab_cache = 0x300000a0008 : :
kmem_log
kmem アロケータトランザクションログに格納されている bufctl のセットに対して反復適用します。

leak
指定された bufctl 構造体のアドレスを使用して、同様な割り当てスタックトレースを持つ、リークが発生したメモリーバッファーに対応する bufctl 構造体のセットに対して反復適用します。leak walker を使用する前には、::findleaks dcmd を適用してメモリーリークを発見しておく必要があります。

leakbuf
指定された bufctl 構造体のアドレスを使用して、同様な割り当てスタックトレースを持つ、リークが発生したメモリーバッファーに対応するバッファーアドレスのセットに対して反復適用します。leakbuf walker を使用する前には、::findleaks dcmd を適用してメモリーリークを発見しておく必要があります。

vmem
指定された vmem 構造体に対して反復適用します。
> ::walk vmem |::print vmem_t vm_name vm_name = [ "heap" ] vm_name = [ "vmem_metadata" ] vm_name = [ "vmem_seg" ] vm_name = [ "vmem_hash" ] vm_name = [ "vmem_vmem" ] vm_name = [ "static" ] vm_name = [ "static_alloc" ] vm_name = [ "hat_memload" ] vm_name = [ "kstat" ] : :
vmem_seg
指定された kmem_cache_t 構造体のアドレスを使用して、vmem_seg 構造体に対して反復適用します。
> 0000030005ea0da0::walk vmem_seg |::print vmem_seg_t vs_type vs_type = 0x10 vs_type = 0x20 vs_type = 0x10 vs_type = 0x1 vs_type = 0x1 : :
Read more ...

mdb写経/割り込み

2013/07/31

dcmds

[address] ::interrupts [-d]
PCI/PX ネクサスドライバに登録されている割り込みを表示します。

SPARC
> ::interrupts Device Type MSG # State INO Mondo Shared Pil CPU uata#0 Fixed --- enbl 0x4 0x784 no 5 0 isp#0 Fixed --- enbl 0x10 0x790 no 5 0 bge#0 Fixed --- enbl 0x16 0x796 no 6 0 bge#1 Fixed --- enbl 0x17 0x797 no 6 0 ohci#0 Fixed --- enbl 0x0 0x780 yes 9 0 ohci#1 Fixed --- enbl 0x0 0x780 yes 9 0 ohci#2 Fixed --- enbl 0x0 0x780 yes 9 0 ehci#0 Fixed --- enbl 0x1 0x781 no 9 0 pfb#0 Fixed --- enbl 0xb 0x78b no 9 0 mi2cv#1 Fixed --- enbl 0x3d 0x7bd no 4 0 mi2cv#0 Fixed --- enbl 0x3c 0x7bc no 4 0 px#0 PCIe 27 enbl 0x3b 0x7bb no 1 0 px#0 PCIe 51 enbl 0x3a 0x7ba no 14 0 px#0 PCIe 49 enbl 0x39 0x7b9 no 14 0 px#0 PCIe 48 enbl 0x38 0x7b8 no 9 0 mpt#0 MSI 0 enbl 0x18 0x798 no 5 0 power#0 Fixed --- enbl 0x3 0x7c3 no 14 0 pcf8584#0 Fixed --- enbl 0x1 0x7c1 no 4 0 px#1 PCIe 27 enbl 0x3b 0x7fb no 1 0 px#1 PCIe 51 enbl 0x3a 0x7fa no 14 0 px#1 PCIe 49 enbl 0x39 0x7f9 no 14 0 px#1 PCIe 48 enbl 0x38 0x7f8 no 9 0
> ::interrupts -d ------------------------------------------- Device: uata Instance: 0 Path: /pci@1e,600000/pci@0/pci@1/pci@0/ide@1f Inum: 0 Interrupt Type: Fixed Shared Intr: no State: 1 (Enabled) INO: 0x4 Mondo: 0x784 Pil: 5 CPU: 0 ------------------------------------------- Device: isp Instance: 0 Path: /pci@1e,600000/pci@0/pci@9/pci@0,2/pci@2/SUNW,isptwo@4 Inum: 0 Interrupt Type: Fixed Shared Intr: no State: 1 (Enabled) INO: 0x10 Mondo: 0x790 Pil: 5 CPU: 0 : :
x86
> ::interrupts IRQ Vect IPL Bus Trg Type CPU Share APIC/INT# ISR(s) 1 0x41 5 Edg Fixed 1 1 0x0/0x1 i8042_intr 9 0x80 9 PCI Lvl Fixed 1 1 0x0/0x9 acpi_wrapper_isr 12 0x42 5 Edg Fixed 0 1 0x0/0xc i8042_intr 14 0x40 5 Edg Fixed 0 1 0x0/0xe ata_intr 160 0xa0 11 Edg IPI all 0 - poke_cpu 208 0xd0 14 Edg IPI all 1 - kcpc_hw_overflow_intr 209 0xd1 14 Edg IPI all 1 - cbe_fire 210 0xd3 14 Edg IPI all 1 - cbe_fire 240 0xe0 15 Edg IPI all 1 - xc_serv 241 0xe1 15 Edg IPI all 1 - apic_error_intr
> ::interrupts -i CPU ISR(s) 1 i8042_intr 1 acpi_wrapper_isr 0 i8042_intr 0 ata_intr all poke_cpu all kcpc_hw_overflow_intr all cbe_fire all cbe_fire all xc_serv all apic_error_intr

[address] ::softint [-d]
ソフトウェア割り込みを表示します。

SPARC
> ::softint ADDR TYPE PEND PIL ARG1 ARG2 HANDLER 70008b80 S 0 4 30000e8c390 0 ghd_doneq_process 70008b40 S 0 4 30000e8c390 0 ghd_timeout_softintr 70008b00 S 0 4 30000e8c270 0 ghd_doneq_process 70008ac0 S 0 4 30000e8c270 0 ghd_timeout_softintr 70008980 S 0 4 60012962000 0 bge_chip_factotum 70008940 S 0 4 60012962000 0 bge_send_drain 700088c0 S 0 4 60012956000 0 bge_chip_factotum 70008880 S 0 4 60012956000 0 bge_send_drain 70008840 S 0 6 0 0 pm_cfb_softint 70008800 S 0 1 0 0 softlevel1 7000e2f8 M 0 9 18aec68 0 scrub_icache_line_intr 7000e1c0 M 0 9 18aec38 0 scrub_dcache_line_intr 7000e088 M 0 9 18aec08 0 scrub_ecache_line_intr 7000df50 M 0 13 0 0 xc_loop 7000de18 M 0 13 0 0 xc_serv 7000dce0 M 0 15 0 0 kcpc_hw_overflow_intr 700087c0 S 0 9 30000eab348 0 hcdi_soft_intr 70008780 S 0 9 30000eaab68 0 hcdi_soft_intr 70008740 S 0 9 30000eabb28 0 hcdi_soft_intr 700086c0 S 0 9 30000eaba48 0 hcdi_soft_intr 70008600 S 0 4 60012859540 0 power_soft_intr 70008580 S 0 10 0 0 abort_seq_softintr 70008540 S 0 2 300000b7440 0 errorq_intr 70008500 S 0 2 300000b6a40 0 errorq_intr 700084c0 S 0 1 300000b67c0 0 errorq_intr 7000dba8 M 0 10 0 0 clock_tick_execute 70008080 S 0 1 0 0 cbe_level1 70008040 S 0 10 0 0 cbe_level10 7000da70 M 0 14 0 0 cbe_level14 7000d938 M 0 13 0 0 siron_poke_cpu_intr 7000d800 M 0 13 0 0 poke_cpu_intr 70008000 S 0 1 0 0 softlevel1
x86
> ::softint ADDR PEND PIL ARG1 ARG2 ISR(s) ffffc100032e3100 0 1 ffffc10002457ac0 0 errorq_intr fffffffffc00f080 0 1 1 0 timer_softintr fffffffffc00f040 0 1 0 0 softlevel1 ffffc100032e30c0 0 2 ffffc100005e1a80 0 errorq_intr fffffffffc000b90 0 2 0 0 cbe_low_level fffffffffc00f0c0 0 2 2 0 timer_softintr fffffffffc00f100 0 3 3 0 timer_softintr ffffc100077631c0 0 4 ffffc100055fb180 0 power_soft_intr ffffc1000254d800 0 4 ffffc100000bef58 0 ghd_doneq_process ffffc1000254d840 0 4 ffffc100000bef58 0 ghd_timeout_softintr fffffffffc00f140 0 4 4 0 timer_softintr fffffffffc00f180 0 5 5 0 timer_softintr ffffc100032f5a00 0 6 0 0 pm_cfb_softint fffffffffc00f1c0 0 6 6 0 timer_softintr fffffffffc00f200 0 7 7 0 timer_softintr fffffffffc00f240 0 8 8 0 timer_softintr ffffc100032ca680 0 9 ffffc100005c8548 0 hcdi_soft_intr fffffffffc00f280 0 9 9 0 timer_softintr fffffffffc004300 0 10 0 0 lbolt_ev_to_cyclic ffffc100004b4428 0 10 0 0 clock_tick_execute fffffffffc000b50 0 10 0 0 cbe_softclock fffffffffc00f2c0 0 10 a 0 timer_softintr

walker

irmpools
walk global list of interrupt pools.
irmreqs
walk list of interrupt requests in an interrupt pool.
Read more ...

mdb写経/CPU とディスパッチャー

2013/07/29

dcmds

[ address ] ::callout [-r|n] [-s|l] [-xhB] [-t|-ab nsec [-dkD]] [-C addr|-S seqid] [-f name|addr] [-p name|addr] [-T|L [-E]] [-FivVA]

コールアウトテーブル(タイマーの一覧)を表示します。各コールアウトの関数、引数、有効期限が表示されます。

-r|n (r)ealtime または (n)ormal タイプのコールアウトのみを表示します
-s|l (s)hort-term ids または (l)ong-term ids のみを表示します
-x 実行中のコールアウトのみを表示します
-h hrestimeに基づいたコールアウトのみを表示します
-B absolute timeに基づいたコールアウトのみを表示します
-t|a|b nsec a(t) 指定した時間, (a) 指定した時間より後, (b) 指定した時間より前に破棄されるコールアウトのみを表示します。-a と -b は範囲指定と共に使用する。今現在の場合は-d[t|a|b] 0 を指定する
-d -t|a|b のオプションを現在の時刻との差分として解釈します
-k -t|a|b の引数にナノセカンドの代わりに tick を使用します。tick はあまり確ではありません。他の tick と一致しないかもしれないことに注意して下さい(例: lbolt)
-D 有効期限を現在の時刻からの差分として表示します
-S seqid 指定したCPUシーケンスIDのコールアウトのみを表示します
-C addr 指定したCPUポインタのコールアウトのみを表示します
-f name|addr 指定した関数のコールアウトのみを表示します
-p name|addr 指定したパラメータの関数のコールアウトのみを表示します
-T コールアウトの代わりにコールアウトテーブルを表示します
-L コールアウトの代わりにコールアウトリストを表示します
-E -T または -L とともに使用して、空のデータ構造体を表示します
-i リストハッシュの代わりにIDハッシュを用いてコールアウトを走査します
-F フリーのコールアウトリストを表示します
-v 各項目の詳細情報を表示します
-V 走査された時に各レベルの情報の詳細を表示します
-H コールアウトヒープの中のコールアウトのみを表示します
-Q コールアウトキューの中のコールアウトのみを表示します
-A アドレスのみを表示します。パイプラインで利用できます
> ::callout SEQ T EXP XHAL XID FUNC(ARG) 0 R 34d2dcab7280 17ff6b8d8 realitexpire(ffffff00ce5d6018) 0 R 35109b7d925d H 17ff67da8 cv_wakeup(ffffff00c93bf0c0) 0 R 34b3ae26ce14 H 17ff6bf68 cv_wakeup(ffffff00c943c020) 0 R 34fc1cb196c8 H 17ff6ace8 cv_wakeup(ffffff00c96853e0) 0 R 335f46a30b00 17ff66940 cv_wakeup(ffffff0002d86c20) 0 R 33beb6d2e5f5 H 17ff67288 cv_wakeup(ffffff00c94f8b60) : : 0 R 335f15c2d600 17ff67968 sigalarm2proc(ffffff00cf3ee030) 0 N 33996d7e3300 17f8277d1 nce_timer(ffffff00ca25ad50) 0 N 335f2ecb8700 17f826409 vmem_update(0) 0 N 336037708d00 17f825f99 swrand`rnd_handler(0) 0 N 335e79003880 17f825f81 tcp_timer_callback(ffffff00ca2bb798) 0 N 4ea95c00dd00 17f962399 memscrub_wakeup(0) 0 N 335e98976100 17f825f89 mld_timeout_handler(ffffff00c6574000) : :


::calloutid [-d|v] xid

指定した extended id のコールアウトを表示します。

-d コールアウトを間接参照しないで、単純にidをデコードします
-v コールアウトについての詳細な情報を表示します
> ::calloutid 17ffc58e2 SEQ T EXP XHAL XID FUNC(ARG) 1 R 128bd8cfd9803e86 H 17ffc58e2 cv_wakeup(ffffff00cc75b420)


::class

スケジューリングクラステーブルを表示します。

> ::class SLOT NAME INIT FCN CLASS FCN 0 SYS sys_init sys_classfuncs 1 TS ts_init ts_classfuncs 2 SDC sysdc_init sysdc_classfuncs 3 FX fx_init fx_classfuncs 4 0 0 5 0 0 6 0 0 7 0 0 8 0 0 9 0 0


[ address ] ::cmihdl [-c <cpuid>|<chip,core,strand>]

cmi_handle_t 構造体の内容を表示します。

> ::cmihdl HANDLE REF CPU CH/CR/ST CMT MC MODULE MODEL-SPECIFIC ---------------- --- --- -------- --- -- ------------- ------------------------ ffffff00c6021780 3 0 0/0/0 S N cpu.generic cpu_ms.GenuineIntel ffffff00c62e2480 3 1 1/0/0 S N cpu.generic cpu_ms.GenuineIntel ffffff00c62e2380 3 2 2/0/0 S N cpu.generic cpu_ms.GenuineIntel ffffff00c62e2280 3 3 3/0/0 S N cpu.generic cpu_ms.GenuineIntel

 

[ address ] ::cpc [-v]

指定されたアドレスの CPC context の内容を表示します。アドレスが指定されていない場合、全ての有効な CPC contexts を表示します。
Flag codes:
O = overflow notify U = count user events S = count system events

> ::cpc -v N PIC NDX VAL FLG PRESET CFG EVENT -------------------------------------------------------------------------------- Set: 30008ee7ea0 2 requests. Flags = 0 0 0 0 3f0fa7 OUS 0 30008d5ead0 PAPI_fp_ins 1 1 1 80000014a OUS 0 30008d5eac0 PAPI_tot_ins -------------------------------------------------------------------------------- Set: 30008ee7ed8 2 requests. Flags = 0 0 0 0 53a772 OUS 0 30008d5eb00 PAPI_fp_ins 1 1 1 b000000ca OUS 0 30008d5eaf0 PAPI_tot_ins -------------------------------------------------------------------------------- Set: 30008ee7f10 2 requests. Flags = 0 0 0 0 7e598e OUS 0 30008d5eb30 PAPI_fp_ins 1 1 1 4000000d4 OUS 0 30008d5eb20 PAPI_tot_ins : :

[ cpuid ] ::cpuinfo [-v]

各 CPU 上で現在実行されているスレッドのテーブルを表示します。オプションの CPU 番号または CPU 構造体アドレスを dcmd 名の前に指定すると、指定した CPU の情報だけが表示されます。-v オプションを指定すると、::cpuinfo は、各 CPU 上で実行されるまで待機している実行可能スレッドとアクティブ割り込みスレッドも表示します。

> 0::cpuinfo -v ID ADDR FLG NRUN BSPL PRI RNRN KRNRN SWITCH THREAD PROC 0 0000180c000 1b 8 0 59 no no t-1 30003b515e0 mdb | | RUNNING <--+ +--> PRI THREAD PROC READY 59 3000192e1a0 java EXISTS 59 30004832400 java ENABLE 59 30001998a20 java 59 30004962a60 java 59 30004963aa0 java 59 30004b087c0 java 59 300020d3b60 sshd 34 300020d2b20 java


[ address ] ::cpupart [-v]

CPU partition の情報を表示します。

> ::cpupart ID ADDR NRUN #CPU CPUS 0 fffffffffbc8b580 0 4 0-3


[ address ] ::gcpu_poll_trace

poll trace buffer を表示します。

> fffffffffc0a7410::gcpu_poll_trace ADDR WHEN WHAT NERR fffffffffc0a7410 6e0000 ntv-cyc-poll 11

※アドレスが不明

[ address ] ::lgrp [-q] [-p | -Pih]

lgroup (近傍性グループ) を表示します。

> ::lgrp LGRPID ADDR PARENT PLATHAND #CPU CPUS 0 1898c88 0 DEFAULT 8 0-7 > ::lgrp -p LGRPID PSRSETID LOAD #CPU CPUS 0 0 8917 8 0-7


walker

cpu

カーネル CPU 構造体のセットに対して反復適用します。cpu_t 構造体は、<sys/cpuvar.h> で定義されます。

> ::walk cpu |::print cpu_t cpu_thread cpu_thread = 0x2a10001fc60 cpu_thread = 0x2a100fbfc60 cpu_thread = 0x2a10104dc60 cpu_thread = 0x2a1010e9c60 cpu_thread = 0x2a101169c60 cpu_thread = 0x2a1011e9c60 cpu_thread = 0x2a101299c60 cpu_thread = 0x2a1012e9c60

 

cpu_dispq

cpu_t 構造体を指定して、ディスパッチャーキューのスレッドに対して反復適用します。

> 0000180c000::walk cpu_dispq |::threadlist -v ADDR PROC LWP CLS PRI WCHAN 000002a1005ffc60 18a62c0 0 0 60 0 PC: cv_timedwait_hires+0xa4 TASKQ: system_taskq stack pointer for thread 2a1005ffc60: 2a1005ff021 [ 000002a1005ff021 cv_timedwait_hires+0xa4() ] taskq_thread_wait+0x54() taskq_d_thread+0x178() thread_start+4()


cpupart_cpulist

cpupart_t 構造体を指定して、パーティションの中の cpu に対して反復適用します

> ::walk cpupart_walk |::walk cpupart_cpulist |::print cpu_t cpu_thread |::threadlist ADDR PROC LWP CMD/LWPID 000002a10001fc60 18a62c0 0 idle() 000002a100fbfc60 18a62c0 0 idle() 000002a10104dc60 18a62c0 0 idle() 000002a1010e9c60 18a62c0 0 idle() 000002a101169c60 18a62c0 0 idle() 000002a1011e9c60 18a62c0 0 idle() 000002a101299c60 18a62c0 0 unix`thread_create_intr() 000002a1012e9c60 18a62c0 0 idle()

 

cpupart_walk

cpu パーティションのセットに対して反復適用します

> ::walk cpupart_walk |::print cpupart_t cp_kp_queue cp_kp_queue = { cp_kp_queue.disp_lock = 0 cp_kp_queue.disp_npri = 0x6e cp_kp_queue.disp_q = 0x30002c05540 cp_kp_queue.disp_q_limit = 0x30002c05f90 cp_kp_queue.disp_qactmap = 0x300024f23e0 cp_kp_queue.disp_maxrunpri = 0xffff cp_kp_queue.disp_max_unbound_pri = 0xffff cp_kp_queue.disp_nrunnable = 0 cp_kp_queue.disp_cpu = 0 cp_kp_queue.disp_steal = 0 }

 

cmihdl

cpu モジュールインターフェイスを列挙します

> ::walk cmihdl |::cmihdl HANDLE REF CPU CH/CR/ST CMT MC MODULE MODEL-SPECIFIC ---------------- --- --- -------- --- -- ------------- ------------------------ ffffc100005dc380 3 0 0/0/0 S N cpu.generic cpu_ms.GenuineIntel ffffc100038ef400 3 1 1/0/0 S N cpu.generic cpu_ms.GenuineIntel


cpc_ctx

global list の cpc コンテキストに反復適用します

> ::walk cpc_ctx |::cpc N PIC NDX VAL FLG PRESET CFG EVENT -------------------------------------------------------------------------------- 0 0 0 3f0fa7 OUS 0 30008d5ead0 PAPI_fp_ins 1 1 1 80000014a OUS 0 30008d5eac0 PAPI_tot_ins -------------------------------------------------------------------------------- 0 0 0 53a772 OUS 0 30008d5eb00 PAPI_fp_ins 1 1 1 b000000ca OUS 0 30008d5eaf0 PAPI_tot_ins -------------------------------------------------------------------------------- 0 0 0 7e598e OUS 0 30008d5eb30 PAPI_fp_ins 1 1 1 4000000d4 OUS 0 30008d5eb20 PAPI_tot_ins : :


gcpu_poll_trace

poll trace buffers in reverse chronological order

Read more ...

mdb写経/仮想メモリー

2012/10/16

dcmds

address ::addr2smap [offset]

カーネルの segmap アドレス空間セグメント内の指定されたアドレスに対応する smap 構造体アドレスを出力します。

> ffffff01d1399e40::addr2smap ffffff01d1399e40 is smap ffffff01cbd94fc0

as ::as2proc

as_t アドレス as に対応するプロセスの proc_t アドレスを表示します。

> 300169b40f8::as2proc |::print proc_t p_user.u_psargs p_user.u_psargs = [ "/usr/bin/login" ]


[ address ] ::memlist [-aiv]

指定された memlist_t 構造体または既知の memlist_t 構造体の 1 つを表示します。

-i 物理的にインストールされているメモリーを表す memlist が表示されます
-a 利用できる物理メモリーを表す memlist が表示されます
-v 利用できる仮想メモリーを表す memlist が表示されます
> ::memlist -i phys_install: ADDR BASE SIZE 000000000195e5e0 0 10000000 000000000195e600 20000000 10000000
> ::memlist -v virt_avail: ADDR BASE SIZE 000000000195e680 0 1000000 000000000195e6a0 1400000 400000 000000000195e6c0 1c80000 6e380000 000000000195e6e0 700de000 7ff22000 000000000195e700 f0800000 e5f0000 000000000195e720 fef00000 b8000 000000000195e740 feff6000 a000 000000000195e760 fff00000 4000 000000000195e780 fff0e000 4000 000000000195e7a0 fff16000 4000 000000000195e7c0 fff26000 14000 000000000195e7e0 ffff0000 e000 000000000195e800 100000000 2ff00002000 000000000195e820 3000003a000 8000 000000000195e840 3000006a000 18000 000000000195e860 300000d6000 28000 000000000195e880 30000112000 4000 000000000195e8a0 300003a4000 3c000 000000000195e8c0 30000400000 824000 000000000195e8e0 30000c3c000 34000 000000000195e900 30000c80000 10000 000000000195e920 30000d70000 30000 000000000195e940 30000dac000 4000 000000000195e960 30000dd4000 30000 000000000195e980 30000f00000 3ffff100000 000000000195e9a0 70000c00000 ffff400000 000000000195e9c0 fffff80000000000 7fc00000000
> ::memlist -a phys_avail: ADDR BASE SIZE 000000000195e9e0 0 10000000 000000000195ea00 20000000 9bae000 000000000195eb20 2a940000 2c0000 000000000195ea20 2ac6e000 4390000 000000000195ea40 2f23e000 1c2000 000000000195eb40 2f600000 200000 000000000195ea60 2fc08000 a6000 000000000195ea80 2fcb0000 2000 000000000195eaa0 2fcf2000 4a000 000000000195eac0 2fd40000 16c000 000000000195eae0 2feb6000 a000 000000000195eb00 2fee6000 8000


::memstat

システム全体のメモリー使用状況の要約を表示します。システムメモリーの合計とともに、さまざまなクラスのページ (カーネル、匿名メモリー、実行可能ファイルとライブラリ、ページキャッシュ、および空きリスト) が消費しているシステムメモリーの量とパーセンテージが表示されます。

> ::memstat Page Summary Pages MB %Tot ------------ ---------------- ---------------- ---- Kernel 66783 260 26% ZFS File Data 76886 300 30% Anon 27284 106 10% Exec and libs 1573 6 1% Page cache 5221 20 2% Free (cachelist) 8064 31 3% Free (freelist) 74184 289 29% Total 259995 1015 Physical 259994 1015


[ address ] ::page

指定された page_t 構造体のプロパティーを表示します。page_t アドレスを指定しないと、dcmd はすべてのシステムページのプロパティーを表示します。

> ::page PAGE VNODE OFFSET SELOCK LCT COW IO FS ST 000007000160a780 3000ae57d80 0 0 0 0 0 0 0 00000700016a7a80 3000ae57880 0 0 0 0 0 0 0 0000070001663000 3000ae57080 0 0 0 0 0 0 0 00000700016ac900 3000ae57180 0 0 0 0 0 0 0 000007000162b180 3000ae57280 0 0 0 0 0 0 0 000007000162d280 3000ae57380 0 0 0 0 0 0 0 000007000167ab00 3000ae56c80 0 0 0 0 0 0 0 0000070000026900 3000ae56980 14000 0 0 0 0 0 0 0000070001707200 3000ae56980 16000 0 0 0 0 0 80 : :


seg ::seg

指定されたアドレス空間セグメント(seg 構造体)をフォーマットし、表示します。

> ::seg SEG BASE SIZE DATA OPS 3000250dfc0 3000250c040 300001c2170 0 0xffffffff00000000


[ address ] ::swapinfo

アクティブな swapinfo 構造体すべて、あるいは指定された swapinfo 構造体についての情報を表示します。各構造体の v ノード、ファイル名、および統計が表示されます。

> ::swapinfo ADDR VNODE PAGES FREE NAME ffffff00c9430ef0 ffffff00ca42f540 262143 262143 /dev/zvol/dsk/rpool/swap


vnode ::vnode2smap [offset]

指定された vnode_t 構造体のアドレスおよびオフセットに対応する smap 構造体アドレスを出力します。


walker

anon

指定された anon_map 構造体のアドレスを開始点として使用して、関連する anon 構造体のセットに対して反復適用します。

> 30016ed4028::walk anon |::print struct anon an_off an_off = 0xc005c28000 an_off = 0xc005ba8000 an_off = 0xc005a78000 an_off = 0xc005a78000

anonmap_cache

anonmap_cache のすべての anon_map 構造体に対して反復適用します。

> ::walk anonmap_cache |::print struct anon_map ahp ahp = 0x3001bd24488 ahp = 0x300154b99b0 ahp = 0x3001c6deeb8 ahp = 0x300154b94d0 ahp = 0x3001c2b4748 ahp = 0x300154b9a90 : :

anon_cache

anon_cache のすべての anon 構造体に対して反復適用します。

> ::walk anon_cache |::print struct anon an_vp |::vnode2path /system/volatile/svc_nonpersist.db /system/volatile/nfs-mountd.lock /system/volatile/in.routed.pid /system/volatile/init-next.state /system/volatile/svc_nonpersist.db /system/volatile/svc_nonpersist.db : :

as_cache cache

as_cache cache のすべての as 構造体に対して反復適用します。

> ::walk as_cache cache |::print struct as a_proc |::ps S PID PPID PGID SID UID FLAGS ADDR NAME R 1607 11 1607 1607 0 0x4a004000 000003000b933000 login R 1019 1 1019 1019 25 0x52010000 00000300171dd058 sendmail R 1020 1 1020 1020 0 0x52010000 00000300169bf030 sendmail R 586 1 585 585 0 0x42000000 00000300169be0d8 in.routed R 690 1 689 689 0 0x42020000 0000030017467070 dhcpagent R 511 1 510 510 0 0x42000000 000003001400a088 sshd R 539 1 539 539 0 0x42000000 00000300169320c8 syslogd R 484 1 484 484 1 0x42000000 000003000c43e068 lockd : :

memlist

指定された memlist_t 構造体のスパンに対して反復適用します。この walker を ::memlist dcmd と組み合わせて使用すると、各スパンを表示できます。

> 0000000001a3e860::walk memlist |::print memlist_t ml_address ml_address = 0x8000000 ml_address = 0x62c6e000 ml_address = 0x70000000 ml_address = 0x8178a000 ml_address = 0x8178e000 ml_address = 0x81792000 ml_address = 0x81a44000 ml_address = 0x82000000 ml_address = 0x87e84000 ml_address = 0x87e8c000 ml_address = 0x87eaa000 ml_address = 0x87f44000 ml_address = 0x87f8a000

page

すべてのシステムの page 構造体に対して反復適用します。明示的なアドレスを walk に指定すると、vノードのアドレスとして解釈され、walker は vノードに関連するページだけに対して反復適用します。

> ::walk page |::print page_t p_vnode |::vnode2path /system/volatile/system-console-login:vt6.log /system/volatile/network-routing-route:default.log /system/volatile/network-security-krb5kdc:default.log /system/volatile/system-hotplug:default.log /system/volatile/system-fmd:default.log : :

seg

指定された as_t 構造体のアドレスを開始点として使用して、指定されたアドレス空間に関連するアドレス空間セグメント (seg 構造体) のセットに対して反復適用します。

> 3000250dfc0$<seg { s_base = 0x3000250c040 s_size = 0x300001c2170 s_szc = 0x300 s_flags = 0xbe9dfc8 s_as = 1 s_tree = { avl_child = [ 0, 0x19 ] avl_pcb = 0x19 } s_ops = 0xffffffff00000000 s_data = 0 s_pmtx = { _opaque = [ 0x3000250e080 ] } s_phead = { p_lnext = 0x3000250e180 p_lprev = 0x1000000ffffffff } }

swapinfo

アクティブな swapinfo 構造体のリストに対して反復適用します。この walker は ::swapinfo dcmd と組み合わせて使用できます。

> ::walk swapinfo |::print struct swapinfo { si_soff = 0x2000 si_eoff = 0x40000000 si_vp = 0x3000c434080 si_next = 0 si_allocs = 0 si_flags = 0 si_npgs = 0x1ffff si_nfpgs = 0x1ffff si_pnamelen = 0x19 si_pname = 0x3000beaa0e8 "/dev/zvol/dsk/rpool/swap" si_mapsize = 0x4000 si_swapslots = 0x3000bd06000 si_hint = 0 si_checkcnt = 0 si_alloccnt = 0 }
Read more ...

mdb写経/IOドライバ

2012/10/16

dcmds

[ address ] ::ptms [-v] [-f flag] [-F flag]

pseudo-terminal(擬似端末) の情報を表示します。

> ::ptms -v ADDR PTY FL MASTERQ SLAVEQ ZID PID PROC 000003001bcadf08 1 6 0000030016eb1a40 00000300179252d8 0 1579 sshd | +--> PTMOPEN Master side is open PTSOPEN Slave side is open

::sd_state [-s]

sd soft state のリストを表示します。

> ::sd_state walk_addr = ffffff00cea84ec8 walking sd_state units via ptr: ffffff00c8dc7840 32 entries in sd_state table un 0: ffffff00c6db06c0 -------------- { un_sd = 0xffffff00ce042280 un_rqs_bp = 0 un_rqs_pktp = 0 un_sense_isbusy = 0 un_buf_chain_type = 0x2 un_uscsi_chain_type = 0x6 un_direct_chain_type = 0x8 un_priority_chain_type = 0x9 un_waitq_headp = 0 un_waitq_tailp = 0 un_retry_bp = 0 un_retry_statp = 0 un_xbuf_attr = 0xffffff00c8332080 un_sys_blocksize = 0x200 un_tgt_blocksize = 0x200 un_phy_blocksize = 0x200 : : un_wcc_cv = { _opaque = 0 } un_cmlbhandle = 0xffffff00ca6a7000 un_fm_private = 0xffffff00c75f0a80 } --- XBUF ATTR: ---------- 0xffffff00c8332080: mutex allocsize pending 0 128 0 0xffffff00c8332094: active_limit active_count active_lowater 200 0 100 0xffffff00c83320a0: headp tailp 0 0 0xffffff00c83320b0: reserve_mutex reserve_limit reserve_count reserve_headp 0 10 0 0 0xffffff00c83320d8: timeid tq 0 ffffff00ce816258 --- XBUF Q: ------- xbuf Q head: 0 --------------------------- Processed 0 XBUF Q entries --------------------------- UN WAIT Q: ---------- UN wait Q head: 0 ------------------------------ Processed 0 UN WAIT Q entries ------------------------------ un 1: 0 -------------- un 2: 0 -------------- : : un 31: 0 -------------- --------------------------- Processed 1 UN softstate entries ---------------------------

::vhci_states [-v]

全ての vhci state ポインタを表示します。

> ::vhci_states -v Softstate size is 256(0x100) bytes. state pointer instance ============= ======== 0xffffff00c8d76e40::print struct scsi_vhci 0 vhci_conf_flags: 1 VHCI_CONF_FLAGS_AUTO_FAILBACK

::vhciguid

全てのクライアント、または GUID を指定したクライアントのリストを表示する

> ::vhciguid ----------------- mdi_vhci_head @ 0xffffff00c8d8a780 ---------- ----------------- class @ scsi_vhci---------- ----- Number of devices found 0 ---------- ----hash[0] 0xffffff00c9fd2000: devices mapped = 0 -- ----hash[1] 0xffffff00c9fd2010: devices mapped = 0 -- ----hash[2] 0xffffff00c9fd2020: devices mapped = 0 -- ----hash[3] 0xffffff00c9fd2030: devices mapped = 0 -- ----hash[4] 0xffffff00c9fd2040: devices mapped = 0 -- ----hash[5] 0xffffff00c9fd2050: devices mapped = 0 -- ----hash[6] 0xffffff00c9fd2060: devices mapped = 0 -- ----hash[7] 0xffffff00c9fd2070: devices mapped = 0 -- ----hash[8] 0xffffff00c9fd2080: devices mapped = 0 -- ----hash[9] 0xffffff00c9fd2090: devices mapped = 0 -- ----hash[10] 0xffffff00c9fd20a0: devices mapped = 0 -- ----hash[11] 0xffffff00c9fd20b0: devices mapped = 0 -- ----hash[12] 0xffffff00c9fd20c0: devices mapped = 0 -- ----hash[13] 0xffffff00c9fd20d0: devices mapped = 0 -- ----hash[14] 0xffffff00c9fd20e0: devices mapped = 0 -- ----hash[15] 0xffffff00c9fd20f0: devices mapped = 0 -- ----hash[16] 0xffffff00c9fd2100: devices mapped = 0 -- ----hash[17] 0xffffff00c9fd2110: devices mapped = 0 -- ----hash[18] 0xffffff00c9fd2120: devices mapped = 0 -- ----hash[19] 0xffffff00c9fd2130: devices mapped = 0 -- ----hash[20] 0xffffff00c9fd2140: devices mapped = 0 -- ----hash[21] 0xffffff00c9fd2150: devices mapped = 0 -- ----hash[22] 0xffffff00c9fd2160: devices mapped = 0 -- ----hash[23] 0xffffff00c9fd2170: devices mapped = 0 -- ----hash[24] 0xffffff00c9fd2180: devices mapped = 0 -- ----hash[25] 0xffffff00c9fd2190: devices mapped = 0 -- ----hash[26] 0xffffff00c9fd21a0: devices mapped = 0 -- ----hash[27] 0xffffff00c9fd21b0: devices mapped = 0 -- ----hash[28] 0xffffff00c9fd21c0: devices mapped = 0 -- ----hash[29] 0xffffff00c9fd21d0: devices mapped = 0 -- ----hash[30] 0xffffff00c9fd21e0: devices mapped = 0 -- ----hash[31] 0xffffff00c9fd21f0: devices mapped = 0 -- ----------done----------

walker

ptms

pseudo-tty のリストを調べて、pt_ttys 構造体に対して反復します。

> ::walk ptms |::print struct pt_ttys { ptm_rdq = 0x30016eb1a40 pts_rdq = 0x300179252d8 pt_nullmsg = 0x3001482f9e0 pt_pid = 0x62b pt_minor = 0x1 pt_refcnt = 0 pt_state = 0x6 pt_cv = { _opaque = 0 } pt_lock = { _opaque = [ 0 ] } pt_zoneid = 0 pt_ruid = 0 pt_rgid = 0x7 }
Read more ...

mdb写経/STREAMS

2012/10/14

dcmds

[ address ] ::mblk [-q|v] [-f|F flag] [-t|T type] [-l|L|B len] [-d dbaddr]

指定された mblk_t のアドレスのメッセージブロックの情報を表示します。アドレスの指定が無い場合、全てのメッセージブロックの情報を表示します。

-q mblk のアドレスのみを表示します
-d 指定した dblk アドレスに該当する mblk のみを表示します
-f 指定した flag に該当する mblk のみを表示します
-F 指定した flag に該当しない mblk のみを表示します
-t 指定した db_type に該当する mblk のみを表示します
-T 指定した db_type 以外に該当する mblk のみを表示します
-l len MBLKL が len と一致する mblk のみを表示します
-L len MBLKL <= len の mblk のみを表示します
-G len MBLKL >= len の mblk のみを表示します
-b len db_lim - db_base が len と一致する mblk のみを表示します

※参考 mblk(9S)

> ::mblk ADDR FL TYPE LEN BLEN RPTR DBLK 00000300159d2000 0 data 14 64 0000030016721340 00000300167212c0 00000300159d2040 0 data 40 128 0000030015f4fea0 0000030015f4fe00 00000300159d2080 0 break 376 512 000003000c393240 000003000c3931c0 00000300159d2140 0 data 0 128 00000300159cc150 00000300159cc080 00000300159d2180 0 data 32 12288 00000300147f01c0 00000300147f0140 00000300159d21c0 0 data 71 128 00000300159cc204 00000300159cc180 00000300159d2200 0 data 78 128 00000300159cc300 00000300159cc280 00000300159d2240 0 data 78 128 00000300159cc400 00000300159cc380 00000300159d2280 0 data 0 128 00000300159cc544 00000300159cc480 00000300159d22c0 0 data 40 128 00000300159cc620 00000300159cc580 00000300159d2300 0 data 0 128 00000300159cc744 00000300159cc680 00000300159d2340 0 data 126 128 00000300159cc800 00000300159cc780 00000300159d2380 0 data 40 128 00000300159cc920 00000300159cc880 00000300159d23c0 0 data 0 128 00000300159cca48 00000300159cc980 00000300159d2400 0 data 0 320 000003000c39052c 000003000c390380 00000300159d2440 0 data 14 64 000003000a3baf80 000003000a3baf00 00000300159d2480 0 data 78 128 00000300159ccc00 00000300159ccb80 00000300159d24c0 0 data 1504 1536 000003000cada740 000003000cada6c0 00000300159d2500 0 data 48 192 000003000a4b08b0 000003000a4b07c0 : :

address ::mblk2dblk

指定された mblk_t のアドレスを使用して、対応する dblk_t のアドレスを出力します。

> ffffff00cb990800::mblk2dblk ffffff00cb98d900

[ address ] ::mblk_verify

1 つまたは複数のメッセージブロックの整合性を確認します。アドレスを明示的に指定すると、そのメッセージブロックの整合性がチェックされます。アドレスを明示的に指定しないと、アクティブなメッセージブロックすべての整合性がチェックされます。この dcmd は、検出したが無効であるメッセージブロックについても出力します。

> ::mblk_verify mdb: ffffff00cb990380: invalid b_datap pointer mdb: ffffff00d19f1320: invalid b_datap pointer mdb: ffffff00d19f17a0: invalid b_datap pointer mdb: ffffff00d19f1920: invalid b_datap pointer mdb: ffffff00d19f1e60: invalid b_datap pointer mdb: ffffff00c84aa380: invalid b_datap pointer mdb: ffffff00d8e13d00: invalid b_datap pointer mdb: ffffff00cfdfc0a0: invalid b_datap pointer

[ address ] ::queue [-v] [-f flag] [-F flag] [-s syncq]

指定された queue_t をフィルタリングして表示します。

-v 待ち行列フラグが詳細に復号化されます
-q ポインタのみを表示します(フィルタとして使用できます)
-f 指定したフラグがセットされている待ち行列のみを表示します
-F 指定したフラグがセットされていない待ち行列のみを表示します
-m 指定された modname に一致する待ち行列のみを表示します
-s 指定された syncq_t アドレスに一致する待ち行列のみを表示します

> ::queue ADDR MODULE FLAGS NBLK ffffff00daea0000 tl 204032 0 0000000000000000 ffffff00daea02a8 strrhead 044032 0 0000000000000000 ffffff00daea0550 strrhead 044032 0 0000000000000000 ffffff00daea07f8 wc 200832 0 0000000000000000 ffffff00daea0aa0 tl 204032 0 0000000000000000 ffffff00daea0d48 ttcompat 000832 0 0000000000000000 ffffff00dac81008 timod 000832 0 0000000000000000 ffffff00dc4a12b0 tl 204032 0 0000000000000000 ffffff00dac812b0 tl 204032 0 0000000000000000 ffffff00dc4a1558 tl 204032 0 0000000000000000 ffffff00dac81558 strrhead 044030 0 0000000000000000 ffffff00dc4a1800 ttcompat 000832 0 0000000000000000 ffffff00dac81800 timod 000832 0 0000000000000000 ffffff00dc4a1aa8 strrhead 044032 3 ffffff00d6414880 ffffff00dac81aa8 tcp 20204032 0 0000000000000000 ffffff00dc4a1d50 fifostrrhead 044032 0 0000000000000000 ffffff00dac81d50 strrhead 044032 0 0000000000000000 : :
> ffffff00dac81aa8::queue -v ADDR MODULE FLAGS NBLK ffffff00dac81aa8 tcp 20204032 0 0000000000000000 | +--> QWANTR Someone wants to read Q QREADR This is the reader (first) Q QUSE This queue in use (allocation) QMTSAFE stream module is MT-safe QISDRV the Queue is attached to a driver

address ::q2otherq

指定された queue_t のアドレスを使用して、ピアな読み取りまたは書き込み待ち行列構造体のアドレスを出力します。

> ffffff00dc4a1aa8::q2otherq ffffff00dc4a1ba0

address ::q2rdq

指定された queue_t のアドレスを使用して、対応する読み込み待ち行列のアドレスを出力します。

> ffffff00dc4a1aa8::q2rdq ffffff00dc4a1aa8

address ::q2stream

指定された queue_t のアドレスを使用して、 対応する stdata_t のアドレスを出力します。

> ffffff00dac81aa8::q2stream ffffff00dac82cc0

address ::q2syncq

指定された queue_t のアドレスを使用して、対応する syncq_t のアドレスを出力します。

> ffffff00dac81aa8::q2syncq ffffff00dac81c98

address ::q2wrq

指定された queue_t のアドレスを使用して、対応する書き込み待ち行列のアドレスを出力します。

> ffffff00dc4a1aa8::q2wrq ffffff00dc4a1ba0

address ::stdata [-v] [-f flag] [-F flag] [-t type] [-T type]

指定された STREAM ヘッドを表す stdata_t をフィルタリングして表示します。stdata_t のアドレスが指定されていない場合は、stream_head_cache の全ての STREAM ヘッドを表示します。

-v stdata フラグが詳細に復号化されます
-q ポインタのみを表示します(フィルタとして使用できます)
-f flag 指定したフラグがセットされている STREAM ヘッドを表示します
-F flag 指定したフラグがセットされていないる STREAM ヘッドを表示します

ADDR stream head address
WRQ write queue pointer
FLAGS stream head flags (use -v to show in symbolic form)
VNODE stream vnode pointer
N/A pushcount and anchor positions
REF stream head reference counter
> ::stdata ADDR WRQ FLAGS VNODE N/A REF 00000300169ee040 00000300141763b8 40010000 000003000a9cc140 0/0 0 00000300169ee1b8 0000030014847840 00000000 0000030014849c40 0/0 0 00000300169ee798 000003000817c1d0 00018082 0000030016ed0b80 3/0 0 00000300169eed78 0000030017c67148 40010010 000003000822b340 0/0 0 00000300169eeef0 000003000817cea0 00000000 00000300176ed340 0/0 0 00000300169ef068 000003000817d130 40010000 000003001572e340 0/0 0 00000300169ef648 0000030017445b50 00000000 00000300176edc40 2/0 0 00000300169ef7c0 00000300176c7b58 00000000 00000300165fda40 1/0 0 : :
> 00000300169ee798::stdata -v ADDR WRQ FLAGS VNODE N/A REF 00000300169ee798 000003000817c1d0 00018082 0000030016ed0b80 3/0 0 | +--> RSLEEP someone wants to read/recv msg STRISTTY stream is a terminal SNDMREAD used for read notification OLDNDELAY use old NDELAY TTY semantics

address ::str2mate

指定された STREAM ヘッドを表す stdata_t のアドレスを使用して、関連する STREAM ヘッドを出力します。

> 30008cf7d68::str2mate30008cf7d68

address ::str2wrq

指定された STREAM ヘッドを表す stdata_t のアドレスを使用して、書き込み側待ち行列を出力します。

> 0000030008cf9c38::str2wrq 1a133e8

[address] ::stream

指定された STREAM ヘッドを表す stdata_t のアドレスを使用して、カーネル STREAM データ構造体のイメージ図を表示します。読み取りと書き込みの待ち行列へのポインタ、バイト数、各モジュールのフラグが表示され、さらに、指定された待ち行列に関する追加情報が余白に表示される場合もあります。

> ffffff00dac82cc0::stream +-----------------------+-----------------------+ | 0xffffff00dac81e48 | 0xffffff00dac81d50 | | strwhead | strrhead | | | | | cnt = 0t0 | cnt = 0t0 | | flg = 0x00004022 | flg = 0x00044032 | +-----------------------+-----------------------+ | ^ v | +-----------------------+-----------------------+ | 0xffffff00dac818f8 | 0xffffff00dac81800 | | timod | timod | | | | | cnt = 0t0 | cnt = 0t0 | | flg = 0x00000822 | flg = 0x00000832 | +-----------------------+-----------------------+ | ^ v | +-----------------------+-----------------------+ | 0xffffff00dac81ba0 | 0xffffff00dac81aa8 | | tcp | tcp | | | | | cnt = 0t0 | cnt = 0t0 | | flg = 0x20244022 | flg = 0x20204032 | +-----------------------+-----------------------+

address ::syncq [-v] [-f flag] [-F flag] [-t type] [-T type]

指定された syncq_t をフィルタリングして表示します。

-v syncq フラグが詳細に復号化されます
-q ポインタのみを表示します(フィルタとして使用できます)
-f 指定したフラグがセットされている syncq を表示します
-F 指定したフラグがセットされていない syncq を表示します
-t 指定したタイプがセットされている syncq を表示します
-T 指定したタイプがセットされていない syncq を表示します

> ffffff00dc4a1c98::syncq -v ADDR FLG TYP CNT NQS OUTER SF PRI ffffff00dc4a1c98 00 ff 0 0 0000000000000000 0 0 | +--> SQ_CIPUT Concurrent inner put procedure SQ_CISVC Concurrent inner svc procedure SQ_CIOC Concurrent inner open/close SQ_CICB Concurrent inner callback SQ_COPUT Concurrent outer put procedure SQ_COSVC Concurrent outer svc procedure SQ_COOC Concurrent outer open/close SQ_COCB Concurrent outer callback

address ::syncq2q

指定された syncq_t のアドレスを使用して、対応する queue_t のアドレスを出力します。

> ffffff00dac81c98::syncq2q ffffff00dac81aa8

walker

b_cont

指定された mblk_t のアドレスを使用して、b_cont ポインタに従いながら、関連するメッセージ構造体のセットに対して反復適用します。b_cont ポインタは、指定されたメッセージブロックを、同じメッセージ上にある次の関連するメッセージブロックにリンクするために使用されます。メッセージブロックの詳細については、mblk(9S) のマニュアルページを参照してください。

> 0000030014eec1c0::walk b_cont |::print mblk_t b_flag b_flag = 0 b_flag = 0

b_next

指定された mblk_t のアドレスを使用して、b_next ポインタに従いながら、関連するメッセージ構造体のセットに対して反復適用します。b_next ポインタは、指定されたメッセージブロックを、指定された待ち行列上にある次の関連するメッセージブロックにリンクするために使用されます。メッセージブロックの詳細については、mblk(9S) のマニュアルページを参照してください。

> 0000030014eec1c0::walk b_next |::print mblk_t b_flag b_flag = 0

qlink

指定された queue_t のアドレスを使用して、q_link ポインタを使用しながら、関連する待ち行列のリストを調べます。

> 0000030008cf9c38::walk qlink |::print queue_t q_qinfo q_qinfo = wclrinit

qnext

指定された queue_t のアドレスを使用して、q_next ポインタを使用しながら、関連する待ち行列のリストを調べます。

> 0000030008cf9c38::walk qnext |::print queue_t q_qinfo q_qinfo = wclrinit

readq

指定された stdata_t のアドレスを使用して、読み取り側待ち行列構造体のリストを調べます。

> 0000030008cf9c38::q2stream |::walk readq |::print -a queue_t q_qinfo 30008cf9c38 q_qinfo = wclrinit 30008cf99a8 q_qinfo = conskbdurinit

writeq

指定された stdata_t のアドレスを使用して、書き込み側待ち行列構造体のリストを調べます。

> 0000030008cf9c38::q2stream |::walk writeq |::print -a queue_t q_qinfo 30008cf9d30 q_qinfo = wclwinit 30008cf9aa0 q_qinfo = conskbduwinit
Read more ...