DJI Phantom 2 散財記録

2014/02/18
DJI | Phantom 2
DJI japan | Facebook


本体

抜群の安定性。GPSにより空中での静止、コントール不能になった場合に、離陸地点に自動で帰還する機能があり、ラジコンヘリの経験が無くても気軽に飛ばせる。


カメラ

空撮をする場合、カメラが機体の影響を受けないように、ジャイロでカメラの姿勢を制御するジンバルが必要。振動や傾きのないきれいな動画が撮影できる。


アクセサリ

初心者はぜひプロペラガードの装着を。


プロポの電池の減りは意外と早い。


FPV(First Person View)

空撮する場合、機体が遠くにあるとカメラの向いている方向が目視できないので、何が撮れているかさっぱりわからない。そうなると空撮している画像をリアルタイムで見たくなってくる。監視カメラ用として1万円以下で売られている映像トランスミッタは、ほぼ違法(技適マーク無し)。摘発されることはほぼないと思われるが、気持ち悪いので合法の機器を使用する。本体バッテリーは12Vだが、送信機は5Vなので、DC-DC降圧モジュールを使用して電圧を調整する必要がある(昇圧モジュールと間違わない!)。送信機用と受信機用で2つ必要。



Read more ...

Performance Counters

2014/02/04
以下のOracleのエンジニアブログの翻訳
T4 Performance Counters explained

T4が発表されて数ヶ月が経ちましたが、何人かの人々は、監視可能な新しいパイプラインの細部を疑問に思っているかもしれません。 "cpustat -h"では、監視可能な多くのイベントのリストが出力されますが、見ればすぐ分かるものはごく少数です。私はそれらにいくつかの見識を提供しよう思います。これらの"PIC event"のいくつかは、T4のパイプラインの深い知識が必要となります。そのうち説明するつもりですが、当分の間は無視しておきます。
Notes:
  • some counters changed from tape-out 1.1 (*only* used in the T4 beta program) to tape-out 1.2 (used in the systems shipping today) The table only lists the tape-out 1.2 counters.
  • I marked some counters "no good use known". That means there is no sensible application area (yet?) known. Some counters become useless while the overall design is being developed.
  • check back often, I will every once in while edit this page. The use cases for these counters may change over time while we learn.
pic name (cpustat) Generic Event(PAPI) Prose Comment
Sel_pipe_drain_cycles,
Sel_0_[wait|ready],
Sel_[1|2]
Sel_0_wait は、ストランドが選択されるのを待つサイクルをカウントします。いくつかの理由を、詳細にカウントすることができ、以下のとおりです。
  • Sel_0_ready: ストランドの準備はできていましたが、選択されなかったサイクルで、パイプラインが募集枠を超える応募であったことを示しています
  • Sel_pipe_drain_cycles: スレッドが、分岐予測ミスの後に、予測ミスを解決するために命令パスが修正されるのを待っているサイクル
  • Sel_1,2 どのくらいの頻度でひとつのストランドが、1つまたは2つの μOP を選択したかのカウント
