ARM ARM読んでいるが

メモリオーダリングの話が出てきた。今ひとつイメージし切れない箇所があったので、ARM ARMでも紹介されていた「Memory Consistency Models for Shared Memory-Multiprocessors」を読んでみることにした。 早速「memory consistency models」ググってみると…

CFSのvruntimeの値の粒度

Linuxのスケジューラ CFSの実装を読んでいる。このスケジューラはタスクの中で一番vruntimeの少ないタスクを次の動作タスクに選ぶ。このvruntimeの粒度がどの程度のものか知りたくソースを読んだ。 結論から言うと、ナノ秒単位のモノトニックタイマがvruntim…

dtraceのバッファまわりなど

dtraceのバッファまわりに関して資料を読んだので、その概要をまとめておく。主バッファ 主バッファとは、トレースアクションがデフォルトで使用するバッファ。 主バッファはCPUごとに割り当てられる。 主バッファには、バッファの使われ方を示す「ポリシ」…

dtraceの集積体について

dtraceの集積体について調べてみたので、簡単にまとめてみました。dtraceの集積体とは集積関数の実行結果を格納するためのオブジェクトです。 ちょうどハッシュに似た表現形式をとります。集積関数とは、「データのサブセットに集積関数を適用し、その結果に…

年初め

明けましておめでとうございます。今年もいろいろとやりたいことがあります。 浮気性なのはちとアレなのですが、今のところ"コンピュータ系の独学"でやってみたいことは二つあります。(1)NetBSDのdtraceの研究 (2)Linuxのスケジューラ(CFS/BFS)のソースコー…

Linuxのhuge zero pageについて

記事のソースは「http://lwn.net/Articles/517465/」。 匿名ページは0クリアされるが、"多くのゼロフィルされたページには書き込まれることはない。それらのページはプロセスのライフサイクル中ずっと0のまま"という事に気づいた人が。 で、やったことは「匿…

NetBSD dtraceの変数に関するメモ書きなど

今回もあまり調査が進んでいないdtrace。変数関係について資料を読んだので、メモ書き、メモ書き・・・。スカラ変数(Scalar Variables) スカラ変数のところの説明によれば、変数を使う際には、明示的な変数宣言は無くてもよいそうだ。 BEGIN { x = 123; }連…

dtraceに関する情報のリンクと、NetBSD dtraceでグローバルに使える組み込み変数&関数について

まず、いきなりだが、dtraceの概要は以下のページなどで紹介されているので参考にされたし。http://nippondanji.blogspot.jp/2010/02/ddtrace.html https://blogs.oracle.com/yappri/entry/dtrace http://docs.oracle.com/cd/E24845_01/html/E22189/gcfpv.ht…

NetBSD dtrace格闘記その2

