Pidora | Fedoraベース。RasPi用のPythonモジュールが魅力らしい*。 |
Wheezy Raspbian | Debianベース。 |
Arch Linux ARM | Arch Linuxベース。 |
OpenELEC | メディアサーバ向け。Ubutuベース? |
RaspBMC | メディアサーバ向け。 |
RISC OS | LinuxではないARM用のOS*。 |
NOOBS | PidoraやRaspbianをはじめ複数のディストロが選べるインストーラ。SDカードにファイルをコピーするだけの超お手軽。 |
Raspberry Pi
Drone
MD4-1000, MD4-200
Microdrones RC UAV
UAV|株式会社イメージ ワン
球形飛行体
ボールがフワフワ空を飛ぶ 防衛省の「球形飛行体」を見てきた
GRASP Lab, University of Pennsylvania
米軍が支援する「ハチドリ・ロボット」
レーダー妨害も可能、高度1300mから射撃できるドローン
Firefox Addon
アプリケーション: Firefox 24.0 (20130910160258)
OS: WINNT (x86-msvc)
- Adblock Plus 2.1.2
広告ブロック - All-in-One Sidebar 0.7.18
サイドバーコントロール - Auto Price Checker 0.1.4
自動で価格比較した結果を表示 - Bookmark Quick Mover 0.2
ブックマークを任意のフォルダへ移動 - BookmarkViewer 1.3.1
about:bkviewerでブックマークを整形して表示 - Browser View Plus (PlayLink) 6.06
ページを別のビュアーで開く - CacheViewer Continued 0.8
キャッシュを一覧表示や検索やソート - CookieSafe (FF 4 compatible) 3.1a5
Control cookie permissions - Cutyfox URL Shortener (bit.ly, is.gd, goo.gl) 1.4.1
短縮URLの作成 - eCleaner 1.4
アドオンの削除時に残ったゴミを掃除 - Evernote Web Clipper 5.4
Evernoteでページをクリップ - Exif Viewer 2.00
Exif情報を表示する - Extension List Dumper 1.15.2
アドオンの一覧を生成 - External Application Buttons 2 0.11
外部アプリケーション起動ボタンを追加 - Fasterfox Lite 3.9.9Lite
パフォーマンスとネットワークを調整 - FindBar Tweak 0.5.5
ページ内検索語のハイライトと位置の表示 - FireGestures 1.6.16
マウスジェスチャによって様々なコマンドを実行 - FireLink 2.0.1
様々なフォーマットのリンクを作成 - FoxClocks 3.0.6
世界中時計 - GMOクリック証券 FX ツールバー 1.4.0
為替レートや経済カレンダー、FXニュース等を表示 - Google Translator for Firefox 2.1.0.3
選択したテキストとページ全体をGoogle翻訳で翻訳 - Greasemonkey 1.10
ユーザースクリプトマネージャー - History Button 1.8
履歴ボタン - History Export 0.4
履歴をエクスポートする - HttpFox 0.8.12
ウェブサーバとブラウザ間の送受信を確認 - Hugo 0.1.0
複数のタブで同時にページ内検索 - IME and DiMENSiON 3.0.5
IMEの状態に応じて、テキスト入力欄の背景色を切り替える - Integrated Google Calendar 1.1.3
Google Calendarボタンを追加 - Mar Mod 1.0
カスタマイズツール - Multirow Bookmarks Toolbar 5.0.1
ブックマークツールバーを複数段にする - nogoogle 0.4
Googleの検索結果でプレーンなURLを得る - NoScript 2.6.5.9
JavaScript, Javaをブロックする - Password Exporter 1.2.1
保存済みパスワードの読み込みと書き出し - Paste and Go Hotkey (Keyboard Shortcut) 0.1
[貼り付けて移動]のショートカットを可能にする - Priv3 0.2
SNSのトラッキングを防止 - Pure URL 1.1.0
URLから余計なパラメーターを排除 - QuickMark 1.0.0.rev837
任意のフォルダへブックマーク - RefControl 0.8.16
HTTP Refererを偽装する - Resurrect Pages 2.0.6
死んだページを生き返らせる - ScrapBook Plus 1.8.22.38
Webページをローカルにクリップする - Search Image Everywhere 1.1
Tineye, Google, Cydral, Yandex, Baiduなどで画像検索 - SelectionSK 0.7.5
テキスト選択にポップアップメニューを追加 - Selenium IDE 2.0.0
操作の記録もできるWebのテストツール - Selenium IDE: C# Formatters 2.0.0
C# code formatters for Selenium IDE - Selenium IDE: Java Formatters 2.0.0
Java code formatters for Selenium IDE - Selenium IDE: Python Formatters 2.0.0
Python code formatters for Selenium IDE - Selenium IDE: Ruby Formatters 2.0.0
Ruby code formatters for Selenium IDE - Standalone 0.2
Webページをアプリとして起動するショートカットを作成する - Stylish 1.2.6
Webページのスタイルを変更する - Tab Mix Plus 0.4.0.4
タブブラウジングを強化する様々な機能を追加 - Visited 0.095
訪問済みのリンクの色をカスタマイズ - YouTube quality manager 1.2
再生画質を自動的に切り替え - テキストリンク 4.0.2011021601
ページ中のURI文字列をダブルクリックで開く - 英辞郎 on the WEB 1.1.1
英辞郎で検索
cygwin+OpenSSH+teraterm
ログインしたあとで、マクロを使用して好きなようにコマンドを送信すればいいのだが、CygwinのOpenSSHをシェルとして起動すれば、リモートコマンドを実行することができる。マクロでは下記のように書けばよい。
msg = "-s '/bin/ssh -t "
strconcat msg gwusername
strconcat msg '@'
strconcat msg gwhostname
strconcat msg ' ssh '
strconcat msg username
strconcat msg '@'
strconcat msg hostname
strconcat msg "' -o '/KR=UTF8 /KT=UTF8'"
cygconnect msg
mdb写経/ネットワーク関連機能
dcmds
address ::arphdr
指定されたアドレスの ARP header 構造体(arh_t) を表示する。
[ address ] ::conn_status
> ::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]
> ::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
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]
> ::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]
フラグ:
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 |
> ::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>]
> ::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]
> ::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]
> ::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
> ::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
> ::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
> ::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
:
:
mdb写経/カーネルメモリーアロケータ
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% |
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_logkmem トランザクションログの完全なセットを新しい順にソートして表示します。この 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
:
:
Syntaxhighlighter & CodeMirror
Syntaxhighlighter
editor.ui.addButton && editor.ui.addButton( 'Syntaxhighlight', { label : editor.lang.syntaxhighlight.title, command : 'syntaxhighlightDialog', toolbar : 'insert,98' icon: this.path + 'icons/syntaxhighlight.png', } );
CodeMirror
んー。確かにCodeMirrorは表示されるまでの時間が短い。というか最初からハイライトされて表示されとる。mdb写経/割り込み
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.
JavaScriptのライブラリをホスティングしてくれているネ申サイト
Google Hosted Libraries
https://developers.google.com/speed/libraries/devguide
Microsoft Ajax Content Delivery Network
http://www.asp.net/ajaxlibrary/cdn.ashx
cdnjs - the missing cdn
http://cdnjs.com/
Cached Commons
http://cachedcommons.org/
mdb写経/CPU とディスパッチャー
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
Drupal 7 の CKEditor を設定する
# yum install drupal7-ckeditor
CKEditor本体のckeditor.noarchも依存で入る。いつものようにモジュールを有効にして設定。ホーム › 管理 › 環境設定 › コンテンツ作成 > CKEditor (admin/config/content/ckeditor)
上記で、テキストフォーマットとプロフィール(CKEditorの設定)をバインドする。プロフィールは追加できるので、必要ならテキストフォーマット毎にCKEditorの設定が可能。
ここまででこんな感じ。
画像をftpなどでアップロードするのは不便なので、IMCEを入れる。もうわざわざ説明するまでもないので、サクッと設定しちゃって下さい。
コンテンツを作成する際、細かい所はソース(HTML)を編集して調整するので、CKEditerのプラグインCodeMirrorを入れてSyntax Highlightさせる。
CKEditorをyumで入れた場合は、/usr/share/drupal7/modules/ckeditorに入っているので、その下の/usr/share/drupal7/modules/ckeditor/pluginsにダウンロードしたzipを展開する。/usr/share/drupal7/modules/ckeditor/ckeditor/pluginsではないので注意する。
先ほどのCKEditorの設定のEditor appearanceの項目で、プラグインを有効にする。
ソースがHighlightするようになった。
コンテンツもHighlightさせたいのでSyntax Highlighterを入れる。Syntaxhighlighter本体も入れないと、プラグインが有効にならないので注意する。ちなみに本体は/usr/share/drupal7/sites/all/librariesに入れる。
次にSyntaxhighlighterのタグを挿入するSyntaxhighlighter InterfaceプラグインをCKEditerに入れる。展開すると、奥の方にplugins/syntaxhighlightがあるので、例によって/usr/share/drupal7/modules/ckeditor/pluginsの下に移動して、先ほどと同じようにプラグインを有効にする。
すると、Syntaxhighlighterのタグを挿入するボタンが出現・・・しない!
というわけで、/usr/share/drupal7/modules/ckeditor/plugins/syntaxhighlight/plugin.jsに、下記のようにiconのプロパティを追加する。下のほうに同じ行があるのでコピペってやればよい。
editor.ui.addButton && editor.ui.addButton( 'Syntaxhighlight',
{
label : editor.lang.syntaxhighlight.title,
command : 'syntaxhighlightDialog',
toolbar : 'insert,98'
icon: this.path + 'icons/syntaxhighlight.png',
} );
アイコンが出てきたので、toolbarに追加する。
CKEditerを起動してボタンを押すと、下記のダイアログがポップアップする。
保存すれば、Syntax Highlightされたコンテンツが表示される。