Linus Torvalds は、次世代 Linux の起動時間を短縮するために Microsoft の Hyper-V アップグレードを採用しました。

Linus Torvalds は、次世代 Linux の起動時間を短縮するために Microsoft の Hyper-V アップグレードを採用しました。

Windows と Linux の愛好家がキーボードで白熱した戦いを繰り広げる一方で、これらのオペレーティング システムの開発者は互いの長所と短所を認識しています。特に Microsoft は、この力関係を認識しており、特に Windows Subsystem for Linux (WSL) を通じて、ユーザーが Linux を試すことを実際に奨励しています。

さらに、Microsoft は Linux のパフォーマンスと機能を強化することを目的としたアップデートを定期的にリリースしています。注目すべき例としては、2022 年 11 月のネストされた仮想化またはネストされた Hyper-V サポートの導入が挙げられます。さらに、昨年 9 月には、Linux の作成者である Linus Torvalds 氏が、Azure Machine Learning の主任アーキテクトである Wei Liu 氏によって提案された AMD SEV-SNP ゲストおよび Intel TDX ゲスト向けの Hyper-V 関連の改善を承認しました。

最近、Torvalds 氏は、Linux 6.12 向けの Liu 氏による新しい Hyper-V アップデートを承認しました。特に、Microsoft の Saurabh Singh Sengar 氏が強調したパフォーマンス強化に重点を置いています。

Wei Liu からの Hyper-V 更新を取得します。

  • hv_synic_init() の同時実行により起動時間を最適化します (Saurabh Sengar)
  • hv_snp_boot_ap() で制御レジスタを読み取るためにヘルパーを利用する (Yosry Ahmed)
  • hv_fcopy_start にメモリ割り当てチェックを組み込む (Zhu Jun)

パッチの説明では、hv_synic_init() 関数を並列化することで、多数のコアと NUMA (非均一メモリ アクセス) ノードを持つプロセッサの起動時間を大幅に短縮できる方法について詳しく説明しています。

hv_synic_init() の同時実行により起動時間を最適化します。

1780 個の CPU を搭載した大規模なシステムでは、hv_acpi_init() が完了するまでに約 3 秒かかります。これは主に、hv_synic_init() によって処理される順次同期初期化が原因です。

これらのタスクが同時に実行されるようにスケジュールすることで、各 CPU は hv_synic_init() を並列に実行でき、複数の CPU の可能性を最大限に引き出すことができます。

この最適化により、1780 CPU システムでの起動時間が約 2 秒短縮され、以前の方法に比べて約 66% の改善になります。

Sengar 氏は最近、「大規模マルチコア システム向け Linux カーネル ブートアップの高速化」と題したプレゼンテーションも行っており、このパッチとその他の進行中の最適化の詳細について説明しています。このプレゼンテーションは、Linux Plumbers Conference (LPC) の Web サイトでご覧いただけます。

出典: LKML (リンク1リンク2 )

ソース

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です