今年の振り返り
今年もそろそろ終わりそうなので、何やったかを振り返ってみる。
aarch64 Support for Rust Hypervisor Firmware
~1月 Rust Hypervisor Firmwareはいままでx86_64でしか動かなかったが、Cloud Hypervisorがaarch64も対応するようになったので、aarch64の勉強も兼ねて実装した。去年の夏にPoCとして実装して、最終的に今年の1月にマージされた。すでにCIに組み込まれており、少しずつ改善のPRをもらいつつ、ある程度安定して動くようになった。 ちなみに、このaarch64対応を入れるためにマルチアーキテクチャ対応をした。これにより、その後RISC-V対応も比較的少ない労力で入るようになった。
- https://github.com/cloud-hypervisor/rust-hypervisor-firmware/issues/198
- https://github.com/cloud-hypervisor/rust-hypervisor-firmware/pull/205
- https://github.com/cloud-hypervisor/rust-hypervisor-firmware/pull/267
- https://github.com/cloud-hypervisor/rust-hypervisor-firmware/issues/225
- https://github.com/cloud-hypervisor/rust-hypervisor-firmware/pull/239
gpt-macro: コンパイル時にChatGPTにコード生成させるRust proc macro
3月 Rustのproc macroは自由度が高く、コンパイル時に比較的何でもできてしまうことが知られている。で、ちょうどChatGPTをOpenAIのAPIで使った何かが流行り始めてたので、便乗してproc macroを書いてみようとしたのでこれ。ちなみにまったく実用性はない。proc macroを学ぶのであれば、proc macro workshopを通しでやったほうがいい気がする。なぜかやたらと人気がある。
- https://github.com/advisories/GHSA-79wf-qcqv-r22r
- https://github.com/retrage/gpt-macro
- https://github.com/dtolnay/proc-macro-workshop
Intel HFI/ITD Tool
5月~8月 ちょうどこのころにAlderLakeのIntel CPUを積んだマシンを購入し、せっかくだから新しいIntel CPUの機能を調べてみようということで、P-CoreとE-Coreの話がよく出回っていたのでそのあたりをちゃんと調べるためにツールを作った。Intel Hardware Feedback Interface (HFI), Intel Thread Director (ITD)を調べた話はブログにまとめた。これもキャッチーだったためか、いままで書いた記事の中で一番多く反応がもらえた。 また、ここで書いたコードを流用してx86のMSR空間をダンプするツールを作り、その話をkernel/vmで話したりした。
- https://github.com/retrage/intel-hfi
- https://retrage.github.io/2023/08/20/intel-hfi.html/
- https://github.com/retrage/msr-explorer
- https://speakerdeck.com/retrage/exploring-x86-msr-space
主だったところだとこのあたりまでで、もちろん8月以降も細々とコードを書いたりメンテナンスをしていたが、年々趣味で書くコードは減っている気がする。特に今年は、外部での発表は上で言及したkernel/vm一回のみだった。来年はどうなるといいのかわからないが、外部への露出は増やしていきたい気持ちはある。