FreeBSD

EPTの設定をbhyveで調べる

KVMよりもEPTの使用前提なbhyveのほうがコード読みやすかったのです。Nested Paging in bhyveというFreeBSDのメモリ管理からbhyveでのEPT周りの実装を解説した論文があったのも理由としては大きいですね。 EPTPの設定 vmx_vminit()という関数でeptpの設定を…

FreeBSDのidtめも

( ..)φメモメモFreeBSDのinit_secondary()でAPのセットアップ時にlidtで使っているのはr_idt。 664 lidt(&r_idt); このr_idtはidtなんかと一緒にamd64/include/segments.hで定義されている。 238 extern struct user_segment_descriptor gdt[]; 239 extern s…

BHyVeビルドめも3

__inlineのコンパイルエラーを無理やり解決φ(・・*)ゞ ウーンdone: __inlineでコンパイルエラーになってたのはvmm.hの他にこれだけあったんだけど、とりあえずs/__inline/inline/をしたのと、関数の戻り値の型のあとに__inlineがあるものは型の前にinlineを置…

FreeBSDめも カーネルモジュールのビルドエラーfix

FreeBSD 9.0でカーネルモジュールのmakeでこんなエラーになってたんだけど、/usr/src/share/mkでmake installすれば良さげというのが分かったのでやってみたらビルドできた! "/sys/conf/kmod.mk", line 116: Malformed conditional (${MK_CLANG_IS_CC} == "…