(NetBSD6.0でdtrace環境を手っ取り早く整えたい方は、末尾のほうにある「まとめ」を読んでくださいな。) 前回の日記では *NetBSD6.0ではdtraceが導入された。公式のWiki(http://wiki.netbsd.org/how_to_enable_and_run_dtrace/)に導入方法が書いてあった。 …

NetBSD dtrace格闘記(道半ば)

NetBSD6.0はdtrace対応している。手順は http://wiki.netbsd.org/how_to_enable_and_run_dtrace/ に書いてあったから簡単に行くと思いきや・・・。なかなか上手くいかないもので。未だ格闘中で使えるようにはなっていないけれど、途中色々調べたことがあった…

満州焼

先週の木曜日に横浜野毛で飲んで来たので、備忘録を。 今回飲みに行ったのは、「満州焼」なる酒の肴を出す「庄兵衛」。早速つくねと満州焼を注文。満州焼は↑で、甘味噌を搦めて焼いたカシラでした。 これは甘味噌の味とカシラの肉汁が合わさってなかなか美味…

今日はツィラタール ラドラーをいただく

サッポロビールよりいただいた「世界のビール12本」。 今日はオーストリアのビール、ツィラタール ラドラーをいただくことにする。ラベルにはレモンのイラストが。 このビールは解説によると ツィラタールビールは、500年以上の歴史を持つオーストリアでもっ…

世界のビール12本

少し前にサッポロビール主催の「百人ビール・ラボ」の話を書いたと思う。 このイベントの参加者に抽選で「世界のビール12本」が当たるということらしかったが、どうやらakachochinが当たったみたいで、自宅に12本のビールが届いた。ビールは12本。ベルギー、…

「やきとん道場三鶴」に行ってきました

先週の水曜日に西小山にある「焼きとん道場三鶴」に行ってきたので備忘録を。店に入るとコの字カウンターの店。いきなりのっけから良い予兆です。 店の人に案内されてカウンターに座ります。まずはホッピー。ここはホッピービバレッジが推奨する「三冷」を頑…

100人ビール・ラボ

サッポロビールがFacebook上でユーザーと商品を共同開発するそうな。 9ガツ・・・もとい9月の金曜日の夜から"企画会議"が始まるそうなので、それまでに参加者登録すればいいみたい。 で、企画会議での発言の量と質に応じてポイントがたまり、上位100人には工…

宇ち多゛に行ってきました。

京成立石にある名店として有名な宇ち多゛ですが、先週の金曜日に行ってきましたので簡単にご報告と備忘録。宇ち多゛は言わずと知れたモツの名店。akachochinが店に行ったのが14:30位ですが、そのときにはもう既に10人位並んでいました。で、20分位してようや…

暑気払い

久々に酒の話題。 http://headlines.yahoo.co.jp/hl?a=20120715-00000503-san-bus_all ミントの酒が人気だそうだ。 節電にも一役買いそうなミント酒、一度呑んでみようかな。けれど、そうした小洒落た酒よりも、モツ焼き屋でホッピー呑んでいる方が性にあっ…

softirqの実装

NetBSD5.1.2以降のARMのソフト割り込みの__HAVE_FAST_SOFTINTS実装みたいだ。 こいつもカーネルスレッドでソフト割り込みを実行する。 また、ハード割り込みハンドラを抜けた後だとか、割り込みレベルを下げたときにも同様にソフト割り込みの実行(実際にはソ…

Linux Kernel Developmentを読み直す(その1)

第八章の「Bottom Halves and Deferring Work」。 最初の8ページを読んだので、次にソースを読むときに備えて内容をまとめておこう。Linuxには2.6.34現在Bottom Halfの仕組みとして3つの仕組みがある。 ○SoftIRQ ○Tasklet ○Work queuesSoftIRQは利用者がコン…

ブートローダを書いたときの困りごとその2

その1.GNU拡張アセンブラ 例えば、asm("xorl %eax,%eax")みたいなやつ。 Interface 2002年7月号のサンプルプログラムではasm内の文字列が複数行にわたって記述されているものがあったが、これが軒並みコンパイルエラー。 例えばこんなやつ。 asm(" movl $_da…

ブートローダを書いたときの困りごと

OS自作入門で遊ぼうとしたが、この本はWindows向けのNASMでブートローダが書かれていてLinuxな私は困っていた。 そこで、Interface 2002年7月号掲載のブートローダを写経して、GNUなプログラム環境でもばっちり動くような企てをした。Interface 2002年7月号…

一度挫折したHaskellだけど

「プログラミングHaskell」の第八章と第九章で枕を涙で濡らした自分。 このままモナドまわりが何となもやもやしたままで終わると思いきや---。こんなサイトを発見。 http://learnyouahaskell.com/ 海外では有名な初心者向けサイトらしく、Webで読む分には無…

exec elfの続き

NetBSD Currentのkern/exec_elf.cのexec_elf_makecmdsを読んだ続き。まずはELFヘッダのチェック。 671 if (epp->ep_hdrvalid < sizeof(Elf_Ehdr)) 672 return ENOEXEC; 673 674 is_dyn = elf_check_header(eh, ET_DYN) == 0; 675 /* 676 * XXX allow for exe…

ザッカーバーグの手紙

http://techse7en.com/archives/3824847.html この文章を読んで非常に感銘を受けました。 とりわけ「ハッカーウェイ」の部分に。特に ハッカーはすぐに全てを良くしようとするよりはむしろ素早くリリースしたり、より小さな反復から学ぶことによって長期的に…

netbsd-currentでexec_elf32_makecmdsはどこにあるの?

netbsd-currentでsys/kern/kern_exec.cを読んでいたが、まずどこでelfヘッダの中身を取り出すのかが分からなかった。 そこで追ってみるとどうもcheck_exec()の以下箇所で実施しているらしいことまではわかりました。 403 for (i = 0; i 404 int newerror; 40…

netbsdのスケジューリング(覚書)

netbsdのスケジューリングの流れを忘れてしまったので、ソースを読み直した。 この記録は、次に忘れないようにするための備忘録である。1.スケジューリングが行われる流れ(sleepなどで自発的に実行権を手放す場合は除く。 hardclock()から、100msに1回sched_…

ftraceについて(スタック書き換え)

前回の続き。 prepare_ftrace_return()では「parent」を求める。 parentはmcount呼び出し先関数の戻りアドレスが格納されているスタックポインタのことである。 これを取得するのがftrace_get_parent_addr()である。 unsigned long ftrace_get_parent_addr(u…

ftraceについて調べる(前々回からの続き)

前々回では「スタック弄りはなさそう」と書いた。 ところで、今回参照した論文でスタック弄りについて触れた部分のタイトルが「2 Adding Function Graph Tracing to ARM」となっていた。 このスタック弄りの概要を図示すると、以下のとおりとなる。確かに前…

cloneの疑問を15分程度で追ってみる(いい加減)

仕事や諸事情で体調があまりよくなく文書が更新できていない...。勉強会で話題になった件。 clone()システムコールのflagのうち、CLONE_PARENTって何に使うのだろう? 用途がまったく思い浮かばない.....。謎だ.....。とあるML上でも質問が放られたが、誰も…

ftraceについて調べる(前回からの続き)

ftraceの仕組みを調べるためにググっていたら、http://bit.ly/9cGM9d という論文を発見。 早速読んでみる。ftraceはgcc の -pgオプションを利用して、関数の入り口でmcount()という関数をコールするようにしている。 (-pgはプロファイラなどのために用意され…