200x年~2011年くらいはさくらのVPSでホスティングしていたけれど,一周回ってはてなブログに戻ってきました.ちょっとウケる.
前回の続き. ntp コマンドと cron 用いて jitter の値を 1 分おきにサンプリングし、その最大値を測定した. 未修正カーネルの jitter dynticks カーネルの jitter 17.813 23.173 一番大事なのはこの値に関する考察なのだが、 jitter の最大値に意味があるの…
カーネルVM探検隊で、Dynamic Ticks 有効時の ntp の jitter を測定するようにススメられた. 測定したいが、どうやって測定したものか. LKM を書いて、callout API 使ってその中で rdtsc ? タイマを使うなら別にユーザ空間でも良い? としたら、timer_create …
FreeBSD 版 dynamic ticks の実装ですが、デバイスドライバと callout queue 走査のコードが密結合した prototype 版が動き始めました. これを、VMware Fusion 上で動作させて CPU 使用率の差を見てみます. タイマ割り込み間隔が狭くなると、VMM は細かい間…
AsiaBSDcon の WIP( Work-in-progress ) talk のセッションで発表してきました. スライドは First step for dynticks in FreeBSD にあります. 内容としては、"Linux などに導入されている tickless 機構を FreeBSD に 入れてみたらどうか"という内容で、実際…
画像をKeynote で作ると、論文用に作った画像を発表にもそのまま利用できてお得. Keynote からはき出せるファイル形式は tiff, png, jpeg のみなので、これを LaTex で認識できるよう eps 形式に変換してやる必要がある. UNIX 系のOS では、ImageMagick とい…
カーネルタイマは何故リストで管理されているのか、という理由がわかった気がするのでメモ. カーネルタイマは expires (点火する時間)で5段階に場合わけされて管理されているが、ロックはこの5段階ごとに保持されている. 何故タイマ毎にロックをしないのだろ…
目標 いまいち dyn-ticks(Tickless kernel) についてよくわかっていなかったので、コードを読みながらまとめる. カーネルのバージョンは 2.6.27.8(古くてごめんなさい) で、CPU は i686(SMP環境)としておく. 話が行ったり来たりしますが、ご了承を. ハードウ…
tabesugi.netの中の人である新山さんが、 youtube にpython によるプログラミングの実況動画をアップロードされています. 大変面白いのと、デバッグの仕方が凄く参考になるので、是非見てみると良いかと思います.
Linux のカーネルタイマを使う簡単なサンプルなんだけど、なぜか上手く動かない. 何が上手く動いていないのかというと、コールバック時に、何故か登録した情報が飛んでしまっている. (timer->functionと、timer->dataが何故がふっとぶ). 実はこれはゲスト上…
今更ながら、include/linux/kernel.h container_of が相当使えるマクロ関数だと気づきました. 一見わかりにくいのですが、なんと「変数が入っている構造体へのポインタ」をコンパイル時に計算してくれるのです.container_of を用いることで、API に縛られず…
Linux カーネルには clockevents というフレームワークがあるのだけど、LWN.netの記事を見る限り、どうもハードウェアタイマのドライバを書くためのフレームワークという認識が正しいみたいです. もっとレイヤの高いものだと思っていたんだけど. 話が変わり…
最近の gcc だと、可変長引数マクロを使っても特に警告を出さないようです. そこで、以下のようなマクロを定義しておくと、デバッグメッセージのON/OFFが手軽にできて便利です. #ifdef __DEBUG__ #define dprintf(fmt,...) \ printf("[%s]%d:" fmt "\n",__FU…
以前qemu+kvmに実装されているGDBStubに関する記事を書いた段階では、kvm に実装されている GDBstub が壊れてしまっていて、使えないという状態になっていました. しかし、本日 git から最新版を落としてきてビルド、動作させたところ、GDBstub が正常に動作…
色々ご縁がありまして、id:syuu1228 さんと一緒に Software Design 2009/12月号の Linux カーネルの特集にメモリ管理の記事をかかせて頂きました.Software Design (ソフトウェア デザイン) 2009年 12月号 [雑誌]出版社/メーカー: 技術評論社発売日: 2009/11/…
hrtimer は、 tick ベースの timer_list を用いた従来のカーネルタイマよりも、よりきめ細やかにタイマ管理を行いたい、というニーズに合わせて実装されました*1. カーネルタイマはタイマ割り込みのカウンタ jiffies が指定した値になると起動しますが、hrti…
現状のLinuxには、2種類のカーネルタイマがあります. timer_list構造体を使用するカーネルタイマ. hrtimer構造体を使用する高精度カーネルタイマ(hrtimer). 今回は、前者について調べてみました. 呼び出しの仕組み カーネルタイマの基本的な呼び出しフローは…
Qemu に VNC オプションつけたときに、Grubの画面で矢印キーがきかなくなるという問題があったのですが、Qemuの起動オプションに -k jaをつけると、日本語キーボード対応してくれて、動くようになります. ちなみに、-vnc オプションは -kernel オプションと…
PCが突然落ちるという状態になってしまったので、原因究明のために lm-sensors というパッケージを導入. sudo aptitude install lm-sensors sudo sensors-detect # 基本全部デフォルトでOK(ひたすらEnter!) #----cut here---- it87 coretemp #----cut here-…
Linus の管理している git tree は、このURLに掲載されている.git で落とすには、 $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.gitとすれば OK.
どうも実行できるらしい. http://www.artonx.org/diary/20091020.html#p01へぇー!
bananajour は乱立しがちな git レポジトリを集中管理しよう、というプログラムです. まず、gemcutter というホスティングサービスを使っているので、これを利用するように gem の設定ファイルを書き換える必要があります. $ gem source -a http://gemcutter…
ドキュメントを整備したい! http://d.hatena.ne.jp/big-eyed-hamster/20090919/1253320767 という声が届いたのか、PraggerのWikiが誕生しました. http://ikejima.org/wiki/pragger/時間があるときに書いていこうと思います. それと mixi voice用のプラグイ…
2009/09/20 追記 完全に設定ミスでした>< 失礼しました. なんぞこれ>< 何か設定を忘れているのかな?? config.yaml - module: Feed::mixi::get_echo_list config: id: xxxxxxx - module: RSS::save config: filename: output.rdf title: mixi echo $ ./pr…
追記:「本家統合希望」と書いておくと、マージされるらしいので、統合希望にしておきますwtwitterからmixiボイスにマルチポストするRubyスクリプト書いたそれ、Praggerでできるよ!ってなわけで、Praggerのmixiエコーのソースを元にmixiボイスに対応させてみ…
Linuxカーネル用のモジュールをコンパイルする際には、通常 /lib/modules/`uname -r`/build をカーネルのソースディレクトリとして指定し、それを make コマンドに引数として渡す必要があります. カーネルモジュールは、カーネル側の保持しているシンボルテ…
LWN.netで、大変頭のおかしいプロジェクトが紹介されていました(いい意味で). Writing kernel modules in Haskellというもので、カーネルモジュールのインターフェースとGHCを合わせることで、Haskellを用いてカーネルモジュールを書くことができるんだとか.…
某停電で死んだと思われる Ruby 実装の Plagger こと Pragger のレポジトリですが、 復活したみたいです!http://dev.ikejima.org/src/svn/pragger/わーい!
カーネルを触っていると、コンパイル時間が開発のボトルネックになってしまうことがあります. この問題を解決するために、distccを用いた分散コンパイル環境を構築してみました. なお、ファイルパスなどはすべてubuntuのものとなっており、分散先のマシンのg…
先日投げたパッチですが、なんと 開発者の Avi さんから返信がありました! 日本語版のユーザドキュメントしか見てなかったので知りませんでしたが、 -drive オプションなんてできていたのですねー(日本語版のユーザドキュメントを見ると、-driveオプションは…