2013-04-01から1ヶ月間の記事一覧

Ticket spinlockメモ φ(.. )メモシテオコウ

Linuxカーネルのspinlockがどんなロジックで動いているのかなと思ってarch/x86/include/asm/spinlock.hを見ていたらTicket spinlockというのが出てきたのでメモ〆(.. )カリカリッ!!概要は英語のWikipediaで見つけました。 これによるとTicket spinlockは2個の整数…

φ(.. )メモシテオコウ printk:%pの拡張機能

カーネル/VM探検隊の懇親会でLinuxのprintkの%pが拡張されてるということを聞いてちょっと調べてみました。 カーネルに付属しているprintk-formats.txtに説明が色々書かれています。また、%pFと%pSで何が違うの?というところはvsprintf.cのコメントに書か…

Jenkinsめも

カーネルとは関係ないんですが、久々にJenkinsを使おうかなーと考えてるのでめもです。基本的には以下のことをリモートアクセスAPIでやろうかなと。 ジョブの作成(作成というかテンプレートのジョブを作ってそれをコピーする形で) ビルドの実行 ビルドの結…

NetBSDのスケジューラを読んでみるめも6

〆(.. )カリカリッ!! 遂に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…

NetBSDのスケジューラを読んでみるめも5

〆(.. )カリカリッ!! 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…

NetBSDのスケジューラを読んでみるめも4

〆(.. )カリカリッ!! 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…

NetBSDのスケジューラを読んでみるめも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 } 内容としては「(´-`)…

NetBSDのスケジューラを読んでみるめも2

φ(^∇^ ) メモナノラ まずはsched_pstats_hook()から。コメントからこの関数はsched_pstats()から定期的に呼ばれてプライオリティを再計算するとなってますね。 281 /* 282 * sched_pstats_hook: 283 * 284 * Periodically called from sched_pstats(); used to re…

NetBSDのスケジューラを読んでみるめも1

(´-`).。oO(なんとなくNetBSDのスケジューラを読んでみようと思ったので 見ているのはsched_4bsd.cですが、これはBSDカーネルの設計と実装の4.4.1で説明されている4.4BSDのスケジューラと基本的な考え方は変わってないよなーという想いもありこれにしてます…