概要
- 約3か月前から Fedora LinuxのRISC-Vポート の作業を開始
- バグトリアージ やパッケージビルドに積極的に取り組み
- RISC-Vハードウェアの遅さ が大きな課題
- QEMUによる エミュレーション活用 でビルド効率化を模索
- 今後は 新しいビルダー導入とFedora 44への移行 を計画
Fedora Linux RISC-Vポート作業報告
- 約3か月前より Fedora LinuxのRISC-Vポート に従事
- Fedora RISC-Vトラッカーのバグエントリー を確認・トリアージ
- 現在、NEW状態のエントリーは 17件
- 可能な範囲で個別に対応
- Fedoraパッケージ管理
- fedpkg clone -aコマンドで パッケージソース取得
- fedpkg mockbuild -r fedora-43-riscv64で ビルド実行
- ビルド結果を確認し、失敗時は ログから原因調査
- 86件のプルリクエスト をFedoraパッケージに送信
- 大型パッケージ(例: llvm15)から小型ゲーム(例: iyfct)まで幅広く対応
- 大部分が マージ済み、Fedora 43向けにビルド完了
- ‘f43-updates’タグをFedora kojiで追跡し、 ビルド状況確認
RISC-Vハードウェアの課題と現状
- RISC-Vハードウェアの処理速度が遅い ことが最大の課題
- ビルド時間が他アーキテクチャと比較して 著しく長い
- 例: binutils 2.45.1-4.fc43パッケージのビルド時間
- aarch64: 36分(12コア/46GB)
- i686: 25分(8コア/29GB)
- ppc64le: 46分(10コア/37GB)
- riscv64: 143分 (8コア/16GB)
- s390x: 37分(3コア/45GB)
- x86_64: 29分(8コア/29GB)
- 現在のRISC-Vビルドは LTO(Link Time Optimization)無効化
- メモリ消費とビルド時間短縮のため
- RISC-Vビルダーは 4~8コア、8~32GB RAM
- コア性能は Arm Cortex-A55相当
- 新型SoC(UltraRISC UR-DP1000やSpacemiT K3)への期待
- UR-DP1000搭載の Milk-V Titan は64GB RAM対応
- K3ベースシステムも最大32GB RAM
- これらは 改善にはなるが、根本解決には至らず
- 理想は1時間以内でbinutilsをLTO有効でビルド可能なハードウェア
- ラック搭載やサーバー管理が容易な機器が必要
- 現状では Fedoraの公式プライマリアーキテクチャ昇格は困難
QEMUによるビルド効率化
- QEMUエミュレーション を活用し、ビルド時間短縮を図る
- 80コアをエミュレートし、 llvm15パッケージを約4時間でビルド
- 実機(Banana Pi BPI-F3ビルダー)では 10.5時間 かかる
- Ampere Oneベースの192/384コアシステムでは更なる高速化を期待
- LLVMパッケージはコア・メモリ両方をフル活用
- btopツールで 80コア稼働状況を可視化
今後の計画と展望
- Fedora Linux 44のビルド開始を予定
- すべてのビルダーで 同一カーネルイメージ 使用を目指す
- LTOは引き続き 無効化
- 新規・高速ビルダーの導入計画
- 重量級パッケージは 新ビルダーに割り当て 予定
- RISC-Vエコシステム強化と公式アーキテクチャ昇格への課題解決