Pick_any, Pick_[0|1|2|3] 1, 2, 3, 0 または、少なくとも一つの命令または μOP が、pick されているサイクル
Instr_FGU_crypto, Instr_ld,
Instr_st, SPR_ring_ops, Instr_other
PAPI_fp_ins, PAPI_ld_ins,
PAPI_sr_ins
ストランドで実行命されたタイプ別の命令数
Instr_all PAPI_tot_ins ストランドで実行された命令の総数
Sw_count_intr vcpu 上の S/W 命令数(sethi %hi(fc000),%g0 (それが何であれ)) 
Atomics アトミック操作(LDSTUB[load and store unsigned byte], CASA/CASXA, SWAP) の数
SW_prefetch PREFETCH または PREFETCHA 命令の数
Block_ld_st vcpu 上の Block load または store
IC_miss,
IC_miss_L2_L3_hit,
IC_miss_local_remote_remL3_hit
PAPI_l1_icm L2-cache または L3-cache のどちらかでのミスで廃棄された、I-cache プリフェッチ。このバリアントは、原因の命令をコミットするかどうかに関係なく、ミスをカウントします。
IC_miss_nospec,
IC_miss_[L2_L3|local|remote]_hit_nospec
どこで発生したかで区別した様々な I-cache(Instruction Cache: 命令キャッシュ)ミス。スレッドごとの全てのカウントで、唯一の主要なイベント: T4 は、コア上の特定の命令の最初に出現した I-cache ミスだけをカウントします。あるストランドが I-cache でミスする場合、このミスはカウントされますが、一つ目のミスを解決している間に、同じコア上の二つ目のストランドがミスすると、このキャッシュミスはカウントされません。この I-cache ミスの特色は、実際のコミット命令で起こされるミスだけをカウントします("_nospec" に注目)。
DC_miss
DC_miss_[L2_L3|local|remote_L3]_hit
PAPI_l1_dcm 全体的または、どこでヒットしたかの詳細な D-cache ミス。_nospec の説明は、IC_miss を参照。
DC_miss_nospec, DC_miss_[L2_L3|local|remote_L3]\
_hit_nospec
全体的または、どこでヒットしたかの詳細な D-cache ミス。_nospec の説明は、IC_miss を参照。
BTC_miss PAPI_btac_m ブランチ・ターゲット・キャッシュのミス。BTB(Branch Target Buffer) とも呼びます。
ITLB_miss PAPI_tlb_im ITLB(Instruction Translation Lookaside Buffer) ミス (同期してカウントされます)
ITLB_miss_asynch 同上(非同期)
[I|D]TLB_fill_[8KB|64KB|4MB|256MB|2GB|trap] 対応するページサイズの変換により、ITLB または DTLB を埋める Hardware Tablewalk (HWTW) イベント。
HWTW が、対応する TLB を埋めることができなかった場合、"_trap" イベントが発生します。
IC_mtag_miss,
IC_mtag_miss_\
[ptag_hit|ptag_miss|\
ptag_hit_way_mismatch]
I-cache マイクロタグミス。掘り下げるためのいくつかのオプションがあります。
Fetch_0, Fetch_0_all Fetch_0 は、特定のストランドのために、何もフェッチされなかったサイクル数をカウントし、Fetch_0_all は、コア上のすべてのストランドに対して、何もフェッチされなかったサイクル数をカウントします。
Instr_buffer_full フェッチが妨げられていることにより、ストランド用の命令バッファがいっぱいになったサイクル。
BTC_targ_incorrect BTC からの誤った予測分岐ターゲットの発生をカウントします。
[PQ|ROB|LB|ROB_LB|SB|\
ROB_SB|LB_SB|RB_LB_SB|\
DTLB_miss]\
_tag_wait
これらのカウンタは、パイプラインの動作を監視します。したがって、ストランド固有ではありません:
  • PQ: リネーム·ステージで、ピックキュータグ(シングルスレッドモード用のメモリバインドワークロードを知らせるかもしれない)を待つサイクル
  • ROB: セレクト・ステージで、ROB(ReOrderBuffer)タグを待つサイクル
  • LB: セレクト・ステージで、Load Buffer タグを待つサイクル
  • SB: セレクト・ステージで、Store Buffer タグを待つサイクル
  • 上記の組み合わせは許可され、イベントの一部が重複することができる。これらのいずれかが発生した場合、カウンタはサイクルごとに一度にインクリメントされる
  • DTLB: ピック・ステージでロードまたはストア命令が DTLB ミスタグを待つサイクル
