2013-04-01から1ヶ月間の記事一覧
Linuxカーネルのspinlockがどんなロジックで動いているのかなと思ってarch/x86/include/asm/spinlock.hを見ていたらTicket spinlockというのが出てきたのでメモ〆(.. )カリカリッ!!概要は英語のWikipediaで見つけました。 これによるとTicket spinlockは2個の整数…
カーネル/VM探検隊の懇親会でLinuxのprintkの%pが拡張されてるということを聞いてちょっと調べてみました。 カーネルに付属しているprintk-formats.txtに説明が色々書かれています。また、%pFと%pSで何が違うの?というところはvsprintf.cのコメントに書か…
カーネルとは関係ないんですが、久々にJenkinsを使おうかなーと考えてるのでめもです。基本的には以下のことをリモートアクセスAPIでやろうかなと。 ジョブの作成(作成というかテンプレートのジョブを作ってそれをコピーする形で) ビルドの実行 ビルドの結…
〆(.. )カリカリッ!! 遂に6回目! sched_lwp_fork()とsched_lwp_collect()です。これでsched_4bsd.cで実装している関数は終わります( ´∀`)bグッ!まずはsched_lwp_fork()です。 460 void 461 sched_lwp_fork(struct lwp *l1, struct lwp *l2) 462 { 463 464 l2->l…
〆(.. )カリカリッ!! sched_proc_fork()とsched_proc_exit()sched_proc_fork()は特にこれといった処理はないですね。 405 * sched_proc_fork: 406 * 407 * Inherit the parent's scheduler history. 408 */ 409 void 410 sched_proc_fork(struct proc *parent, st…
〆(.. )カリカリッ!! sched_schedclock()です。関数本体よりもコメントの方が多いですね。 376 /* 377 * We adjust the priority of the current LWP. The priority of a LWP 378 * gets worse as it accumulates CPU time. The CPU usage estimator (l_estcpu) 3…
φ(.. )メモシテオコウ このシリーズ3回目はsched_setrunnable()とsched_nice()を見てみます。まずはsched_setrunnable()から。 331 void 332 sched_setrunnable(struct lwp *l) 333 { 334 335 if (l->l_slptime > 1) 336 updatepri(l); 337 } 内容としては「(´-`)…
φ(^∇^ ) メモナノラ まずはsched_pstats_hook()から。コメントからこの関数はsched_pstats()から定期的に呼ばれてプライオリティを再計算するとなってますね。 281 /* 282 * sched_pstats_hook: 283 * 284 * Periodically called from sched_pstats(); used to re…
(´-`).。oO(なんとなくNetBSDのスケジューラを読んでみようと思ったので 見ているのはsched_4bsd.cですが、これはBSDカーネルの設計と実装の4.4.1で説明されている4.4BSDのスケジューラと基本的な考え方は変わってないよなーという想いもありこれにしてます…