Onload®️ は、Linux 上の BSD ソケットを使用するアプリケーションの TCP および UDP ネットワーク I/O を高速化する、高性能のユーザーレベルのネットワーク スタックです。
OpenOnload は、ネットワーク関連のシステム コールをインターセプトし、プロトコル スタックとサポートするカーネル モジュールを実装するユーザー レベルの共有ライブラリで構成されます。 fork()、exec()、Unix ドメイン ソケットを介したソケットの受け渡し、アプリケーションがスケジュールされていないときのプロトコルの拡張など、ユーザー レベルのネットワーキングで通常問題となる側面を含む、完全なシステム コール API と互換性があります。 。
OpenOnload はソース コードとして配布されます。ビルド、パッケージ化、インストールの手順は、DEVELOPING.md にあります。
AMD Solarflare インターフェイスではない、Onload によって高速化されるインターフェイスがある場合は、次のコマンドを実行して、AF_XDP を使用して高速化されるインターフェイスを登録します。
echo ens2f0 > /sys/module/sfc_resource/afxdp/register
Onload するアプリケーションは、コマンド ラインの先頭にonload
を付けて起動する必要があります。
パブリックにホストされているリポジトリは、コミュニティによってサポートされているプロジェクトです。このリポジトリで問題を提起する場合、ユーザーは最新のカーネル変更が現れる前にリリースされる Onload の公式バージョンを使用するのではなく、Git ツリーの先頭から実行して最近の変更を取得することが予想されます。多くの重複した問題が提起されています。最近のカーネル バージョンによって導入された非互換性は、このリポジトリで迅速に修正される可能性があります。
OpenOnload のサポートされているリリースは、https://www.xilinx.com/support/download/nic-software-and-drivers.html#open から入手できます。 Onload のサポート対象リリースに関する問題については、[email protected] までご連絡ください。
このソース ツリーは、次の Linux カーネルおよびディストリビューションと互換性があります。
Onload は、Linux の AF_XDP メカニズムを使用する場合と比較して、AMD Solarflare ネットワーク アダプターが提供するネイティブ ef_vi ハードウェア インターフェイスを使用して、最適なネットワーク アクセラレーションと追加機能を提供します。このモードでは、カーネルとドライバーの AF_XDP のサポートは必要ありません。
AMD Solarflare ネットワーク アダプタ用の「sfc」ネット ドライバのバージョンが含まれています。
次のアダプターは、AF_XDP なしで OpenOnload をサポートできます。
OpenOnload は、AF_XDP のサポートにより、Solarflare 以外のネットワーク アダプター上のアプリケーションを高速化できます。
ゼロコピーをサポートするには、Onload に必要な AF_XDP プリミティブを実装するための AF_XDP ネットワーク アダプター ドライバーが必要です。通常、ネットワーク アダプター ベンダーの最新ドライバーはこれらのプリミティブをサポートします。
AF_XDP サポートはコミュニティによってサポートされている進行中の作業であり、現在はリリース品質ではありません。
ネットドライバーがネイティブ モードで AF_XDP をサポートしていない場合、Onload はインターフェイスの登録時に汎用 XDP モードを使用しようとします。これを機能させるには、インターフェイスを登録する前にユーザーランド ヘルパーをセットアップする必要があります。
$ make -C ./src/tools/bpf_link_helper/
$ echo $( realpath ./src/tools/bpf_link_helper/bpf-link-helper ) | sudo tee /sys/module/sfc_resource/parameters/bpf_link_helper
OpenOnload は SFC ドライバーなしでビルドできます。
make
: HAVE_SFC=0
変数を使用します。onload_build
およびonload_install
: --no-sfc
パラメーターを使用します。onload_tool reload
: --onload-only
パラメータを使用します。また、EFCT および AUX サポートなしで構築することもできます。
make
: HAVE_EFCT=0
変数を使用します。onload_build
: --no-efct
パラメーターを使用します。 CONTRIBUTING.md を参照してください。
このファイル: (c) Copyright 2020-2024 Advanced Micro Devices, Inc.