dpdk example
一.运行helloworld
参数解释:
-l 0-1
指定要用的 CPU 核心列表,这里表示用 CPU 0 和 CPU 1。
如果你写 -l 0 → 只用 core 0
如果写 -l 0-3 → 用 core 0,1,2,3
DPDK 会把线程 pin 到对应的 CPU 核心。
-n 1
指定内存通道数(memory channels)。
通常对应物理机/NUMA 节点上的内存通道数量。
在虚拟机里一般只需要 -n 1。
如果在物理机上,可能会写 -n 4 或者 -n 8,取决于硬件。
--file-prefix=giannis
用来区分多个 DPDK 进程,防止共享内存和 hugepage 冲突。
DPDK 进程启动时会在 /var/run/dpdk/ 下面建一个目录。
默认都是 mp_socket,如果多个进程一起跑就会冲突,所以加 --file-prefix 变成不同的目录。
例如 --file-prefix=giannis → /var/run/dpdk/giannis/。
运行时打印信息:
EAL: Detected CPU lcores: 2
→ DPDK 检测到你分配的 CPU core 数量。
EAL: Detected NUMA nodes: 1
→ 你的虚拟机只有一个 NUMA 节点。
EAL: Detected static linkage of DPDK
→ 表示 DPDK 是静态编译方式,不是错误。
EAL: Multi-process socket /var/run/dpdk/giannis/mp_socket
→ 正常信息,说明它创建了一个多进程通信 socket 文件。
TELEMETRY: No legacy callbacks, legacy socket not created
→ 只是提示旧版 telemetry 接口没启用,并不是报错。
hello from core 1 / hello from core 0
→ 这是 demo 程序的核心逻辑:每个核心打印一句话。说明运行成功