1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DPDK Userspace Summit 2022の概要メモ

Posted at

概要

DPDK Userspace Summit 2022の発表をざっと見てみた。

講演項目

Virtualization of DPDK applications using virtio-vhost-user - Usama Arif, TikTok

vhostは、hypervisorでデータオフロードを行う機構である。このデータオフロード機構は、2種類あり (kernel driverの) vhost-netおよび (userspace) vhost-userがある。ここでは、ユーザ空間の機能であるvhost-userについて考察する。なぜ、このvhost-user機構の仮想化が必要な理由は、ホストカーネルの更新時間の短縮、VM内のセキュリティ強化の観点等からである。そして、仮想化はホスト側の対応(QemuとDPDK)が必要になる。これにより、ダウンタイムが、1秒程度から半分に改善された。

パッチ

メインラインには取り込まれていない。

Vhost-user Live Upgrade Optimization - ZhiHong Wang, ByteDance

大量のポートの接続を、切断・再接続すると時間がかかる。このため、デバイスメモリ領域および接続状態(vhost-user state migration)を、まとめて他のマシンに送ることによりダウンタイムを短縮した。
なお、パッチについては、投稿されていない。

Open DPDK to containers networking with VDUSE - Maxime Coquelin, Red Hat

vDPA device in userspace (VDUSE) は、ユーザー空間でのvirtio データプレーンである。vhost-userとは異なり、VDUSEデバイスは、カーネル空間のvDPA busと接続する。そして、VDUSEがコンテナネットワークで使えることを紹介する。最後に、DPDK vhostライブラリとの接続の開発状況を紹介する。
なお、パッチは開発中であり、メインラインには投稿されていない。しかし、プレゼン資料にある通り、githubで見ることはできる。また、LinuxカーネルでのVDUSEドライバは、5.15 (2021/11) からであり、かなり新しいカーネルを使う必要がある。

パッチ

パッチは開発中であり、メインラインには投稿されていない。しかし、プレゼン資料にある通り、githubで見ることはできる。また、LinuxカーネルでのVDUSEドライバは、5.15 (2021/11) からであり、かなり新しいカーネルを使う必要がある。

参考資料

A Refined Comprehensive DPDK Cryptodev Asymmetric Cryptodev Framework - Fan Zhang & Kai Ji, Intel

DPDK 22.07現在の状況について

Booting DPDK application quickly by device composition - Yahui Cao & Jingjing Wu, Intel

SR-IOV VF等では、起動時のデバイスプルーブで100ms単位で時間がかかっている。ここでは、Scalable IOV (S-IOV)を利用して、5倍程度起動時間を改善した。なお、XDPでは、デバイスプルーブが不要のため早く立ち上がる。ここでは、仮想化を行い起動時間を短縮する。

DPDK(Youtube)

rte_security: support for inline MACsec - Akhil Goyal, Marvell Semiconductors

MAC層(Layer 2)のセキュリティプロトコルの実装の説明。説明時点(2022/09)では、マージ前であった。そして、22.11でマージされた。

パッチ(22.11で取り込み済み)

DPDK(Youtube)

DPDK "dmadev" Interface - The design and use of the copy-offload APIs - Bruce Richardson, Intel

2022.11以前は、rawdevと呼ばれていたデバイスとホストとのコピーオフロード機能を、22.11よりdmadevとして、抽象化フレームワークを導入した。なお、(DPDK Usersummit発表資料)Option 2のモデルを利用しており、ethdevのモデルとは異なる。
なお、Intelとしては、Sapphire Rapidsから導入されたData Streaming Acceleratorに相当する。(ENQCMD命令相当)

DPDK(Youtube)

文書

DPDK

Intel

DPDK Memory Allocation Optimization - Liang Ma, TikTok

パッチ

  • 実運用等でのテスト等を考慮して最終的にパッチを出す予定

Template and Asynchronous API abstract - Ori Kam, NVIDIA

rte_flowは、DPDK17.02から導入されている。これにより、様々なフロー制御を行ってきた。しかし、

  1. 制御すべきフローの数等がけた違いに増えてきていること、
  2. 使うべきNICオフロード機能がパケット依存となり複雑化している。

