カーネルドライバ開発
準備(方法①:カーネルソースから準備) カーネルソースの取得 カーネルモジュールの前に、ビルドに必要な.configを作成。他にmake prepare, make scriptsを実行しておく。 カーネルモジュールのビ… 続きを読む »
準備(方法①:カーネルソースから準備) カーネルソースの取得 カーネルモジュールの前に、ビルドに必要な.configを作成。他にmake prepare, make scriptsを実行しておく。 カーネルモジュールのビ… 続きを読む »
DPDK DPDKはユーザランドで高速なパケット処理のための、ライブラリとAPIを提供 メモリ管理 DPDKでは高速化を実現するためHugePageを使用する。 HugePageはメモリ管理として1ページのサイズを大幅に… 続きを読む »
概要 Kernel4.14で追加されたMSG_ZEROCOPY機能は、データのゼロコピー送信のみに対応しており、受信側については対応していなかった。 4.18Kernelで受信に対応した。Zero copy receiv… 続きを読む »
osdi22-stamler.pdf (usenix.org) 論文の要点 zIOはIO Intensiveアプリをターゲットとした透過的なゼロコピーを実現するためのユーザ空間ライブラリ メモリコピーのシステムコールをイ… 続きを読む »
ソケットからのデータ受信 SPDKは、POSIXのreadvでソケットからデータを読み取る。readv() システムコールは、ファイルディスクリプター fd に関連付けられた ファイルから、 … 続きを読む »
bumblebeeは、起動していくつかの質問に答えると、目的に合致したeBPFのソースコードのテンプレートを生成してくれます。そのテンプレートを基にすることで、比較的容易にeBPFのアプリケーションを開発し、Bumble… 続きを読む »
概要 eBPF は extended Berkeley Packet Filter の略。ユーザ空間で作成したプログラムをカーネルに送り込んで、独自の命令セット を持つカーネル内部の仮想マシン(以下VM)上で実行できる機… 続きを読む »
Index of /public/repo/mlnx_ofed/latest/SRPMS (mellanox.com) orig_os_api OS内のsocket APIをorig_os_apiに登録し、フックした各A… 続きを読む »
spdk_nvmf_registers fabricデバイス用のregister。 cap_register (capability?) vs_register(version) cc_register spdk_nvm… 続きを読む »
main処理 SPDKの構成要素 Poller/SPDK thread スレッド初期化 SPDKはtgt初期化時に、nvmfの処理起点となるnvmf_poll_group_pollをpollグループに登録する。以降、SP… 続きを読む »