つれづれ日記 2022年7月

予定

毎日


2022年7月30日 (土曜日)

11:04:52 # Life io uringのメモリーマップどうなってるねんというのをカーネルのソースと見比べてやっと理解した。わかったらなんでもないんだがイマイチわからなかったら気持ち悪い。 これを最初に確認すればよかった。多分将来的に変更することとかも見越しているんだと思うけど過去の互換コードとかみてると意味がわからない。

	  io_rings構造体 0x140 bytes
	  cqe (cq_off.cqes)
	  sqe array (sq_off.array)
	

2022年7月29日 (金曜日)

10:01:51 # Life 自分用の週間予定表、細かいところ微調整。 曜日だけじゃなくて日付があったほうがよいなとおもったので追加。 まぁこういうところを微調整しようという気になるのがコードで書いている利点かも。 週間予定表

20:13:06 # Life カーネルのソースコード眺めてみたら ____cacheline_aligned_in_smp。 アンダースコア多すぎないか?いいたいことはわからんでもない。 いくらなのかなとおもったらCONFIG_X86_INTERNODE_CACHE_SHIFTで設定されているらしい。 だいたいX86_L1_CACHE_SHIFT。 しかし7なんだろうか、6なんだろうか、これは難しい。

2022年7月23日 (土曜日)

21:36:01 # Life 今月読んだ本の読書メモ。

2022年7月16日 (土曜日)

15:40:26 # Life bindgenでハマったところ2箇所。気づいたら当たり前なんだけど、 build.rsはトップレベルに置くのがデフォルトなのにsrc/build.rsにおいていて効かないなぁと試行錯誤して。 現象としてはOUT_DIRがないなぁとおもっていたのだがそもそも実行されてなかったのか。 そして、bindgenを[dependencies]にかいていて[build-dependencies]に書いていなかったのは先に気づいたんだけどまぁそれは些細なことであった。 後で読んだらチュートリアルに全部書いてはあった。

17:01:04 # Life clangのバイナリリリースなぜかUbuntuのバイナリがないんだけどなんでだろ。 14.0.0のバイナリはあるんだけどそれ以降はない。どういう仕組みなんだろうか。

2022年7月15日 (金曜日)

21:24:32 # Life bindgen crateのソースも眺めているがなんかいまいち微妙な気がしてきた。 bindgen::Builderみんなつかっているんだろうか?

2022年7月13日 (水曜日)

22:11:31 # Life OUT_DIRとは。 CargoのOUT_DIRではまる。 bindgenのTutorialではOUT_DIRを使っているのだがどうもCargoのOUT_DIRが設定されていないっぽい。なんでやねん。 そしてわかったのは、あーーbuild.rsをそもそも使っていなかった。

2022年7月10日 (日曜日)

19:06:26 # Life 絶対アドレスにジャンプしてみるコード。 なんかふと書いてみようと思ったのだが思った動きにならなかったのでメモ。 jmp 0xabeとするだけのコードを書いたらASLRっぽいなにかで相対アドレスとして扱われて0x555555554abeになった。 一回raxに代入してからジャンプするとなんか期待した挙動になった。 んーなんでだったろうか。

int main() {
  __asm__ ("jmp 0xabe");
}


$ gdb out/ripabe
(gdb) run

Program received signal SIGSEGV, Segmentation fault.
0x0000555555554abe in ?? ()
(gdb) info registers
 ..
rip            0x555555554abe      0x555555554abe
 ..


int main() {
   __asm__ ("mov $0xabe, %rax; jmp *%rax");
}

$ gdb out/ripabe
(gdb) run
Starting program: /home/dancer/git/nlp-study/hoge/c/out/ripabe 

Program received signal SIGSEGV, Segmentation fault.
0x0000000000000abe in ?? ()
(gdb) info registers
rip            0xabe               0xabe

	

2022年7月8日 (金曜日)

19:42:02 # Life screenのログのとり方毎回忘れる。 大文字のHでログを記録するということか。 あと毎回探すのは現在のバッファを保存するというやつ。 hardcopy -h filenameでスクロールバックバッファの中身まで保存してくれる。 Windowとかの用語が独特だしいにしえなのでなんかなぁ。

21:28:35 # Life 毎週のメモ用のページをHTMLに変換してみた。 TODOと時刻毎の予定というか実績を書く用。 お絵かきソフトで書いていたのだがふと思い立ってSVGで書き直してみた。 全然良くはなってはいないとはおもうけどそれっぽくなった。お絵かきソフトでは改変する気にならなかったんだけどこうするとやる気になるか? A4に印刷できるようにしてみたいんだけど無駄な白いページを出力しなくてすむ方法が全くわからない。

2022年7月3日 (日曜日)

06:04:57 # Life ふとRaspberrypiをながめてNodejs 12が入っているんだなぁとおもった。 Debian 11だとそれが標準で入っているバージョン。手元ではほとんどNodesourceから直接16をいれているんだけど何が変わったのか思い出せない。


Junichi Uekawa