« 今日の日記 | Main | AVM TLM でエラー »

2007.04.10

ktrace と kdump

Binary Hacksにあったstraceですが、FreeBSDでは、ktarceと、kdumpの
組み合わせで使うようです。

さっそく、AVMのサンプルで試してみましょう。

ktrace ./a.out
kdump > ktrace.log


この辺りが、起動部分。
631 ktrace RET ktrace 0
631 ktrace CALL execve(0xbfbfeda7,0xbfbfecc0,0xbfbfecc8)
631 ktrace NAMI "./a.out"
631 ktrace NAMI "/libexec/ld-elf.so.1"
631 a.out RET execve 0
631 a.out CALL mmap(0,0xf50,0x3,0x1000,0xffffffff,0,0,0)
631 a.out RET mmap 671961088/0x280d5000
631 a.out CALL munmap(0x280d5000,0xf50)
631 a.out RET munmap 0
631 a.out CALL __sysctl(0xbfbfea78,0x2,0x280d1c58,0xbfbfea74,0,0)
631 a.out RET __sysctl 0


しばらくして、Copyrightの表示。
631 a.out RET write 1
631 a.out CALL write(0x2,0x80acbc0,0x34)
631 a.out GIO fd 2 wrote 52 bytes
" SystemC 2.1.v1 --- Feb 25 2007 08:54:25"
631 a.out RET write 52/0x34
631 a.out CALL write(0x2,0x2828ea13,0x1)
631 a.out GIO fd 2 wrote 1 byte
"
"
631 a.out RET write 1
631 a.out CALL write(0x2,0x80acb60,0x5b)
631 a.out GIO fd 2 wrote 91 bytes
" Copyright (c) 1996-2005 by all Contributors
ALL RIGHTS RESERVED"


この辺りで、ユーザー回路のログを出しているから、もう回路は動いている。
631 a.out RET write 68/0x44
631 a.out CALL write(0x1,0x816e000,0x50)
631 a.out GIO fd 1 wrote 80 bytes
"loop slave : top.ms1: sending : response: addr=00f3 data=ffff op=read \
status=OK
"
631 a.out RET write 80/0x50
631 a.out CALL write(0x1,0x816e000,0x4e)
631 a.out GIO fd 1 wrote 78 bytes
"loop master:top.ms1: receive: response: addr=00f3 data=ffff op=read st\
atus=OK
"
631 a.out RET write 78/0x4e
631 a.out CALL write(0x1,0x816e000,0x41)
631 a.out GIO fd 1 wrote 65 bytes
"loop master: top.ms1: send request : addr=0023 data=ffff op=read
"
631 a.out RET write 65/0x41
631 a.out CALL write(0x1,0x816e000,0x47)
631 a.out GIO fd 1 wrote 71 bytes
"mem slave : top.ms3: receiving: request : addr=0212 data=0f0d op=write
"

そしてわかったこと。

いったんシミュレーションが開始されれば、スケジューリングの段階でシステムコールは呼ばれていない。pthreadオプションをつけても同じかは微妙だけど、少なくともデフォでは呼ばれていない。仮に、systemcシミュレータのみを動かすのであれば、OSのオーバーヘッドってのはほとんど無視できる。(もちろんテストベンチで、メモリの確保と解放を繰り返したり、ファイル読み込んだりしたら別だよ)

SystemCの現状ってのは、こういうネタに使えるサンプル回路が少ないと思う。
そういう意味で、AVMは貴重な一冊です。

|

« 今日の日記 | Main | AVM TLM でエラー »

Comments

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference ktrace と kdump:

« 今日の日記 | Main | AVM TLM でエラー »