[I|D]TLB_HWTW_\
[L2_hit|L3_hit|L3_miss|all]
DTLB または ITLB ミスのどちらかが原因で発生するHWTWへのアクセスのカウント。どこでヒットしたか、さらに詳細に調査できます。
DTLB_miss_asynch 非同期のすべての DTLB ミスのカウント。同期的にそれらをカウントする方法はありません。
DC_pref_drop_DC_hit, SW_pref_drop_[DC_hit|buffer_full] D-cache ヒットが原因でドロップされた、L1-D-cache H/W プリフェッチ。コアごとにカウント。もう一方は、ストランド当たりの S/W プリフェッチのカウント。
[Full|Partial]_RAW_hit_st_[buf|q] まだ格納されていないデータを取得したい load イベントをカウントします。例) パイプラインの内に残っている。データはまだストアバッファまたはストアキューのいずれかの中である可能性があります。データの load が、ストアバッファとストアキューに一致する場合、もちろん若いので、バッファー内のデータが優先されます。
[IC|DC]_evict_invalid,
[IC|DC|L1]_snoop_invalid,
[IC|DC|L1]_invalid_all
キャッシュ内に必要なデータを保存し、不要なデータを追い出すことを、キャッシュエビクションと呼びます。
無効になったキャッシュエビクションのコアごとのカウンターです。
St_q_tag_wait パイプラインがストアキュータグを待っているサイクル数。もちろんコアごとのカウント
Data_pref_[drop_L2|drop_L3|\
hit_L2|hit_L3|\
hit_local|hit_remote]
なぜドロップされたか、どこでヒットしたかの、さらに詳細なデータプリフェッチ
St_hit_[L2|L3],
St_L2_[local|remote]_C2C,
St_local, St_remote
どこでヒットしたか、またはどこで L2-cache 間転送を引き起こしたかを区別されたストアイベント。例えば、同じダイ上の別 L2-cache から、あるいは異なるダイからの転送のどちらか。
L2_[clean|dirty]_evict コアごとの dirty または clean な L2-cache エビクション。 L2_clean_evict は、命令フェッチのボトルネックを示すことができます: それらは変化しないため、命令は clean と考えることができます。
clean なエビクションの発生が多い場合は、十分に速くフェッチされていない L2-cache から、命令をエビクションしている可能性があります。
L2_fill_buf_full,
L2_wb_buf_full,
L2_miss_buf_full
コアあたりの L2-cache バッファイベント。これらのサイクル数は、提供される知られているよい使用がない。
L2_pipe_stall コアあたりの、L2-cache が原因でパイプラインがストールしているサイクル。知られているよい使用がない。
Branches PAPI_br_cn ブランチのカウント(Tcc, DONE, RETRY, SIT はブランチとしてカウントされない)
Br_taken PAPI_br_ins ブランチされたカウント(Tcc, DONE, RETRY, SIT はブランチとしてカウントされない)
Br_mispred,
Br_dir_mispred,
Br_trg_mispred,
Br_trg_mispred_\
[far_tbl|indir_tbl|ret_stk]
PAPI_br_msp さまざまな分岐予測ミスイベントのカウンタ
Cycles_user アドレス空間を制御する hpriv, nouser, sys 属性設定のサイクルカウント
Commit_[0|1|2],
Commit_0_all,
Commit_1_or_2
ストランドでコミットした、0, 1, または 2 回の µOP の数。Commit_0_all は、コア全体での µOP されていないコミットのカウント。
Read more ...

ipadmプロパティ

2014/01/29
ipadm show-prop による一覧に出ないプロパティについて、ソースコードなどから可能な限り拾ってみる。
(*) は、相当するnddパラメータや他の関連パラメータへのリンク。

IP
PROTO PROPERTY DEFAULT POSSIBLE
ip _addrs_per_if 256 1~8192
ip _arp_icmp_error 0 0,1
ip _arp_defend_interval 300000 0~3600000
ip _arp_defend_period 3600 5~86400
ip _arp_defend_rate 100 0~20000
ip _arp_fastprobe_count 3 0~20
ip _arp_fastprobe_delay 100 0~20000
ip _arp_fastprobe_interval 150 10~20000
ip _arp_probe_count 3 0~20
ip _arp_probe_delay 1000 0~20000
ip _arp_probe_interval 1500 10~20000
ip _arp_publish_count 5 1~20
ip _arp_publish_interval 2000 1000~20000
ip _broadcast_ttl 1 1~254
ip _cgtp_filter 0 0,1
ip _dce_reclaim_fraction 3 1~8
ip _debug 0 0~20
ip _defend_interval 30 0~999999
ip _dup_recovery 300000 0~3600000
ip _ecmp_behavior 2 0~2
ip _forward_directed_broadcasts 0 0,1
ip _ipsec_override_persocket_policy 0 0,1
ip _ipsec_policy_log_interval 1000 0~999999
ip _icmp_accept_clear_messages 1 0,1
ip _icmp_err_burst 10 1~99999
ip _icmp_err_interval 100 0~99999
ip _igmp_accept_clear_messages 1 0,1
ip _igmp_max_version 2 0~2
ip _ire_badcnt_lifetime 60 0~3600
ip _ire_reclaim_fraction 3 1~8
ip _lso_outbound 1 0,1
ip _max_defend 3 0~1000
ip _max_temp_defend 1 0~1000
ip _max_temp_idle 86400 0~999999
ip _mld_max_version 2 1~2
ip _mrtdebug 0 0~10
ip _multirt_ttl 1 0~255
ip _nce_reclaim_fraction 3 1~8
ip _ndp_defend_interval 300000 0~3600000
ip _ndp_defend_period 3600 5~86400
ip _ndp_defend_rate 100 0~20000
ip _ndp_delay_first_probe_time 5000 2~999999999
ip _ndp_max_unicast_solicit 3 1~999999999
ip _ndp_unsolicit_count 3 1~20
ip _ndp_unsolicit_interval 2000 1000~20000
ip _path_mtu_discovery 1 0,1
ip _pathmtu_interval 1200 2~999999999
ip _pim_accept_clear_messages 1 0,1
ip _pmtu_min 576 68~65535
ip _policy_mask 0 0~15
ip _reass_queue_bytes 1000000 0~999999999
ip _respond_to_address_mask_broadcast 0 0,1
ip _respond_to_echo_broadcast 1 0,1
ip _respond_to_timestamp 0 0,1
ip _respond_to_timestamp_broadcast 0 0,1
ip _restrict_interzone_loopback 1 0,1
ip _src_check 2 0~2
ip _wroff_extra 32 0~256
ipv4 forwarding off on,off
ipv4 hostmodel weak strong, src-priority, weak
ipv4 ttl 255 1~255
ipv4 _dad_announce_interval 15000 0~3600000
ipv4 _forward_src_routed * 0 0,1
ipv4 _icmp_return_data_bytes 64 8~65536
ipv4 _icmp_return_pmtu 1 0,1
ipv4 _ignore_redirect 0 0,1
ipv4 _reasm_timeout 15 5~255
ipv4 _respond_to_echo_multicast 1 0,1
ipv4 _send_redirects 1 0,1
ipv4 _strict_dst_multihoming * 0 0~1
ipv4 _strict_src_multihoming 0 0~2
ipv6 forwarding off on,off
ipv6 hoplimit 255 1~255
ipv6 hostmodel weak strong, src-priority, weak
ipv6 _dad_announce_interval 15000 0~3600000
ipv6 _forward_src_routed * 0 0,1
ipv6 _icmp_return_data_bytes 1280 8~1280
ipv6 _icmp_return_pmtu 1 0,1
ipv6 _ignore_home_address_opt 1 0,1
ipv6 _ignore_redirect 0 0,1
ipv6 _reasm_timeout 60 5~255
ipv6 _respond_to_echo_multicast 1 0,1
ipv6 _send_redirects 1 0,1
ipv6 _strict_dst_multihoming * 0 0~1
ipv6 _strict_src_multihoming 0 0~2



