2008-10-27から1日間の記事一覧

カーネル内での特定処理にかかる時間を測定の続き

カーネル内での特定処理にかかる時間を測定でmbufにmeasure_timeを突っ込んでパケット処理にかかる時間を調べるというやり方を書いたが、同じ事をNetBSD-currentでやるとカーネルがふっとぶ。 mbufの扱い方が変わってるからだろーけど、、、mbuf自体をきちん…

Hardware Checksum support on NetBSD-current

ハードウェアで補助されたチェックサム計算 FreeBSDのmanを読んだらこんなん乗ってたので、NetBSDではどうよ?と思ったら、3.0のアナウンスに gem(4) and hme(4) now have hardware checksum support. とか書いてあった。 manのどこに書いてあるのかは良く分…

コンロよりも上手に作れる! 電子レンジ超活用法

コンロよりも上手に作れる! 電子レンジ超活用法 | ライフハッカー[日本版] えっと、日本の怠惰な主婦達なら誰でも知ってそうな気がするのは私の気のせいか、、、 フードコラムニストですよね?新聞社の。 ていうか今までレンジって何に使ってたんですか?…

FreeBSD 6.3の割り込み

どんな風になってるかちょっと読んでみた。 ふつーの割り込みのばやい apic_vector.sで定義されてる、ISR_VEC()が各割り込み処理の開始ポイントになってるはず。 まず、PUSH_FRAMEで #define PUSH_FRAME \ pushl $0 ; /* dummy error code */ \ pushl $0 ; /…

とは言っても

自分でyield()した時は確かに汎用レジスタ保存しないで良いかもしれないが、実行途中で割り込んだ時は結局保存する必要があるんじゃぁ? でもって、タイマでカーネルプリエンプションとかやったりするんだったら、結局全スレッドの汎用レジスタを保存しとく…

あれ??

NetBSD-currentの割り込み - かーねる・う゛いえむにっき で引用したKernIntrのコードだが、 /* * Save the relevant kernel registers onto the stack. * We don't need to save s0 - s8, sp and gp because * the compiler does it for us. */ とか言って$…

NetBSD-currentの割り込み

FreeBSD 6.3の割り込み - かーねる・う゛いえむにっき で割り込み時のコンテキストがスタックに退避されてるー、って書いたけど、これはx86に限らず一般的にこうなってるもののようだ。 NetBSD/mipsはそれなりにコードを読んだつもりだったが、割り込み時の…