問題タブ [openonload]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2721 参照

java - SolarFlare OpenOnLoad カーネル バイパスのサンプル Java コードはどこにありますか?

誰でも始められる簡単な質問:

  1. これを行うには、特別なネットワーク インターフェイス カード (nic) が必要であることはわかっています。私はそれがSolarFlareが作るものでなければならないと仮定しています. カーネルバイパスの実装とテストを可能にする、入手できる最も安価なものは何ですか?

  2. ネットワーク スタックとしてOpenOnLoadを使用しているようです。ネットワーク アプリケーションで OpenOnLoad を使用する方法のサンプル コードと例はどこにありますか? 私のプログラムがこの技術を利用するのがどれほど簡単か、または複雑かを知りたいです。

この他の質問から生まれた質問: Java でのカーネル バイパスによるネットワーキング

0 投票する
2 に答える
2610 参照

c - 静的にリンクされたelfバイナリを動的にリンクされたものに変換します

libcに静的にリンクされているelfバイナリがあります。私はそのCコードにアクセスできません。OpenOnloadライブラリを使用したいと思います。このライブラリは、ユーザースペースにソケットが実装されているため、標準のlibcバージョンと比較してレイテンシが低くなっています。OpenOnloadは、標準のソケットAPIを実装し、LD_PRELOADを使用してlibcバージョンをオーバーライドします。ただし、このelfバイナリは静的にリンクされているため、OpenOnloadバージョンのソケットAPIを使用することはできません。

次の手順で、このバイナリをOpenOnloadと動的にリンクするように変換できると思います。

  1. 新しいプログラムヘッダーを追加します:PT_INTERP、PT_DYNAMICおよびPT_LOAD。
  2. PT_DYNAMICにエントリを追加して、libcとの依存関係を一覧表示します。
  3. 新しいPT_LOADセクションに必要なlibc関数のPLTスタブを追加します。
  4. libc関数の既存のバイナリコードを変更して、対応するPLTスタブにジャンプします。

最初のカットとして、3つのPT_LOADセグメントを追加してみました。既存のPT_LOADセグメントヘッダーの後に、新しいセグメントヘッダーが追加されました。また、既存のセグメントのvm_addrは変更されませんでした。既存のセグメントのファイルオフセットは、p_alignに基づいて次に整列されたアドレスに下にシフトされました。新しいPT_LOADセグメントが、ファイルの最後のファイルに追加されました。

ファイルを書き直した後、実行すると、カーネルによって正しくロードされましたが、すぐにセグメント障害が発生しました。

私の質問は次のとおりです。

  1. vm_addressesを変更せずに、elfバイナリのファイルオフセットをシフトするだけで、バイナリの実行中にエラーが発生する可能性はありますか?
  2. 私が試みていることをすることは可能ですか?誰かがそれを試みましたか?
0 投票する
3 に答える
9324 参照

c - Linux での UDP および TCP のカーネル バイパス - 何が関係していますか?

http://www.solacesystems.com/blog/kernel-bypass-revving-up-linux-networkingごと:

[...] 「カーネル バイパス」技術を使用してアプリケーションとネットワーク ドライバーをユーザー空間で一緒に実行し、カーネルをバイパスする OpenOnload と呼ばれるネットワークドライバー。これにより、接続のアプリケーション側は、より低い一貫した待機時間で、1 秒あたりにより多くのメッセージを処理できます。

[...]

何年もの間コンテキスト切り替えと戦ってきた開発者またはアーキテクトであれば、カーネル バイパスはごまかしのように感じるかもしれませんが、幸いなことに、それは完全に規則の範囲内です。

そのようなカーネルバイパスを行うために必要な機能は何ですか?