TCP
PROTO PROPERTY DEFAULT POSSIBLE
tcp cong_default newreno newreno,cubic,
highspeed,vegas
tcp cong_enabled newreno
newreno,cubic,
highspeed,vegas
tcp ecn passive never,passive, active
tcp extra_priv_ports 2049,4045 1~65535
tcp largest_anon_port 65535 32768~65535
tcp max_buf 1048576 128000~1073741824
tcp recv_buf 128000  2048~1048576
tcp sack active never,passive, active
tcp send_buf 49152 4096~1048576
tcp smallest_anon_port 32768 1024~65535
tcp smallest_nonpriv_port 1024 1024~32768
tcp _conn_grace_period 0 0~20000
tcp _conn_req_max_q 128 1~4294967295
tcp _conn_req_max_q0 1024 0~4294967295
tcp _conn_req_min 1 1~1024
tcp _cwnd_max 1048576 128~1073741824
tcp _debug 0 0~10
tcp _deferred_ack_interval 100 1~60000
tcp _deferred_acks_max 2 0~16
tcp _dupack_fast_retransmit 3 1~10000
tcp _fin_wait_2_flush_interval 60000 1000~7200000
tcp _ignore_path_mtu 0 0,1
tcp _ip_abort_cinterval 180000 1000~4294967295
tcp _ip_abort_interval 300000 500~4294967295
tcp _ip_abort_linterval 180000 1000~4294967295
tcp _ip_notify_cinterval 10000 1000~4294967295
tcp _ip_notify_interval 10000 500~4294967295
tcp _ipv4_ttl 64 1~255
tcp _ipv6_hoplimit 60 0~255
tcp _keepalive_abort_interval 480000 0~4294967295
tcp _keepalive_interval 7200000 10000~864000000
tcp _local_dack_interval 50 10~500
tcp _local_dacks_max 8 0~16
tcp _maxpsz_multiplier 10 0~100
tcp _mss_def_ipv4 536 1~65495
tcp _mss_def_ipv6 1220 1~65475
tcp _mss_max_ipv4 65495 1~65495
tcp _mss_max_ipv6 65475 1~65475
tcp _mss_min 108 1~65495
tcp _naglim_def 4095 1~65535
tcp _push_timer_interval 50 0~100
tcp _reass_timeout 100000 0~4294967295
tcp _recv_hiwat_minmss 8 1~65536
tcp _rev_src_routes 0 0,1
tcp _rexmit_interval_extra 0 0~7200000
tcp _rexmit_interval_initial 1000 1~20000
tcp _rexmit_interval_max 60000 1~7200000
tcp _rexmit_interval_min 200 1~7200000
tcp _rst_sent_rate 40 0~4294967295
tcp _rst_sent_rate_enabled 1 0,1
tcp _rtt_updates 20 0~65536
tcp _slow_start_after_idle 4 1~16384
tcp _slow_start_initial 4 1~4
tcp _snd_lowat_fraction 0 0~16
tcp _strong_iss 1 0~2
tcp _time_wait_interval 60000 1000~600000
tcp _tstamp_always 0 0,1
tcp _tstamp_if_wscale 1 0,1
tcp _use_smss_as_mss_opt 0 0,1
tcp _wroff_xtra 32 0~256
tcp _wscale_always 1 0,1
tcp _xmit_lowat 4096 4096~1073741824



