カーネルドライバ開発

準備(方法①:カーネルソースから準備) カーネルソースの取得 カーネルモジュールの前に、ビルドに必要な.configを作成。他にmake prepare, make scriptsを実行しておく。 カーネルモジュールのビ… 続きを読む »

MELLANOX DPDK

DPDK DPDKはユーザランドで高速なパケット処理のための、ライブラリとAPIを提供 メモリ管理 DPDKでは高速化を実現するためHugePageを使用する。 HugePageはメモリ管理として1ページのサイズを大幅に… 続きを読む »

Zerocopy receive

概要 Kernel4.14で追加されたMSG_ZEROCOPY機能は、データのゼロコピー送信のみに対応しており、受信側については対応していなかった。 4.18Kernelで受信に対応した。Zero copy receiv… 続きを読む »

SPDKライトのメモリコピー

ソケットからのデータ受信 SPDKは、POSIXのreadvでソケットからデータを読み取る。readv() システムコールは、ファイルディスクリプター fd に関連付けられた ファイルから、&nbsp… 続きを読む »

bumblebee: eBPF自動生成ツール

bumblebeeは、起動していくつかの質問に答えると、目的に合致したeBPFのソースコードのテンプレートを生成してくれます。そのテンプレートを基にすることで、比較的容易にeBPFのアプリケーションを開発し、Bumble… 続きを読む »

eBPF覚書

概要 eBPF は extended Berkeley Packet Filter の略。ユーザ空間で作成したプログラムをカーネルに送り込んで、独自の命令セット を持つカーネル内部の仮想マシン(以下VM)上で実行できる機… 続きを読む »

libxlio解析

Index of /public/repo/mlnx_ofed/latest/SRPMS (mellanox.com) orig_os_api OS内のsocket APIをorig_os_apiに登録し、フックした各A… 続きを読む »