という要件があり、Template APIを22.03よりサポートしている。これにより、非同期APIおよびマルチスレッドでの処理が可能になっている。
現時点(2023/01)では、NVIDIA/MellanoxのNIC限定の機能である。

パッチ (22.03で適用済み)

Accelerating Suricata with DPDK - Lukas Sismis, CESNET

OSSのIDSツールのSuricataでのDPDKによる処理高速化の話

DTS Working Group Updates - Honnappa Nagarahalli, ARM

DPDK Test Suite (DTS)のWorking Groupの状況報告。

Heterogeneous Computing Solution - Alex Vesker, NVIDIA

rte_flowTemplate APIに加えて、Connection Tracking 機能をホスト側およびデバイス側に実装(ひと月程度)で実装して性能改善をした話。
現時点(2023/01)で、NVIDIA/MellanoxのNIC限定の機能である。

パッチ

  • まだ出ていない。

DPDK in real-time GPU packet processing applications - Elena Agostini, NVIDIA

GPUとNICを直にデータを流して、パケット処理を行うGPU-DPDKの紹介である。DPDK 21.11から導入されている機能である。アプリケーションとして、NVIDIA Aerial(5G DU), NVIDIA Morphis(セキュリティ), FRB detection with NenuFAR(電波天文)を紹介している。

Real-time and low latency media transport stack based on DPDK - Ping Yu & Frank Du, Intel

マルチメディア(SMPTE ST2110)に関するIntel Media Transportの話。Linuxでのサポート状況及び、Windowsでの状況について説明している。なお、DPDKの概要説明は参考になるかもしれない。

パッチ

DPDK側のパッチは、22.11から揃っているらしい。

Graph: introduce remote dispatch for multi-core scaling - Zhirun Yan & Jingjing Wu, Intel

DPDKのデータプロセッシング用ライブラリgraph libのマルチコアでスケールするための遠隔タスク投入機能の提案(パッチの説明に近い)

パッチ(未取り込み)

Do not develop from scratch, simply write P4 and get DPDK - Cristian Dumitrescu, Intel

IPDKのデバイス(ネットワークスイッチ)の一つとして、P4言語を使ってプログラマブルにする方法がある。P4では、デバイスの一つとして、P4-DPDKを使える(DPDK 20.11より)。その方法の紹介と最新追加機能の紹介をしている。ここ1年の最新機能として、SmartNIC対応Portable NIC Architecture (PNA)に対応した等がある。
P4は、DPDKでPipelineモデルで実装している。

P4-DPDK一般

IPDKの紹介

Using DPDK + OVS for deterministic low-latency communication - Felix Moessbauer & Henning Schild, Siemens AG

リアルタイムLinux (PREEMPT_RT)を用いたDPDK+OVSスイッチの構築と評価。80us以内の処理としては十分な性能を出している。

パッチ

以下のパッチは見た範囲では取り込まれていない。

DPDK and Latency : A tale of a Handmade Traffic Generator - Harry van Haaren, Intel

Traffic Generatorライブラリの提案とその紹介

パッチ

2022/1に投稿されているが、2023/1現在未取り込み

DPDK Terminal Stats Viewer - Conor Walsh, Intel

端末用のDPDK性能監視ツール。従来のように、垂れ流しではなく、topのように更新して表示する。

パッチ

2023/1/4時点では取り込まれていない。

What RTE Flow rules can your NIC offload? - David Vodák & Kamil Vojanec, Cesnet

RTE Flow Checkerの紹介。現時点では、OSSになっていない。将来的にDPDK Test Suite (DTS)に取り込まれるとよいという話が出ていた。

Design/Implementation/Usage of DPDK Trace subsystem - Jerin Jacob, Marvell

DPDK 22.05から導入されたTrace機能について概要とその使い方(CUI/GUI)の解説

Dynamic Load Balancing and Scaling IPSEC Workloads - Declan Doherty, Intel

IntelのSapphire Rapidsから組み込まれたDynamic Load Balancer (DLB)を使った事例の紹介です。
IPsec GWを例にして、Packet Processingがスケールして早くなると説明しています。
複数の処理が何層にも入り組んだ場合に便利に見えます。

パッチ

すでに入っているパッチの紹介だと思う。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?