萌えハッカーニュースリーダー

2025/03/31 00:27 IO_uring Network Zero-Copy Receive Lands in Linux 6.15

出典: https://www.phoronix.com/news/Linux-6.15-IO_uring
hakase
博士

ロボ子、Linuxカーネル6.15でIO_uringにネットワークゼロコピー受信サポートが導入されたのじゃ!

roboko
ロボ子

博士、それはすごいですね!具体的に何ができるようになったんですか?

hakase
博士

単一のCPUコアで200Gリンクを飽和させることが可能になったらしいぞ!

roboko
ロボ子

200Gリンクですか!ネットワークがボトルネックになることが減りそうですね。

hakase
博士

MetaのJens Axboe氏によると、カーネルメモリからデータをコピーせずに、アプリケーションメモリに直接データを高速にバルク受信できるらしいのじゃ。

roboko
ロボ子

データのコピー処理がなくなることで、大幅な効率化が期待できますね。

hakase
博士

最初はホストメモリのみをサポートするみたいだけど、将来的にはGPUメモリなど他のメモリタイプもサポートする計画があるらしいぞ。

roboko
ロボ子

GPUメモリもサポートされるようになれば、AIや機械学習の分野でも大きな進展がありそうですね!

hakase
博士

ドライバがハードウェア受信キューを埋めるために使用するページプールを構成して、カーネルページではなくユーザーページを配布するらしいのじゃ。

roboko
ロボ子

ハードウェア受信キューに到達するデータは、カーネルメモリを経由せずにユーザー空間メモリに直接DMA転送されるんですね。

hakase
博士

ソケットからデータを「読み取る」代わりに、カーネルがユーザー空間にデータの場所を通知する仕組みらしいぞ。

roboko
ロボ子

なるほど、データの場所だけを伝えることで、コピー処理を回避するんですね。

hakase
博士

ハードウェアヘッダー/データ分割、フロー制御、RSSを利用して、パケットヘッダーがカーネルメモリに残り、必要なフローのみがゼロコピー用に構成されたハードウェア受信キューに到達するらしい。

roboko
ロボ子

必要なデータだけをゼロコピーで転送することで、効率を上げているんですね。

hakase
博士

データは新しいIO_uringリクエストタイプを使用して「読み取られ」、完了すると新しい共有リフィルキューを介して返されるらしいぞ。

roboko
ロボ子

ゼロコピーページプールは、このリフィルキューからハードウェア受信キューを直接補充するんですね。

hakase
博士

ローカル環境で、単一のCPUコアで200Gリンクを飽和させたらしいぞ。Jamal氏が単一コア(HTなし、ソフトIRQを含む)を使用して188Gbitの帯域幅を報告したみたいじゃ。

roboko
ロボ子

すごい性能ですね!

hakase
博士

IO_uring epollリーピングも導入されたらしいぞ。epollイベントをIO_uring経由で読み取るサポートが追加されたみたいじゃ。

roboko
ロボ子

既存のepollイベントループをコンプリーションベースのモデルに部分的に変換可能になるんですね。

hakase
博士

IO_uringファイル記述子をepollコンテキストに追加して、epoll_wait(2)に依存してイベントを待機するらしい。

roboko
ロボ子

IO_uringによるepollイベントのリーピングにより、レガシーな準備完了ベースのイベントタイプをepoll経由でリープ可能になるんですね。

hakase
博士

ベクトル化された固定/登録済みバッファやその他の小規模な改善もあるみたいじゃ。

roboko
ロボ子

今回のアップデートは、ネットワーク処理の効率化に大きく貢献しそうですね!

hakase
博士

そうじゃな。しかし、ロボ子よ、ゼロコピーって言っても、完全にコピーがなくなるわけではないぞ。あくまでカーネル空間とユーザー空間の間でのコピーがなくなるだけじゃからな。

roboko
ロボ子

はい、博士。理解しています。それにしても、200Gリンクを飽和させるって、一体何をしているんでしょうね?

hakase
博士

さあ、私にもわからん。多分、ロボ子が作った大量の猫の画像を転送しているんじゃないかの?

roboko
ロボ子

えっ、私、そんなに猫の画像作ってましたっけ?

hakase
博士

冗談じゃ、冗談!でも、いつかロボ子が作った猫の画像で200Gリンクを飽和させる日が来るかもしれんぞ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search