[Suzaku:01006] Re: SUZAKU-Vで実行時間プロファイリング

Yu Kaneko email@hidden
2007年 8月 9日 (木) 10:15:53 JST


東芝の金子です。

大川さん、
貴重な情報、ありがとうございます。

大川さんもおっしゃっているように、oprofiledのコードのどこか、
もしくはoprofile関連のカーネルコードのどこかで、
Illegal instructionが実行されているのだと思います。

gdbなどのデバッガを使用すれば、エラー箇所を割り出せると思います。

 // 金子


大川 猛 さんは書きました:
> 大川猛@産総研です。
>
> どなたか、挑戦される方のために、現在までの状況をお知らせしておきます。
>
>
> 使用している環境は、uClinux-dist-suzaku-v-2.6-at1です。
> http://suzaku.atmark-techno.com/files/downloads/suzaku/misc/uClinux-dist-suzaku-v-2.6-at1.tar.gz
>
> まず、カーネルのコンフィギュレーション(make menuconfig)で、
>  Profiling support >Profiling support (EXPERIMENTAL)および OProfile system profiling (EXPERIMENTAL) 
> をチェックしました。
> これでビルドしたカーネルを使っています。(Experimentalなので、ちょっと疑わしい?ですが)
>
> 使用しているのは、最新版のoprofile-0.9.3.tar.gzです。
> まずクロスコンパイルをしなくてはいけません。coLinux(2.6.10-co-0.6.2)上でビルドしています。GCCのバージョンは3.3.5です。
>
> configureスクリプトのオプションは、このメールの後半にしめします。
> できあがったコードを動かしてみると、"Illegal Instruction"とのエラーが出て止まってしまいます。
> (oprofiledは、oprofileのデーモンです)
>
> # ./oprofiled
> Illegal instruction
>
> ちょっと調べてみたら、oprofileがこのエラーを表示しているのではなく、
> "Illegal Instruction"の割り込みが発生してbusyboxのmshがエラーメッセージを表示している様子です。
> (busyboxのmshのソースで、エラー文字列を書き換えて確認してみました)
>
> 素直に考えると、PPC405には無いインストラクションが実行されてしまっている、という事だと思います。
> 「-msoft-float -mcpu=405」のオプションがあるので、PPC405で動くはずなのに・・・
>
> また、シェルとしてbashを導入すればもうちょっと情報が得られるかな?と思い、bashも入れてみましたが、得られる情報は同じです。
> もうちょっとデータが欲しい(割り込みが起こった時の実行アドレスなど)ところなので、何らかのデバッガを動かしてみるべきでしょうか?
> 組込み開発の経験が浅いもので、なにかヒントをいただけると幸いです。
>
> **********同僚のkubotaさんからもらったメモ****
>
> oprofile の config & make の設定です。
>
> OS:
> email@hidden:~/make/oprofile-0.9.3$ uname -a
> Linux colinux 2.6.10-co-0.6.2 #5 Sat Feb 5 10:19:16 IST 2005 i686 GNU/Linux
>
> コンパイラ:
> email@hidden:~/make/oprofile-0.9.3$ powerpc-linux-gcc -v
> Reading specs from /usr/lib/gcc-lib/powerpc-linux/3.3.5/specs
> Configured with: ../src/configure --with-cpu=405 --enable-softfloat -v --enable-languages=c,c++ --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/powerpc-linux/include/c++/3.3 --enable-shared --enable-__cxa_atexit --with-system-zlib --enable-nls --without-included-gettext --enable-clocale=gnu --enable-debug --disable-multilib --includedir=/usr/powerpc-linux/include --build=i386-linux --host=i386-linux --target=powerpc-linux
> Thread model: posix
> gcc version 3.3.5 (Debian 1:3.3.5-13)
>
> フラグ:
> email@hidden:~/make/oprofile-0.9.3$ env | grep 'FLAGS'
> LDFLAGS=-static
> CXXFLAGS=-msoft-float -mcpu=405
> CFLAGS=-msoft-float -mcpu=405
>
> configure オプション:
> email@hidden:~/make/oprofile-0.9.3$ head ./config.log
> This file contains any messages produced by compilers while
> running configure, to aid debugging if configure makes a mistake.
>
> It was created by configure, which was
> generated by GNU Autoconf 2.59.  Invocation command line was
>
>   $ ./configure --with-linux --with-kernel-support --host=powerpc-linux \
> 	--with-extra-includes=/home/kubota/make/rpm-4.4.6/popt:/home/kubota/make/binutils-2.13.1/bfd:/home/kubota/make/binutils-2.13.1/include \
> 	--with-extra-libs=/home/kubota/make/rpm-4.4.6/popt/.libs/:/home/kubota/make/binutils-2.13.1/libiberty:/home/kubota/make/binutils-2.13.1/bfd \
> 	--prefix=/usr/local/powerpc-oprofile
> ***
>
> 大川 猛 (Ohkawa Takeshi)
> 産業技術総合研究所情報技術研究部門 
> _______________________________________________
> suzaku mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/suzaku
>
>   




suzaku メーリングリストの案内