サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
akachochin.hatenadiary.org
Linuxのスケジューラ CFSの実装を読んでいる。このスケジューラはタスクの中で一番vruntimeの少ないタスクを次の動作タスクに選ぶ。 このvruntimeの粒度がどの程度のものか知りたくソースを読んだ。 結論から言うと、ナノ秒単位のモノトニックタイマがvruntimeのもとになっていることがわかった。 kernel/sched/fair.cの__update_curr()でvruntimeに足している値はdelta_exec_weighted。 delta_exec_weightedはdelta_execから作られる。 さらにdelta_execはupdate_curr()で「rq_of(cfs_rq)->clock_task」と「curr->exec_start」の差から作られる。 ということは「rq_of(cfs_rq)->clock_task」と「curr->exec_sta
ftraceの仕組みを調べるためにググっていたら、http://bit.ly/9cGM9d という論文を発見。 早速読んでみる。 ftraceはgcc の -pgオプションを利用して、関数の入り口でmcount()という関数をコールするようにしている。 (-pgはプロファイラなどのために用意されたオプションで、このオプションでコンパイルされた関数は入り口でmcount()という関数を呼ぶようになるらしい) そして、各CPUアーキテクチャごとに定義されたmcount()の中でスタックを弄り、mcount()呼び出し元の関数が終了した時に戻るべきリターンアドレスを書き換えておく。 これにより、関数終了時に別途測定用の関数がコールされることになる。 早速仕組みを実装で追いかけるべく、mipsアーキテクチャを選んで読んで見た。 98 NESTED(_mcount, PT_SIZE, ra) 99
またまたnetbsd currentのソースについて。 今度はmutexを読んでいる最中なので、ここについてもメモを残す。 なおlock debug機能はメモから外します。 ちなみにlock debug機能とは、ロックの状態を保持し、再帰呼び出しロックなど異常な状態などを検知したときにpanicなどしてくれる機能です。(あまり詳しく読んでいませんが....) [初期化について] mutex_init()でmutex変数の初期化を行う。 デフォルトでadaptive lockとみなされる。 [ロック/アンロックのI/F] o Adaptive Lockの場合 mutex_enter() mutex_exit() o Spin Lockの場合 mutex_spin_enter() mutex_spin_exit() [上記I/Fの実体について] __HAVE_MUTEX_STUBSおよび__H
現在、Linux Kernel Developmentを読んでいるが、英語力のなさで256ページに書かれている DEFINE_PER_CPU(type,name)とDECLARE_PER_CPU(type,name)の違いが良く分からなかった。 よって、コードを読んでみた。 これらの定義はinclude/linux/percpu-defs.hに存在する。 /* * Variant on the per-CPU variable declaration/definition theme used for * ordinary per-CPU variables. */ #define DECLARE_PER_CPU(type, name) \ DECLARE_PER_CPU_SECTION(type, name, "") #define DEFINE_PER_CPU(type, name)
前回紹介したvimgdbを実際に使ってみた。 なお、パッチを当てるvimのバージョンは7.2です。 (※2009/01/07:この日記の記述を一部訂正。) 1.vimgdbを http://sourceforge.net/project/showfiles.php?group_id=111038&package_id=120238 からDLしてきます。(vimgdb72-1.14.tar.gz) 2.vimを http://www.vim.org/download.php#unix からDLしてきます。 3.vim7.2を展開します。 tar xjf vim-7.2.tar.bz2 4.vimgdbを展開します。 tar xzf vimgdb72-1.14.tar.gz 5.vimgdbパッチをあてます。 patch -d vim72 --backup -p0 < vimgdb/vim72
このページを最初にブックマークしてみませんか?
『akachochinの日記』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く