UDP
PROTO PROPERTY DEFAULT POSSIBLE
udp extra_priv_ports 2049,4045 1~65535
udp largest_anon_port 65535 32768~65535
udp max_buf 2097152 65536~1073741824
udp recv_buf 57344 128~2097152
udp send_buf 57344 1024~2097152
udp smallest_anon_port 32768 1024~65535
udp smallest_nonpriv_port 1024 1024~32768
udp _do_checksum 1 0,1
udp _ipv4_ttl * 255 1~255
udp _ipv6_hoplimit * 60 0~255
udp _pmtu_discovery 0 0,1
udp _sendto_ignerr 0 0,1
udp _wroff_extra 32 0~256
udp _xmit_lowat * 1024 0~1073741824



ICMP
PROTO PROPERTY DEFAULT POSSIBLE
icmp max_buf * 262144 65536~1073741824
icmp recv_buf * 8192 4096~262144
icmp send_buf * 8192 4096~262144
icmp _bsd_compat 1 0,1
icmp _ipv4_ttl * 255 1~255
icmp _ipv6_hoplimit * 60 0~255
icmp _pmtu_discovery 0 0,1
icmp _sendto_ignerr 0 0,1
icmp _wroff_extra 32 0~128
icmp _xmit_lowat * 1024 0~65536


SCTP(Stream Control Transmission Protocol)
PROTO PROPERTY DEFAULT POSSIBLE
sctp cong_default newreno newreno,cubic,
highspeed,vegas
sctp cong_enabled newreno
newreno,cubic,
highspeed,vegas
sctp extra_priv_ports 2049,4045 1~65535
sctp largest_anon_port 65535 32768~65535
sctp max_buf 1048576 102400-1073741824
sctp recv_buf 102400 8192-1048576
sctp send_buf 102400 8192-1048576
sctp smallest_anon_port 32768 1024~65535
sctp smallest_nonpriv_port 1024 1024~32768
sctp _addip_enabled 0 0,1
sctp _cookie_life 60000 10~60000000
sctp _cwnd_max 1048576 128~1073741824
sctp _deferred_ack_interval 100 10~60000
sctp _deferred_acks_max 2 1~16
sctp _fast_rxt_thresh 3 1~10000
sctp _heartbeat_interval 30000 0~86400000
sctp _ignore_path_mtu 0 0,1
sctp _initial_mtu 1500 68~65535
sctp _initial_out_streams 32 1~65535
sctp _initial_ssthresh 1048576 1024-4294967295
sctp _ipv4_ttl 64 1~255
sctp _ipv6_hoplimit 60 0~255
sctp _max_in_streams 32 1~65535
sctp _max_init_retr 8 0~128
sctp _maxburst 4 2~8
sctp _mtu_probe_interval 600000 0~86400000
sctp _naglim_def 4095 1~65535
sctp _new_secret_interval 120000 0~86400000
sctp _pa_max_retr 10 1~128
sctp _pp_max_retr 5 1~128
sctp _prsctp_enabled 1 0,1
sctp _recv_hiwat_minmss 4 1~65536
sctp _rto_initial 3000 1000-60000000
sctp _rto_max 60000 1000~60000000
sctp _rto_min 1000 500~60000
sctp _rtt_updates 20 0~65536
sctp _shutack_wait_bound 60000 0~300000
sctp _slow_start_after_idle 4 1~16384
sctp _slow_start_initial 4 1~16
sctp _snd_lowat_fraction 0 0~16
sctp _wroff_xtra 32 0~256
sctp _xmit_lowat 8192 8192~1073741824

Read more ...